NabiKAZ / namava-downloader

Download movies from `namava.ir` website. | لینک جایگزین جهت احتیاط: https://gitlab.com/NabiKAZ/namava-downloader
GNU General Public License v3.0
104 stars 15 forks source link

تغییرات مورد نیاز برای ورژن جدید #33

Closed samiref closed 4 years ago

samiref commented 4 years ago

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

بعد چند ماه اومدم ازش استفاده کنم دیدم که جواب نمیده برای همین چند تا تغییر دادم و دوباره راه افتاد.

اینجا تغییرات را مینویسم که بشه دوباره استفاده کرد.

اول اینکه صفحات نماوا کمپرس شده هست برای همین متد شما داده کد شده برمی گرداند برای حل این مشکل درون تابع get_content باید یک آپشن به کرل اضافه کرد

curl_setopt($ch,CURLOPT_ENCODING , '');

با این کار به کرل میگیم که داده ها را خودش انکود کنه بهتره همون اول ها این آپشن را بدیم


و اما اتفاق دیگه ای که افتاده این هست که نماوا ffmpeg را شناسایی میکنه و از کار میندازه بررسی کردم دیدم از روی user-agent متوجه میشه برای همین باید این پارامتر را در هدر درخواست ffmpeg تغییر بدیم بنابرین آپشن زیر را باید به کامند اضافه کنیم

-user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"

بنابرین کامند نهایی ما چیزی شبیه به این میشه:

ffmpeg -user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" -i "URL" -c copy -y "download/FILENAME.mp4"</dev/null >/dev/null 2>"download/FILELOG.log" &


راستی یک مشکل دیگه هم که داشت این بود که کد زیر کار نمیکرد و لاگین شدن را تشخیص نمیداد

preg_match('/<span class="hidden-xs margin-left-5">\r\n(.*?)\r\n.*<\/span>/', $contents, $match); برای همین من فعلا تغییرش دادم به کد زیر که جواب بده تا وقتی که درست بشه و یوزر نیم را بکشه بیرون

preg_match('/Authentication\/LogOut\//', $contents, $match);

NabiKAZ commented 4 years ago
ممنون از لطفی که داری و باز ممنون از وقتی که در رفع ایرادات و توسعه به خرج دادی. :-) پیشنهادم اینه که از پروژه کلون بگیری و تغییرات رو مستقیم در کدها بدی و یک Pull Request ثبت کنی تا بهتر بشه بررسیش کرد و من accept کنم تا تغییرات به اسم خودتون روی پروژه اضافه بشه. سایر اشکالات احتمالی هم که ارتباط به هم ندارند رو اگر تحت یک issue مستقل مطرح کنی خیلی بهتره تا بشه مجزا پیگیری کرد و هر کدوم به نتیجه رسید close بشن.
samiref commented 4 years ago

سلام خواهش میکنم من یک پول ریکوئست ارسال کردم

البته علاوه بر رفع مشکل لاگین یکسری تغییرات کوچیک هم خودم اعمال کرده بودم که همراهش هست.

NabiKAZ commented 4 years ago