diff --git a/jarvis_tasks/tasks/twitter.py b/jarvis_tasks/tasks/twitter.py index 2aca98d..90465e3 100644 --- a/jarvis_tasks/tasks/twitter.py +++ b/jarvis_tasks/tasks/twitter.py @@ -3,6 +3,7 @@ import asyncio from datetime import datetime, timedelta, timezone from logging import Logger from typing import List +from urllib.parse import quote_plus import tweepy from dis_snek import Snake @@ -23,7 +24,7 @@ def tweet_embeds(tweet: tweepy.models.Status) -> List[Embed]: Args: tweet: Tweet to build embed """ - url = f"https://twitter.com/{tweet.user.name}/status/{tweet.id}" + url = f"https://twitter.com/{quote_plus(tweet.user.name)}/status/{tweet.id}" entities = tweet.__dict__.get("extended_entities", {}) media = entities.get("media", []) @@ -35,7 +36,7 @@ def tweet_embeds(tweet: tweepy.models.Status) -> List[Embed]: text = tweet.text if subtweet := tweet.__dict__.get("quoted_status", None): subuser = subtweet.user - text += f"\n\n> [@{subuser.name}](https://twitter.com/{subuser.name})" + text += f"\n\n> [@{subuser.name}](https://twitter.com/{quote_plus(subuser.name)})" text += f"\n> {subtweet.text}" if entites := subtweet.__dict__.get("extended_entities", {}): submedia = entites.get("media", []) @@ -150,7 +151,7 @@ async def twitter(bot: Snake, logger: Logger) -> None: # Delete invalid accounts (no follows) for account in accounts_to_delete: - logger.info(f"Account {account.handle} has no followers, removing") + logger.info(f"{account.handle} has no followers, removing") await account.delete() # Only check once a minute