From fda33866814e95830466787ae9cea2e006386e85 Mon Sep 17 00:00:00 2001 From: clarkzjw Date: Mon, 20 Feb 2023 14:45:17 -0800 Subject: attach top popular photo to mastodon media post --- bot.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'bot.py') diff --git a/bot.py b/bot.py index 7679d7f..467c37e 100644 --- a/bot.py +++ b/bot.py @@ -26,9 +26,10 @@ from telegram import InlineKeyboardButton, InlineKeyboardMarkup, Update from telegram.ext import Application, CallbackQueryHandler, CommandHandler, ContextTypes, MessageHandler, filters from config import BOT_TOKEN -from foursquare.query_poi import query_poi +from foursquare.poi import query_poi, get_poi_top_photo from dbstore.dbm_store import get_loc from toot import mastodon_client +import urllib.request # Enable logging logging.basicConfig( @@ -66,12 +67,20 @@ async def button(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: await query.answer() poi = get_loc(query.data) + photo_url = get_poi_top_photo(query.data) + media_id = None + if photo_url is not None: + with urllib.request.urlopen(photo_url) as response: + data = response.read() + media = mastodon_client.media_post(data, mime_type="image/jpeg") + media_id = [media["id"]] status = mastodon_client.status_post( f"I'm at {poi['name']} in {poi['locality']}, {poi['region']}, {poi['osm_url']}", - visibility="private") + visibility="private", + media_ids=media_id) - await query.edit_message_text(text=f"Selected place: {poi['name']}\nPosted to Mastodon: {status['url']}", + await query.edit_message_text(text=f"Selected place: {poi['name']}, `{query.data}`\nPosted to Mastodon: {status['url']}", parse_mode=telegram.constants.ParseMode.MARKDOWN) -- cgit v1.2.3