Catch MastodonNotFoundError

This commit is contained in:
Liam Steckler 2024-01-31 21:34:58 -08:00
parent b3474e24c9
commit e099d3e240

32
scl.py
View file

@ -3,6 +3,7 @@ import math
from datetime import datetime
from typing import Optional
import mastodon
import requests
import yaml
from mastodon import Mastodon
@ -25,7 +26,7 @@ except requests.JSONDecodeError:
config = yaml.safe_load(open("config.yml"))
stadiamaps_api_key = config["stadiamaps"]["api_key"]
nominatim_url = config["nominatim"]["api_base_url"]
mastodon = Mastodon(
mastodon_client = Mastodon(
client_id=config["mastodon"]["client_id"],
client_secret=config["mastodon"]["client_secret"],
access_token=config["mastodon"]["access_token"],
@ -198,7 +199,7 @@ with Session(engine) as session:
updated_entries.append("")
updated_entries.append(hashtag_string)
if max_event_class["is_postable"] and existing_record.initial_post_id:
post_result = mastodon.status_post(
post_result = mastodon_client.status_post(
status="\n".join(updated_entries),
in_reply_to_id=existing_record.most_recent_post_id,
visibility="public",
@ -349,7 +350,7 @@ with Session(engine) as session:
with io.BytesIO() as map_image_file:
map_image.save(map_image_file, format="PNG", optimize=True)
map_media_post = mastodon.media_post(
map_media_post = mastodon_client.media_post(
map_image_file.getvalue(),
mime_type="image/png",
description=alt_text,
@ -384,7 +385,7 @@ with Session(engine) as session:
)
)
post_result = mastodon.status_post(
post_result = mastodon_client.status_post(
status=post_text,
media_ids=map_media_post,
visibility="public",
@ -419,14 +420,19 @@ with Session(engine) as session:
):
# Event ID no longer exists in response
if active_outage.most_recent_post_id:
post_result = mastodon.status_post(
status="This outage is reported to be resolved.\n\n#SeattleCityLightOutage #SCLOutage #SCLOutage{}".format(
active_outage.outage_user_id
),
in_reply_to_id=active_outage.most_recent_post_id,
visibility="public",
language="en",
)
active_outage.most_recent_post_id = post_result["id"]
try:
post_result = mastodon_client.status_post(
status="This outage is reported to be resolved.\n\n#SeattleCityLightOutage #SCLOutage #SCLOutage{}".format(
active_outage.outage_user_id
),
in_reply_to_id=active_outage.most_recent_post_id,
visibility="public",
language="en",
)
active_outage.most_recent_post_id = post_result["id"]
except mastodon.MastodonNotFoundError:
print(
"The outage post couldn't be replied to, it was externally deleted."
)
active_outage.no_longer_in_response_time = datetime.now()
session.commit()