Ehsan Shahbazi
Ehsan Shahbazi
خواندن ۵ دقیقه·۲ ماه پیش

ساخت آلارم نوتفیکیشن برای ویرگول!

notification from social media in desktop laptop. alarm from notification. make it dark and modern theme
notification from social media in desktop laptop. alarm from notification. make it dark and modern theme

تو هم از تاخیر و عجیب قریب بودن نوتفیکیشن ویرگول ناراضی هستی؟💔😔 مثل معتاد ها هی ریفرش میکنی یه گرد آبی بیاد سریع بری ببینی چیه؟😐 خب احتمالا تا الان معتادش شده باشی و وقت نسبتا زیادی از ذهنت صرف اون میشه. عجیب قریب شده روزگار. عجیب قریب...

دلیل نوشتن این برنامه

خواستم دیگه ریفرش نکنم. خواستم دیگه سمت نوتفیکیشن سایت نرم!🥸 خواستم دیگه سایت رو هی باز نکنم!

خلاصه برای همین گفتم در مواقع خاص که نیازه هی نوتفیکیشن ها چک بشه یه کاری کنم که بهم کسی یا چیزی خبر بده سریع که نوتفیکیشن چیه!👍

چند روش برای این کار وجود داره:

  1. روش اول: یه علاف پیدا کنی و حقوق مایه خرج کنی خر خرجش کنی که آقووو هر وقت برام نوتفیکیشن اومد بهم بوگو!!! باید دائم تو سایت باشه و دید بزنه.😐
  2. روش دوم: یه اسکریپت بنویسی که سر یه تایم های مشخص سایت رو لود کنه، اگه نوتفیکیشن اومد اون رو بهت نشون بده. بدی این کار اینه اصلا نشون دادن نوتفیکیشن سایت خودش تاخیر داره!!!😂
  3. روش سوم: بشینی فکر کنی و یه ایده به ذهنت بیاد که در ادامه اون رو پیاده میکنیم.🥸🔥
نوتفیکیشن ها در صفحه اصلی
نوتفیکیشن ها در صفحه اصلی
نوتفیکیشن ها در صفحه اطلاعیه
نوتفیکیشن ها در صفحه اطلاعیه

از عجیب بودن این دو صفحه خب نگم براتون خودتون بیشتر از من در جریانید! طرز کار برنامه رو میتونید توی گیف پایین اگه براتون پخش میشه! ببینید.🥸

طرز کار برنامه
طرز کار برنامه

عاح امیدوارم گیف براتون پخش شده باشه. نشد عکس هارو نگاه کنید ...

نمایی از نحوه کار
نمایی از نحوه کار

البته که رابط کاربری ساده اش نگید زشته، خب هدف اصلیم اصلا خوشگل کردن این نبود. صرفا میخواستم کار رو راه بندازم پس یه عکس، متن با یک دکمه اوکی بود😂

حالا مثلا میتونیم خیلی شیک ترش کنیم و مثل نوتفیکیشن تلگرام دسکتاپ، تایم دار کنیم و بعد زیبا محو بشه. میتونیم این رو به هوش مصنوعی که با gpt برای پست ها جواب میداد به صورت خودکار، یه دکمه هم اضافه کنیم وقتی عجله داریم یا خسته ایم اون رو بزنیم و خودکار برای مخاطب یه پیام ریپلای کنه و خیلی آپشن های دیگه، که از خداوند طلب مینمایم روز هایم را به جای 24 ساعت، 48 ساعت قرار دهد🤍📿

قسمت صفر: از کجا شروع کنیم؟

خب نیاز داریم به نوتفیکیشن های سایت دسترسی داشته باشیم. اینجا نیازه که احراز هویت کرده باشیم تا به اونا دسترسی داشته باشیم. برای سادگی کار ست کردن کوکی رو به صورت دستی انجام دادم چون عجله داشتم و خوابم میومد! (ساعت 4:30 صبحه که بیدارم دارم مینویسم)😂🥲

قسمت storage
قسمت storage

خب اینجا چند تا چیز میز داریم که الان باید ببینیم کدومش ضروریه تا کارمون راه بیاد. خب منطقیه که دو 🥸قسمت auth_token و jwts مهمه چون توکن احراز هویت هستن. بقیه رو نمیدونم برای چی استفاده میکنن.

قسمت دستی وارد کردن
قسمت دستی وارد کردن

خلاصه دستی تو کد وارد میکنیم و جواب میگیریم و میتونیم نوتفیکیشن هارو بگیریم.😔

قسمت یک: خب که چی!

الان نیازه به صورت متناوب ریکوئست بزنیم هر وقت دیدیم تغییری اتفاق افتاد، یعنی نوتفیکیشن جدیدی اومده!

نوتفیکیشن ها
نوتفیکیشن ها

