یک شرکت فراهمکننده سرویس اینترنت (ISP- Internet Service Provider) دو سال است که شروع به کار کرده و در این مدت برای جذب مشتری بیشتر، صرفا سرویس نامحدود اینترنت و با قیمت مناسب ارائه داده است. این شرکت در این دو سال، میزان و نحوه مصرف هر یک مشتریان خود را با دقت رصد کرده است و حالا که بازار را در دست گرفته و ارایه سرویس نامحدود دیگر برایش مقرون بهصرفه نیست، قصد دارد متناسب با نیازهای مشتریانش، تعدادی سرویس محدود تعریف کرده و به آنها پیشنهاد دهد.
اولین قدم برای این کار، دستهبندی کاربران بر اساس فاکتورهای مختلف است و شما هم به همین دلیل استخدام شدهاید.
اطلاعات مربوط به میزان مصرف هر مشتری در تاریخهای مختلف در اشیایی از نوع `TrafficUsage` ذخیره شده است و توسط متد `load_all` در کلاس `TrafficUsageDao` در قالب یک لیست در اختیار شما قرار میگیرد. هر رکورد از این لیست، دارای اطلاعات زیر است:
+ `user`: کاربر
+ `internal`: مشخص میکند که اینترنت مصرفی داخلی بوده یا خارجی
+ `nightly`: مشخص میکند اینترنت مصرفی مربوط به حجم روزانه بوده یا شبانه
+ `date`: تاریخ مصرف حجم اینترنت
+ یک رشته با فرمت yy/MM/dd است (مانند 97/08/25).
+ `usage`: میزان مصرف اینترنت بر حسب مگابایت
در کلاس `TrafficUsageService` قرار است به کمک این دادهها، اطلاعات زیر استخراج شده و در دستهبندی مشتریان مورد استفاده قرار بگیرد:
```python service.py
from material import TrafficUsageDao
class TrafficUsageService:
def __init__(self, traffic_usage_dao: TrafficUsageDao):
self.traffic_usage_dao = traffic_usage_dao
def social_media_lovers(self, year: int, month: int):
pass
def download_lovers(self, year: int, month: int):
pass
```
1. عاشقان رسانههای اجتماعی (**متد social_media_lovers**):
+ مشتریانی که در طول ماه مورد نظر از سال مورد نظر، مجموع مصرف آنها از اینترنت **خارجی**، از مصرف اینترنت **خارجی** حداقل 90% سایر کاربران فعال در آن ماه بیشتر باشد.
+ مثلا اگر علی در تیر 97 به میزان 50 گیگ اینترنت خارجی مصرف کرده اما حداقل 90% سایر کاربران، هر کدام در تیر 97 مصرفشان از اینترنت خارجی کمتر از 50 گیگ بوده، علی از عاشقان رسانههای اجتماعی در تیر 97 بوده است.
+ منظور از کاربر فعال در یک بازه زمانی خاص، کاربری است که حداقل یک رکورد `TrafficUsage` در آن ماه و به نام آن کاربر ثبت شده باشد.
2. مشتریان عشق دانلود (**متد download_lovers**):
+ مشتریانی که در طول ماه مورد نظر از سال مورد نظر، مجموع مصرف آنها از اینترنت شبانه، بیش از مجموع مصرف آنها از اینترنت روزانه باشد.
**نکته**:
+ در هر یک از دو سرویس مورد نظر، به هر دلیلی اگر کاربری پیدا نشود، باید یک لیست خالی برگردانده شود (خروجی متد `None` نباشد).
## نمونه
با اجرای ماژول `main` که داخل پروژه اولیه قرار دارد، خروجی زیر مورد انتظار است:
```
social media lovers:
a100
download lovers:
a100
a101
a102
```
## نکات
+ میتوانید فایل اولیه این سوال را از [این لینک](/problemset/assignments/4367/download_problem_initial_project/33042/) دریافت کنید.
+ تابعهای شما نباید مقداری را چاپ کنند، بلکه باید مقادیر مورد نظر را بازگردانند.
## نحوه ارسال
شما باید کلاس `TrafficUsageService` موجود در فایل `service.py` را تکمیل و سپس این فایل را ارسال کنید.