سلام دوستان دوسداشتم نظرتونو در مورد اینگونه موارد بدونم،ما می تونیم گزارش اسپم رو مثلا مثله راکت برای بخش گفتگو پیاده سازی کنیم و طبق گزارشات تصمیم به حذف مورد خاصی بکنیم،ولی آیا واجبه که ما کلمات یا کاراکترهای خاصی رو در چنین محیطی فیلتر کنیم حالا یا با استفاده از پکیجی یا کدی که خودمون مینویسیم.
اگه واجبه چه مواردی رو فیلتر می کنید؟
اما بحث اینجاست که اگر کسی بخواد همچین عملی رو انجام بده و ما هر فیلتری روی کلمه خاصی بذاریم اگه شخص فینگلیش یا بصورت کشیده کلمه ای رو بنویسه میتونه اینکارو انجام بده..
شما این چنین موارد رو چطور هندل می کنید،و چه اقداماتی رو اتخاذ خواهید کرد؟
ممنون
با سلام
کلا دوست عزیز هر سایت یا اکانتی توی فضای مجازی اگه نظر یا دیدگاهی مغایر با قوانین ایران توش باشه مسیولیتش با سایته نه کسی نظر می ذاره که متاسفانه قانون بی خودیه و پاک کردن صورت مساله اما خوب قانون مثل بقیه قوانین دیگه که چند نفر از سر بی تدبیری تبینش کرن
اما روش فیلتر کردن اول که شما باید یک لیست از جفتگ ها یا کلمات نامناسب باید ایجاد کنید حالا یا دیتابیس یا فایل xml یا json هر نظر یا دیدگاه برای پیدا کردن اون کلمات جستجو کنید به مرور دستتون می یاد که بعضیا از فرمولای مختلف برای گذر از این فیلتر رد می شن که شما باید این کلمات رو هم به اون لیست اضافه نمایید
@zahed
برای پکیج اگر خواستید میتونید از پکیج زیر استفاده کنید که من خودم یک دست خیلی کوچیکی توش بردم.
https://github.com/ConsoleTVs/Profanity
قابلیت این رو داره که کلمات مد نظر خودتون در قالب دیکشنری اضافه کنید بهش و کاستومایزش کنید.
و اینکه کلمات با عبارت مد نظر خودتون تعویض کنید.
قابلیت خوب دیگه ای که داره اینه که میتونه بهتون بگه آیا این متن سالم هست یا نه
اگر سالم نبود میتونید مثلا نظر در انتظار تایید بذارید و بعد از تایید مدیر سایت اون را منتشر کنید.
در مورد قضیه فینگلیش که خوب گفتم میتونید کلمات دلخواه وارد کنید بهش در مورد حروف کشیده هم من یک بررسی میکنم اگر نتونه تشخیص بده ،بتونم این مورد سعی میکنم در قالب یک پول ریکوئست به پکیج اضافه کنم.
@ariaieboy
به پکیج خوبی اشاره کردی مرسی، دارمش! می تونی نحوه اضافه کردن یه دیکشنری رو توضیح بدی؟ یعنی هم اون مواردی که خودش داره تو زبان های مختلف رو چک کنه و هم دیکشنری ای که اضافه می کنیم.
چیزی که تو داک اون خوندم به این قراره هست : کجا چکار باید کرد؟
dictionary($dictionary)
Sets the dictionary. If string is provided, it will be treated as a path and will try to decode the json contained in the path. If array is provided, it will set the dictionary.
Example dictionary:
[
{
"language": "en",
"word": "*****"
},
{
"language": "en",
"word": "****"
}
]
من با این اول چک میکنم متنو بعد اجازه میدم :
public function clean_words($words)
{
return Profanity::blocker($words)->clean();
}
دیکشنری fa رو هم که داره پیش فرض!
@zahed
نگاه کنید این پکیج اینطوری کار میکنه که خودش یک دیکشنری دیفالت داره در قالب یک فایل جیسون هست.
موقعی که از پکیج استفاده میکنید میتونید این دیکشنری را با دیکشنری خودتون عوض کنید.
که حالا میتونه در قالب یک فایل json باشه یا یک آرایه
پیشنهادی که دارم این هست که اگر میخواهید مواردی را اضافه کنید. یک پول ریکوئست براش بزنید که برای بقیه هم اضافه بشه اگرم میخواهید برای خودتون فقط استفاده کنید یک پوشه ای وجود داره داخل پکیج به نام Generator تمام کلمات بر اساس زبان داخلش وجود داره یک فایل پایتون هم داخلش هست که با ران کردنش میتونید اون فایل ها رو باندل کنید در قالب یک json فایل
تغییراتتون بدید داخل پوشه اون فایل پایتون اجرا کنید اون وقت فایل جیسون خروجی داخل برنامتون بذارید و موقعی که میخواهید از پکیج استفاده کنید کافیه متد dictionary رو با آدرس فایل صدا بزنید همین
Profanity::blocker("message")->dictionary("pathto/file.json")->clean()
اینجا هم توضیح داده برای ثبت کلمات در ریپو پکیج :
https://github.com/ConsoleTVs/Profanity/issues/6#issuecomment-367950014
@ariaieboy
خیلی هم عالی ممنون،فقط اونجا چیزی رو اضافه کنیم اگر زمانی پکیج آپدیت شد فایل های ما که از بین نمیره؟ برگرده به حالت دیفالت.
اکی شد،پول ریکوئست زدم براش دیگه!
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