
اسم پست عجیبه ولی تا ته بخونید!

خب طبق ده ها کار های قبلیم، این کارم هم از کنجکاوی به ذهنم اومد و گفتم ما که خیلی کار خاصی نمیتونیم بکنیم، بزار سرم رو با این مشغول کنم و یه چند تا چیز میز هم یاد بگیرم لابه لاش و اینکه ببینم شدنیه یا نه. توی این قسمت بعضی جاها رو توضیح جزئی نمیدم چون انتشارش خیلی کار خوب و اخلاقی نیست!!!
یه نصفه شبی نشسته بودم خیره به مانیتور و یهویی گفتم این قطعی نت و اوضاع نابسامان چقدر نوجوان و جوان هارو خراب خودش کرده! آره کلمه خراب فک کنم گزینه خوبی باشه. چرا؟ یه مثال بگم مثلا همین سوپر اپلیکیشن روبیکا و بقیه سوپر اپلیکیشن ها واقعیتش تازگیا فهمیدم معنی کلمه سوپر که پشت اپلیکیشن اومده چیه! اونم مخصوصا توی این قطعی اینترنت. هر چی سرچ میزدی حداقل یدونه کانال مستهجن بالا میومد یا گروه ها که خدا نیاره! خسته شدم از بس ریپورت زدم و بعدش کلا پاک کردم روبیکا رو چون واقعیتش پره کثافت بود. قبلا در مورد موضوع پورن و بدبختی که به سر بچه ها و جوان ها میاره نوشته بودم (پستش الان نیست چون با باقی پست ها پاک کردم) ولی خب ایده از اینجا اومد که به یه شکلی بفهمم چند درصد آدمایی که از فضای ابری (همون هاست آپلودری که دیگه همشون به خاطر قطعی نت آشنا شدین باهاش) محتوی مستهجن و پورن ذخیره کردن! خب از قبل هم تو ذهنم بود چطوری صاحبای این شرکت ها با این فایل ها برخورد میکنن.
چون همیشه نوشتن موارد مستهجن = شکایت و مسدود سازی و ... ولی ما که چیزی ندیدیم!
حالا اینا به کنار هدف از نوشتن این پست بیشتر این بود نشون بدم طریقه پیاده سازی ایده از ذهن به دنیای بیرون چطوریه و چه راه و روش هایی داره. البته من کسی نیستم و احتمال زیاد راه و روش هام هم فقط به درد خودم و عمم میخوره ولی خب گفتم بگم اینجا شاید به کار کسی بخوره یا از خوندن اینا خوشحال بشه!
خب ایده ام این بود: چند درصد کاربر ها فایل مسهتجن دارن؟ چقدر اوضاع خیته؟
مرحله اول اینه این اطلاعات رو از کجا گیر بیارم؟ من که صاحب شرکت و هاستینگ نیستم که دسترسی کامل داشته باشم! خب اینجا بود که یه خرده فکر کردم. سایت لینکدونی رو بالا آوردم و قسمت آپلودر هارو دونه به دونه صفحاتشون رو باز کردم تا یه مشکل امنیتی یا یه چیزی ازشون نصیبم بشه که از طریق اون کارم رو انجام بدم.

برای همین سایت هایی مثل یوآپلود، آپلود کن، سندی، آپلود گرل رو چک کردم. بقیه یا بالا نیومد یا خیلی کند بود. سایت های یوآپلود و آپلودکن رو قبلا دسترسی پیدا کرده بودم به فایل ها پس اینا به کنار. یه چیزی جدیدی میخواستم. برای همین با سایت سندی و آپلود گرل کنجار رفتم. واقعیتش سندی خیلی تنگ بود و چیز خاصی نصیب نمیشد! هم محدود بود هم دردسر! برای همین رفتم سراغ آپلود گرل و یه خرده به منطق و طرز کارش دقت کردم و یه چیزی دستگیرم شد!