وقتی که نوتفیکیشن میاد اطلاعات به صورت بالا نشون داده میشه. اگه دقت کنیم یه قسمت به صورت is_read وجود داره که نشون میده توسط ما، نوتفیکیشن خونده شده یا نه.

نمایی از نوتفیکیشن ها
نمایی از نوتفیکیشن ها

پس ما باید با کمک این نوتفیکیشن هارو فیلتر کنیم و فقط اونایی که is_read = 0 دارن رو نشون بدیم.🔥

قسمت ایجاد صفجه نوتفیکیشن
قسمت ایجاد صفجه نوتفیکیشن

یه دکمه میزاریم که لینک ریدایرکت شده روش اعمال میشه. متن نوتفیکیشن و عکس طرف رو نشون میدیم.

خب دیگه تمومه. میتونیم دقت رو ببریم رو 1 ثانیه ولی خب همون 15 ثانیه هم اوکیه. مصرف اینترنت هم به صورت زیر هست. به طور میانگین مقدار پکت های دریافتی:🤖⚡

حجم ریسپانس
حجم ریسپانس

حالا این عدد به دوره تناوب باید ضرب بشه: مثلا اگه یه ساعت استفاده بشه ازش به صورت🥲:

6.22 x (3600 / 15) = 1.492 MB

و توی حداکثر دقت یعنی 1 ثانیه به صورت زیر میشه که باز چیز خاصی نیست🤖:

6.22 x (3600 / 1) = 22.392 MB
میزان مصرف اینترنت
میزان مصرف اینترنت

تقسیم بر 8 کنید چون بر حسب کیلوبیت هست و ما کیلوبایت حساب میکنیم.

حالا اینا کلا عدد و تقریبه و اینا ولی خب وقت هایی که عجله داریم لازم میشه و این مقدار اینترنت منطقیه!

نمایش نحوه اجرای کد
نمایش نحوه اجرای کد

آزمایش کردم و دیدم اگه تناوب رو 1 ثانیه قرار بدین که هر لحظه نوتفیکیشن اومد سریع بدون تاخیر نشون میده. ولی میانگین 15 ثانیه گذاشتیم که یعنی ماکسیمم تاخیر نشون دادن نوتفیکیشن 15 ثانیه هست که از سایت خیلی بهتره. تو چند تا آزمایشی که کردم، تاخیر نشون دادن نوتفیکیشن سایت از 30 ثانیه (با رفرش کردن) شروع شد تا 5 دقیقه و حتی بیشتر!

نمای دیگر از نوتفیکیشن ها
نمای دیگر از نوتفیکیشن ها

میشه یه اکستنشن کروم یا فایرفاکس درست کرد براش و از اون طریق انجام بده. ولی خب برای این کار نیاز میشه که مرورگ باز بمونه. برای همون ترجیح دادم مستقل از این کارا باشه.

قسمت آخر: اختیاریه مشتی!

اگه معتاد ویرگول باشید نیازه که وقتی لپ تاپ باز میشه این برنامه به صورت خودکار باز بشه. برای همین خیلی راحت میتونیم توی ویندوز کارای زیر رو انجام بدیم و این اسکریپت پایتون به صورت خودکار ران بشه:⚡

  1. دکمه windows + R رو میزنیم تا صفحه باز بشه.
  2. عبارت shell:startup رو جستجو میکنیم.
  3. فایل پروژه رو میندازیم این پوشه که باز شده.
  4. توی فایل .bat مینویسم: @echo off بعد start اسم فایلمون

سورس کد بعد از دیباگ کردن و بعضی فیچر های دیگه اضافه کردن، لینکش رو اینجا قرار میدم :)

همه این پست هایی که میزارم یه ایده کوچیک و حتی شاید پیش پا افتاده شاید باشه، ولی لذت پیاده سازی کردن این ایده ها، حتی کوچیک ترینش دل نشینه برام.🥸💕


🎥پیام بازرگانی: یه کاری کردم خلاف قانون میشه و نمیتونم پست کنم. ویرگول جایی نگفته چند تا کاربر داره؟ اونجور که دیدم (البته نه کامل) حدود 185هزار تا بودن که خیلیا هم ثبت نام کردن و خدافظ ...
ویرگولپایتونبرنامه نویسیایدهکدنویسی
Github: @EhsanShahbazii - Telegram: @ehsandevv
اینجا قراره ایده هایی از روی کنجکاوی طرح کنیم و با برنامه نویسی، اون هارو پیاده سازی کنیم. هر چیزی که باهاش توی زندگی درگیر هستیم. هدف ما اینه زندگی و کارایی که انجام میدیم رو به نحوی ساده سازی انجام بدیم و در زمان سفر کنیم.
شاید از این پست‌ها خوشتان بیاید