from net import *
import pandas as pd,numpy as np
c=Client();events=pd.read_csv(R/'events.csv');rows=[]
for e in events.itertuples():
    t=pd.Timestamp(e.event,tz='UTC');old=t-pd.DateOffset(years=1);windows=[('old_pre90',old-pd.Timedelta(days=90),old),('old_post90',old,old+pd.Timedelta(days=90))];record={'appid':e.appid,'name':e.name}
    for name,lo,hi in windows:
        dest=R/'seasonal_summaries'/f'{e.appid}_{name}.json'
        if dest.exists():d=json.loads(dest.read_text())
        else:
            params={'json':1,'filter':'recent','language':'all','purchase_type':'steam','review_type':'all','num_per_page':1,'filter_offtopic_activity':1,'start_date':int(lo.timestamp()),'end_date':int(hi.timestamp()),'date_range_type':'include'}
            raw=json.loads(c.get(f'https://store.steampowered.com/appreviews/{e.appid}',params,'seasonal_summary'));assert raw.get('success')==1
            d={'appid':e.appid,'params':params,'query_summary':raw['query_summary'],'retrieved_at':utc()};dump(dest,d)
        record[name]=d['query_summary']['total_reviews']
    rows.append(record);print(record,flush=True)
pd.DataFrame(rows).to_csv(R/'seasonal_comparisons.csv',index=False)
