التطبيق عبارة عن برنامج طقس لسطح المكتب مكتوب بلغة بايثون بواجهة رسومية باستخدام تكينتر، ويجلب بيانات الطقس من خدمات أوبن ميتيو عبر الإنترنت.
المكوّنات والمكتبات:
تكينتر (Tkinter) و تى تى كى (ttk): لإنشاء النافذة، شريط البحث، الأزرار، البطاقات، القوائم، وشريط التمرير.
بيلو (Pillow): لرسم أيقونات الطقس والقياسات بجودة عالية وتجهيزها للعرض في الواجهة.
يورل ليب (urllib) و جايسون (json): لإرسال طلبات الإنترنت إلى خدمات الطقس وقراءة ردودها بصيغة جايسون.
ثريدينغ (threading): لتنفيذ عمليات البحث وجلب الطقس في الخلفية، حتى تظل الواجهة قابلة للاستخدام أثناء انتظار الإنترنت.
أسيونك آي أو (asyncio) و وين آر تي (WinRT): لمحاولة الحصول على إحداثيات الجهاز الحالية على نظام ويندوز (Windows).
باي إنستايلر (PyInstaller): لتحويل البرنامج إلى ملف تنفيذي بصيغة (exe).
كيف يحصل التطبيق على البيانات:
البحث عن مدينة: ترسل الدالة فايند بليسز (find_places) اسم المدينة إلى خدمة أوبن ميتيو (Open-Meteo) للبحث الجغرافي. إذا كان الاسم بالعربية، تطلب نتائج باللغة العربية، وتُعرض اقتراحات للمدن مع معلومات مثل الدولة أو المنطقة لتسهيل اختيار المكان الصحيح.
جلب الطقس: ترسل الدالة فيتش ويذر (fetch_weather) إحداثيات المدينة إلى واجهة التوقعات، وتطلب بيانات الطقس الحالي، والتوقعات بالساعة، وتوقعات الأيام الخمسة، وأوقات الشروق والغروب.
بيانات حبوب اللقاح: تحاول الدالة نفسها جلب بيانات حبوب لقاح البتولا والعشب والرجيد من واجهة جودة الهواء (قد لا تتوفر هذه البيانات لكل موقع).
عرض النتائج: تنشئ دوال مثل رندر ويذر (render_weather)، رندر هورلي (render_hourly)، و رندر دايلي (render_daily) أقسام الشاشة من البيانات المستلمة.