الان لاراول کار میکنم ولی هنوز سایتم همونه https://Rp76.ir
حالا لایک هم کردیم که چی؟ (همراه سورس کد) + آپدیت
شاید لایک کردن در کل کار سخت و دشواری نباشه ولی 100% هدف گیری یکی از سخت ترین کار هایی هست که تا بحال دیدید.
چرا داریم این چیز هارو میگیم؟
یادم امد که افزونه نویسی برای موزیلا که یکی از بهترین مرورگر های موجود هست رو بلدم گفتم چرا بیکار بشینم پس.حداقلش اینه که یه افزونه دیگه به پروفایلم اضافه میشه
دست بکار شدم و یه افزونه درست کردم که خودش به صورت اتوماتیک میاد لایک میکنه
با من همراه باشید تا کد های جاوا اسکریپتی که به صورت واقعا کثیف نوشتم در اختیارتون بذارم.
اول هر چیزی برای این که نخوام فرایند اصلی افزونمو تکرار کنم امد یه فانکشن درست کردم.
function doti() {
var a = document.getElementsByClassName("btn-like js-like");
for (var i = 0; i < a.length; i++) {
var ca = a[i].className;
if (ca == "btn-like js-like ") {
a[i].click();
}
}
}
به صورت خیلی ساده و ناشیانه امدم یه متغیر درست کردم و همه اشیایی که از کلاس btn-like js-like پیروی میکردن رو پیدا کردم رو توی متغیر خودم ذخیره کردم.
خب حالا نوبت این رسیده بود که پیمایش کنم اشیا پیدا شده رو.
بعدش امدم یه متغیر دیگه تعریف کردم که البته نیاز نیست( تقریبا ).
توی مرحله بعد متوجه شدم که این میاد و همه قلب ها رو پیدا میکنه بعد کلیک میکنه! ممکن بود پست های لایک شده رو دوباره کلیک کنه خب باید یه شرط میذاشتم که گذاشتم با موضوعیت قلب های توخالی.
وبعد هم کلیک.
= function(ev) {
if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight - 850) {
doti();
}
};
باز هم به مشکل خوردم؛سایت ویرگول از اون سایت هایی هست که از پیمایش صفحه بینهایت پیروی میکنه ( منظورم scroll هست)
امدم یه تابع دیگه درست کردم و بهش گفتم اگر رسیدم ته صفحه دوباره تابع قبلی اجرا کن.
اون گفت باشه ولی ویرگول نذاشت به انتهای صفحه برسیم سریع پست های بعدی رو بارگذاری کرد
گفتم اههههههههههههه منم میام 850 واحد از انتهای فایل کم میکنم که زود تر از تو جاوا اسکریپتم کار کنه.
و اینگونه بود که افزونه نوشته شد با کمترین زمان! ( این پست بیشتر تایم گرفت )
آپدیت شد!
بعد از چند روز دیدم که ویرگول کامنت هارو از لایک ها تفکیک نمیکنه امدم به افزونه یک کد اضافه کردم که توی عکس زیر میبینید.
var action = document.getElementsByClassName("user-info-action");
for (var i = 0; i < action.length; i++) {
if (action[i].innerText.includes("پاسخ")) {
action[i].setAttribute("style", "color:hotpink !important;");
}
}
خط اول که کاملا گویا هست!
یک متغیر تعریف کردم و همه پیام هایی که ویرگول برام ارسال کرده رو پیدا کردم
بعد یک حلقه گذاشتم که تمام این پیام هارو پیمایش کنه ( programmer count from 0 )
بعد گفتم اگر این پیام حاوی متن "پاسخ" هست یک استایل بهش اضافه کن
صفحه افزونه :
مطلبی دیگر از این انتشارات
روش های استایل دهی CSS در سند HTML
مطلبی دیگر از این انتشارات
انپیام(NPM) در +1500 کلمه!
مطلبی دیگر از این انتشارات
پارادایم CSS Modules، پیشنهادی که نمیتوانید آن را رد کنید