یه رابط کاربری ساده و عادی (معلومه با جیپیتی زده شده ولی خب دستش درد نکنه خواسته دردی رو دوا کنه) منطق ساده بدون ثبت نام کاربر فایل آپلود میکنه و خیلی سر راسته! خب چیکار کنیم؟

فایل عادی انتخاب میکنی و تایمدار میکنی و تموم. یه لینک برات میده. خب حالا این لینکه مهمه! دقت کنیم به لینک میبینیم مرحله اول از آدرس دهی خوبی استفاده کرده و مستثقیم لینک هاست نداده!
https://uploadgirl.ir/d/159021c7-4f81-402a-976b-2a690705e4d6
خب باید ببینیم میتونیم از این لینکه چیز خاصی در بیاریم یا نه! روش های قدیمی و مبتدی اینه که یارو همون اول کار لینک مستقیم هاست میده و تموم! این امن نیست و سریع میشه هر چی تو هاسته در آورد! خب یه پله بالاتر میاد رندوم پوشه و رندوم اسم میزنه. این خوبه به شرطی که باز لینک مستقیم نباشه! چون گاهی وقت ها روی هاست آپشن listing directory یادش میره و غیر فعال نمیکنه و ... بهترین کار اینکه لینک مستقیمی وجود نباشه و لینک پشت یه middleware باشه و صرفا لینک به api زده بشه. چیزی که سندی کرده!
خب الان نیازه منطق پشت این کار رو نگاه کرد تا بشه دید چیه و میشه کاریش کرد یا نه. خب برای همین فایلی رو برای تست آپلود کردم و بعد درخواست هایی که زده میشد رو نگاه کردم:

یه چیز معقول دیده میشه، تاریخ انقضای فایل و آیدیش با مسیر فایل و ... خب میشه از objectkey فهمید که فایل توی هاست احتمال زیاد با اسم خودش بدون تغیر نام ذخیره میشه! یعنی صرفا مسیر فایل به صورت:
https://[domain]/[file_id]/[file_name]
این خوبه چون اسمش هش نشده! خب الان نیازه ببینیم این file_id چطوری ساخته میشه و ...
وقتی میخواستم برم ببینم چطوری ساخته میشه یهو یه چیزی به چشمم خورد:

