")
def user(username):
return home(username)
@bp.route("/", defaults={"username": None})
def home(username):
response = make_response("")
disable_manga = True
if request.args.get("show_manga") is not None:
disable_manga = False
if request.args.get("hide_message") is not None:
if request.cookies.get("hide_message") is None:
response = redirect("/")
response.set_cookie("hide_message", "1")
if request.args.get("toggle_missing") is not None:
response = redirect(
f"/{'?show_manga' if request.args.get('show_manga') is not None else ''}"
)
if request.cookies.get("show_missing") is None:
response.set_cookie("show_missing", "1")
else:
response.delete_cookie("show_missing")
# print(
# requests.post(
# "https://anilist.co/api/v2/oauth/token",
# data={
# "grant_type": "refresh_token",
# "client_id": os.getenv("ANILIST_CLIENT_ID"),
# "client_secret": os.getenv("ANILIST_CLIENT_SECRET"),
# "refresh_token": json.loads(request.cookies.get("anilist"))[
# "refresh_token"
# ],
# },
# ).json()
# )
if request.cookies.get("anilist"):
anilist = json.loads(request.cookies.get("anilist"))
if user_id(anilist) == -1:
response = redirect("/")
response.delete_cookie("anilist")
return response
start = time.time()
(current_anime, name) = create_collection(
anilist, "ANIME", request.args.get("username") or username
)
print(name, flush=True)
releasing_anime = [
media for media in current_anime if media["media"]["status"] == "RELEASING"
]
releasing_outdated_anime = [
media
for media in releasing_anime
if media["media"]["type"] == "ANIME"
and int(
(
{"episode": 0}
if media["media"]["nextAiringEpisode"] is None
else media["media"]["nextAiringEpisode"]
)["episode"]
)
- 1
!= int((media["media"]["mediaListEntry"] or {"progress": 0})["progress"])
]
(anime_html, anime_length) = anime_to_html(releasing_outdated_anime)
anime_time = time.time() - start
start = time.time()
manga_body = 'Show manga'
if not disable_manga:
(current_manga, _) = create_collection(
anilist, "MANGA", request.args.get("username")
)
releasing_manga = [
media
for media in current_manga
if media["media"]["status"] == "RELEASING" and media["media"]["format"] != "NOVEL"
]
releasing_outdated_manga = [
media
for media in releasing_manga
if media["media"]["type"] == "MANGA"
and int(
(media["media"]["mediaListEntry"] or {"progress": 0})["progress"]
)
>= 1 # Useful when testing
]
(manga_html, manga_length) = manga_to_html(
releasing_outdated_manga, request.cookies.get("show_missing")
)
manga_time = time.time() - start
manga_body = f"""
Manga [{manga_length}] {round(manga_time, 2)}s
{manga_html}
"""
response.set_data(
page(
f"""Log out from AniList ({name})
{"You don't have any new activity statuses from the past day! Create one to keep your streak!
" if datetime.datetime.fromtimestamp(last_activity(user_name_to_id(name))).date()
!= datetime.datetime.now(datetime.timezone.utc).date() else ""}""",
f"""{'Hide' if request.cookies.get('show_missing') else 'Show'} unresolved
Anime [{anime_length}] {round(anime_time, 2)}s
{anime_html}
{manga_body}""",
)
)
else:
response.set_data(
page(
f"""Log in with AniList
""",
"Please log in to view due media.",
)
)
return response