From c88e5e7ab1555a003ab56058bf6418ed11d25ba1 Mon Sep 17 00:00:00 2001 From: bakatrouble Date: Thu, 31 Jul 2025 12:26:37 +0300 Subject: [PATCH] fix resend after --- main.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/main.py b/main.py index 65b5bec..7038c36 100644 --- a/main.py +++ b/main.py @@ -183,23 +183,32 @@ async def check_updates(): @dp.message(filters.Command('resend_after'), ChatFilter) async def resend_after(msg: Message): + args = msg.text.split()[1:] try: - timestamp = int(msg.text.split()[1]) + timestamp = int(args[0]) + skip_to_sub = int(args[1]) if len(args) > 1 else None except: traceback.print_exc() await msg.reply('Invalid timestamp or not provided') return async with redis.lock(REDIS_LOCK_KEY): - tag_list = [tuple(t.decode().split()) for t in await redis.smembers(REDIS_SUBS_KEY)] + tags = sorted(await redis.smembers(REDIS_SUBS_KEY)) + if skip_to_sub is not None and skip_to_sub in tags: + tags = tags[tags.index(skip_to_sub):] + tag_list = [tuple(t.decode().split()) for t in tags] for i, tag in enumerate(tag_list): - await msg.reply(f'Checking tag {tag} ({i+1}/{len(tag_list)})', parse_mode=ParseMode.HTML) + logging.info(f'Checking tag {tag} ({i+1}/{len(tag_list)})') + # await msg.reply(f'Checking tag {tag} ({i+1}/{len(tag_list)})', parse_mode=ParseMode.HTML) posts = [] page = 1 while True: + if page > 10: + break page_posts = await e621.get_posts(tag, page) if not page_posts: break + logging.info(f'{page_posts}') for post in page_posts: if datetime.datetime.fromisoformat(post.created_at).timestamp() < timestamp: break