stats/upload.py

63 líneas
1.4 KiB
Python

import os
import base64
from datetime import datetime
from app.libraries.database import Database
from app.libraries.forgejo import Forgejo, ForgejoNotFoundError
import pdb
def date_string():
now = datetime.now()
day = '{:02d}'.format(now.day)
month = '{:02d}'.format(now.month)
year = str(now.year)
return day, month, year
if __name__ == '__main__':
db = Database()
if not os.path.exists('dataset'):
os.makedirs('dataset')
day, month, year = date_string()
if not os.path.exists(f'dataset/{year}'):
os.makedirs(f'dataset/{year}')
if not os.path.exists(f'dataset/{year}/{month}'):
os.makedirs(f'dataset/{year}/{month}')
filename = f'dataset_{year}{month}{day}.csv'
db.csv_save(f'dataset/{year}/{month}/{filename}')
fgj = Forgejo()
gituser = fgj.user()
try:
with open(f'dataset/{year}/{month}/{filename}', 'rb') as input_file:
data = input_file.read()
file = base64.b64encode(data)
response = fgj.repo_owner_create_file(gituser.login, fgj.stats_repo, f'dataset/{year}/{month}/{filename}', gituser.email, gituser.login, "main", file, f"{year}{month}{day} fediverse's dataset")
if 'content' in response:
print(f'{filename} uploaded to {fgj.api_base_url}/{gituser.login}/{fgj.stats_repo}')
except:
print(response)
pass