#!/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('''\