#!/usr/bin/env python3 import os import textwrap import requests import datetime from flask import Flask, Response, request, jsonify app = Flask(__name__) USER_TOKEN = os.getenv('USER_TOKEN') if not USER_TOKEN: raise EnvironmentError("USER_TOKEN environment variable is not set") def get_uploads(user_token, page=1): return requests.get("https://dps.report/getUploads?userToken={}&page={}&perPage={}".format(user_token, page, 100)).json() @app.route("/") def test(): page = request.args.get('page', '1') uploads = get_uploads(USER_TOKEN, page) if request.headers.get('X-Requested-With') == 'XMLHttpRequest': return jsonify(uploads) upload_links_html = "" for upload in sorted(uploads['uploads'], key=lambda upload: upload['encounterTime'], reverse=True): encounter_time = datetime.datetime.fromtimestamp(upload['encounterTime']).strftime('%Y%m%d-%H%M%S') boss_name = upload['encounter']['boss'] bosses = {26712: "Ura", 26774: "Decima", 26725: "Greer"} if boss_name == "DPS.Report": boss_name = bosses[upload['encounter']['bossId']] print(upload['encounter']) if upload['encounter']['isCm'] and not upload['encounter']['isLegendaryCm']: boss_name = boss_name + ' CM' if upload['encounter']['isLegendaryCm']: boss_name = boss_name + ' LCM' if upload['encounter']['emboldened']: boss_name = boss_name + ' (emboldened)' boss_success = upload['encounter']['success'] success = '❌' if boss_success: success = '✅' upload_links_html += ' {success} {encounter_time} {boss_name}
\n'.format(url=upload['permalink'], success=success, encounter_time=encounter_time, boss_name=boss_name) older_reports = "
Older reports: " for i in range(uploads['pages']): if page == str(i + 1): older_reports += ' {page_number} '.format(page_number=i + 1) else: older_reports += ' {page_number} '.format(page_number=i + 1) response_text = textwrap.dedent('''\ lennys dps reports
{older_reports}
'''.format(upload_links_html=upload_links_html, older_reports=older_reports)) return Response(response_text, mimetype='text/html') if __name__ == "__main__": app.run()