Skip to content

Commit

Permalink
Improve logic for login errors
Browse files Browse the repository at this point in the history
  • Loading branch information
RyanLua authored Aug 18, 2024
1 parent 3f37c38 commit 853574b
Showing 1 changed file with 13 additions and 16 deletions.
29 changes: 13 additions & 16 deletions src/instawebhooks/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
try:
from aiohttp import ClientSession
except ModuleNotFoundError as exc:
raise SystemExit("Aiohttp not found.\n pip install [--user] aiohttp") from exc
raise SystemExit(
"Aiohttp not found.\n pip install [--user] aiohttp") from exc

try:
from discord import Embed, File, SyncWebhook
Expand Down Expand Up @@ -93,7 +94,8 @@ def closure_check_regex(arg_value):
help="don't show the post embed and only send message content",
action="store_true",
)
parser.add_argument("--version", action="version", version="%(prog)s " + version)
parser.add_argument("--version", action="version",
version="%(prog)s " + version)
args = parser.parse_args()

# Set the logger to debug if verbose is enabled
Expand All @@ -104,21 +106,10 @@ def closure_check_regex(arg_value):
# Log the start of the program
logger.info("Starting InstaWebhooks...")

# Check if we need to sign in to access the Instagram profile
try:
Profile.from_username(Instaloader().context, args.instagram_username).get_posts()
except KeyboardInterrupt:
print("\nInterrupted by user.")
sys.exit(0)
except LoginRequiredException as exc:
logger.critical("instaloader: error: %s", exc)
raise SystemExit(
"Not logged into Instaloader.\n instaloader --login YOUR-USERNAME"
) from exc

# Ensure that a message content is provided if no embed is enabled
if args.no_embed and args.message_content == "":
logger.critical("error: Cannot send an empty message. No message content provided.")
logger.critical(
"error: Cannot send an empty message. No message content provided.")
raise SystemExit(
"Please provide a message content with the --message-content flag."
)
Expand Down Expand Up @@ -233,7 +224,8 @@ async def check_for_new_posts():
lambda p: p.date > until, dropwhile(lambda p: p.date > since, posts)
):
new_posts_found = True
logger.debug("New post found: https://www.instagram.com/p/%s", post.shortcode)
logger.debug(
"New post found: https://www.instagram.com/p/%s", post.shortcode)
await send_to_discord(post)
sleep(2) # Avoid 30 requests per minute rate limit

Expand All @@ -255,6 +247,11 @@ def main():
while True:
asyncio.run(check_for_new_posts())
sleep(args.refresh_interval)
except LoginRequiredException as login_exc:
logger.critical("instaloader: error: %s", login_exc)
raise SystemExit(
"Not logged into Instaloader.\n instaloader --login YOUR-USERNAME"
) from login_exc
except KeyboardInterrupt:
print("\nInterrupted by user.")
sys.exit(0)

0 comments on commit 853574b

Please sign in to comment.