یه لینک آشنا ... (این قسمت توضیح داده نمیشه که چی شد و چیکار کردم)
خب کلا هدف عوض شد و از یه هاست کوچیک به یه شرکت هاستینگ بزرگ رسیدیم و اونم parspack که احتمالا اسمش به چشمتون خورده، همین صفحه اول ویرگول اسمش نوشته شده! خب برای درآوردن اطلاعات فایل های پابلیک که اکثر سایت ها استفاده میکنن یا گاها پابلیک کردن ولی حکم پرایوت داره براشون رو اینجا ذخیره میکنن.
با کدی که نوشتم تونستم تا الان که دارم این پست رو مینویسم حدود ۱۹ ساعته که داره کار میکنه و عکس رو ببین بعد توضیح بدم (برای زیبایی کار رابط کاربری هم براش ساختم تا حداقل پست خوشگل تر دیده شه:

تا الان حدود ۶.۶ ترابایت فایل (۶۷۵۸ گیگابایت) فایل که حدود ۸۱۰۰۰ تا هست از عکس و فیلم تا فایل صوتی و زیپ و این حرفا دسترسی پیدا کردیم و ادامه داره. خب از اینجا هم معلوم میشه که حداقل ۵۹۰۰ تا کاربر (یا کمتر!) دارن از پلن فضای ابری پارس پک استفاده میکنند. خب ۷۰۸ تا از این باکت ها قابل دسترسی هست و رو این قراره مانور بدیم.
ایده چی بود این بود که بفهمم چند درصد از کاربر ها فیلم مستهجل ذخیره شده دارن! خب بعضی ها برای فرستادن این فایل ها مثل قدیم یا میزنن رو فلشی چیزی یا یه جا آپلود میکنن و لینک میدن. فلش رو که خب دسترسی ندارم ولی این جاهایی که آپلود میکنن رو میشه یه کاری کرد!

این عکس رو انتهای پست که رسیدم گفتم اینجا اضافه کنم که از هر ۱۰ تا فیلم که رو چک کردم توی هاست ایشون، نصفش فیلم مستهجن بود! بعد نمیدونم چرا بن شدن و مسدود سازی و این حرف ها وجود نداره.
خب الان من قراره دستی همه فیلم هارو پیدا کنم دانلود کنم نگاه کنم و بدونم چند تاش فیلم پورنه؟ عقل میگه اصلا! گیرم اینترنت نامحمود داشتم خب جاشو ندارم وقتشو ندارم اصلا چرا باید بشینم فیلم سوپر ببینم و بگم آره این یدونه اون یکی دو و ... و بشمارم!
پول که نداریم آدمشم نداریم پس کنسله. باید فکر بکنم ببینم چطوری میشه این مسئله رو حل کرد. و یه چیزی به ذهنم رسید و رفتم عملیش کنم و بعد چند ساعت خروجی مطلوب رو گرفتم! البته داستان داره!
روش اولی که به ذهنم اومد این بود لیست اسامی تمامی فیلم هارو به LLM بدم و بگم کدومش به نظرت فیلم مستهجن هست ولی خب این ایده کارا نیست چون چه فیلم هایی با اسامی ۱۸۰ درجه معکوس پخش میشن! اونم توی کانال و گروه های سوپر اپلیکیشن روبیکا و ... پس این روش کلا پر!

اومدم گفتم یه ایجنت بسازم که بیاد فیلم هارو ببینه و بعد بگه چند درصد احتمال داره فیلم مستهجن باشه! خب رسیدم به پکیجی به نام nudenet توی پایتون و بعدش براش برنامه رو نوشتم و الان نیاز بود تست کنم ببینم سرکاریه یا واقعی کار میکنه! نیازمند چند تا فیلم مستهجن بودم حالا بیا تو این بیابون پیداش کن!
برمیگردیم به اول پست یعنی سوپر اپلیکیشن روبیکا، جنگی دو تا کلمه کلیدی سرچ کردم و بالا اومدن یه چند تاش رو دانلود کردم و بعد دوباره روبیکار رو پاک کردم! یه جا فیلم مستهجن پیدا کردن به کارم اومد اونم اینجا!

خب مدل رو روی این فیلم ها تست کردم و سه تا هم فیلم عادی گذاشتم کنارشون ببینم چطوریه وضعیت. روش کار رو اومدم مثلا ۳۰ فریم رندوم از فیلم در آوردم (چون مدل روی عکس کار میکنه) و اینارو دادم مدل و برای هر کدوم یه خروجی داشته که نیاز نیست اینجا بگم خلاصه میانگین گرفتم و آخرش امتیاز ها به دست اومد. هر چقدر امتیاز نزدیک تر به ۱ باشه اوضاع فیلم خیته که توی شکل پایین میبینید:

و دیدم خیلی خوب مدل داره جواب میده! پریدم بالا پایین گفتم ای جان خود جنس رو پیدا کردم. نیاز نیست خودم بشینم فیلم هارو ببینم و به گناه بیوفتم! این حمال بدبخت رو میندازم جلو و این بهم میگه چی به چیه!
ولی مشکل اصلی همچنان حل نشده بود! ۶ ترابایت فایل که حدقل ۲ ترابایتش فیلمه! چطوری دانلود کنم؟
یه ایده به ذهنم اومد اونم اینکه هاست بگیرم و کد رو روش اجرا کنم. از viphost پلن هاست پایتون گرفتم و کد رو روش ریختم و اجرا کردم. بعدش دیدم به به هاست به فنا رفت! خلاصه کار خاصی جر گفتن به ادمین و kill کردن همه پروسس ها کاری از من بر نمیومد. بعدش دیدم مشکل اصلی اینه که nudenet واقعیتش مدل ML هست و وقتی لوکال اجرا میکردم به ذهنم نیومد نکنه این گیر بده تو هاستی که فقط cpu داره و این حرفا! که فهمیدم بله درسته کلا نمیشه روش اجرا کرد!

گفتم خب بریم از سیمرغ خدمت ابر پردازشی (ببخشید همشو فارسی مینویسم عجیب دیده میشه خودشون هم همینارو نوشتن) و خدمت رو خریدم و نیم ساعت علاف بودم که با openvpn وصل شه و برم وصل شم که آخرش نشد. همونجا خاموشش کردم و برگشتم به خونه اول
بعدش یه چیزی به ذهنم اومد و پریدم هوا! نیازی نیست که nudenet رو رو هاست اجرا کنم! مشکل من دانلود فیلم بود دیگه درسته؟ خب رو هاست بیام کدی بنویسم که صرفا فیلم رو دانلود کنه و فریم هارو دربیاره و بعدش من فقط اون عکس هارو دانلود میکنم و توی لوکال به راحتی مدل رو روشون اجرا میکنم و خروجی میگیرم!

اینجوری شد که کد رو نوشتم و رو هاست اجرا کردم. حالا عکس ها جمع میشدن و بعدش من اونارو دانلود میکنم. خب اینجا مشکل حافظه جلو میاد و برای حل اون یه پلن هاست دانلودر از همون viphost گرفتم و اومدم روی کد یه چیزایی عوض کردم و با ftp هر ۲ گیگ عکس که جمع میشدن زیپ میکرد میفرستاد اونجا و از اینجا حذف میکرد. چرا این کارو کردم؟ چون هاسته سرعت دانلودش خوبه و نیم بها هم هست.

خب اینو دانلود میکنیم و لوکال مدل رو اجرا میکنیم و خروجی رو میگیریم. برای نمونه خروجی روی ۹ تا فیلم ایجنت رو اجرا میکنیم و به این شکل گزارش تهیه میشه:

این قصه سر درازی داره! اونجور که دیدم اوضاع خیته! کد داره همچنان کار میکنه و صبر نکردم تموم کنم بعدی بیام بنویسم. خلاصه اینکه قطعی نت باعث شده بعضی کار ها که توی خلوت بوده الان توی جمع هم انجام بشه متاسفانه. مفصل در مورد این کثافت و چیزایی که توی (اون زمان تلگرام) و بدترش توی اپ های ایرانی که حتی خرید فروش هم میشه داره اتفاق میوفته.
آمار برنامه وقتی رسیدم به انتهای پست به شکل زیر هست. بعد مدتی اگه وقت کردم آمار کلی چیزایی که دستگیرم شد رو پست میکنم میفرستم:

خلاصه ختم کلام اینجوری شد که امروز ما از صب تا الان که دارم پست رو مینویسم گذشت. اسم پست رو هم یه جوری گذاشتم که مخاطب جذب کنه و بفهمیدن اوضاع خیته. اگه بچه ای داداش کوچیک تری دارین مواظب باشین اونقدا هم این اپلیکیشن ها تمیز نیستن.

برای دوست عزیزمون که تو کامنت گفته بود بیشترین دنبال کننده و دنبال شونده و اینا رو بزارم:
=== Top 10 by Followers ===
1. pir.dana | Followers: 11384 |
2. neshan | Followers: 11350 |
3. farmooon | Followers: 10650 |
4. karpardaz | Followers: 9148 |
5. vpn_download | Followers: 8234 |
6. jadijadi | Followers: 7691 |
7. virgool | Followers: 7650 |
8. Linkdooni | Followers: 4760 |
9. Jalal-Mohseni-Sh | Followers: 4751 |
10. m_23282220 | Followers: 3835 |
=== Top 10 by Following ===
1. naderabdi | Following: 11289 |
2. Azadeh.RH | Following: 10690 |
3. pooriavakili09 | Following: 8615 |
4. binance-futures | Following: 7133 |
5. fatemeh.ghane.1993 | Following: 7123 |
6. ipit | Following: 6111 |
7. shakiba9 | Following: 2526 |
8. jobico | Following: 2404 |
9. jigsaw | Following: 2362 |
10. m_92146381 | Following: 2286 |