From 6a7e996406a174ad4dc3b771239414c0894a9b46 Mon Sep 17 00:00:00 2001 From: John Groszko Date: Mon, 13 Apr 2026 21:20:46 -0500 Subject: [PATCH] Refactor logging Update 4 files --- db/models.py | 3 +++ main.py | 23 +------------------- orders.py | 59 +++++++++++++++++++++++++++++++++++++-------------- scheduling.py | 20 +---------------- 4 files changed, 48 insertions(+), 57 deletions(-) diff --git a/db/models.py b/db/models.py index 6286523..847c4d5 100644 --- a/db/models.py +++ b/db/models.py @@ -183,6 +183,9 @@ class OrderStatus(BaseModel): null=True ) + def __str__(self): + return f"{self.pool} {self.id}" + class Meta: table_name = 'order_status' diff --git a/main.py b/main.py index 261db37..9cfefdf 100644 --- a/main.py +++ b/main.py @@ -17,28 +17,7 @@ logger = logging.getLogger(__name__) async def do_order_issue(orders_pool_id): orders_pool = orders_pool_by_id(orders_pool_id) - issue_result = await order_issue(orders_pool) - - if 'order_status' in issue_result: - order_status = issue_result['order_status'] - logger.info(f'Issued order id {order_status.id}') - timeline_event_put( - TIMELINE_ORDER_ISSUED, - order_status.text.split("\n")[0], - user=orders_pool.user, - orders_pool=orders_pool, - order_status=order_status, - extra={ - "mastodon_status_url": issue_result['mastodon_status']['url'] - } - ) - elif 'reason' in issue_result: - timeline_event_put( - TIMELINE_ORDER_NOT_ISSUED, - issue_result['reason'], - user=orders_pool.user, - orders_pool=orders_pool - ) + await order_issue(orders_pool) if __name__=='__main__': logging.basicConfig( diff --git a/orders.py b/orders.py index 053194c..4bf0afc 100644 --- a/orders.py +++ b/orders.py @@ -2,7 +2,7 @@ import logging import datetime import asyncio -from db.constants import TIMELINE_ORDER_CONFIRMED, TIMELINE_ORDER_NOT_PUNISHED, TIMELINE_ORDER_PUNISHED +from db.constants import TIMELINE_ORDER_CONFIRMED, TIMELINE_ORDER_ISSUED, TIMELINE_ORDER_NOT_ISSUED, TIMELINE_ORDER_NOT_PUNISHED, TIMELINE_ORDER_PUNISHED from util import make_session from generate import generate_order, generate_punishment from db.queries import domsubusers_doms, order_status_by_id, order_status_put, order_status_confirm, timeline_event_put @@ -70,8 +70,14 @@ async def order_issue(orders_pool): user = orders_pool.user if user.mastodon_username is None: - logger.info('Cannot issue order without mastodon username') + logger.info(f"{orders_pool} - Cannot issue order without mastodon username") await order_telegram_post_need_mastodon(session, orders_pool) + timeline_event_put( + TIMELINE_ORDER_NOT_ISSUED, + "Cannot issue order without mastodon username", + user=orders_pool.user, + orders_pool=orders_pool + ) return { "reason": "Cannot issue order without mastodon username" } orders_info = generate_order(orders_pool) @@ -79,6 +85,12 @@ async def order_issue(orders_pool): if 'orders' not in orders_info: logger.info(f"{orders_pool} - {orders_info['reason']}") await order_telegram_post_none(session, orders_pool) + timeline_event_put( + TIMELINE_ORDER_NOT_ISSUED, + orders_info['reason'], + user=orders_pool.user, + orders_pool=orders_pool + ) return { "reason": orders_info['reason'] } orders_str = "\n".join(orders_info['orders']) @@ -113,16 +125,31 @@ async def order_issue(orders_pool): verify_at=verify_at ) + order_status = order_status_put( + orders_pool, + orders_pool.user, + m_status['id'], + created_at, + due_at, + orders_str, + verify_at=verify_at + ) + + timeline_event_put( + TIMELINE_ORDER_ISSUED, + order_status.text.split("\n")[0], + user=orders_pool.user, + orders_pool=orders_pool, + order_status=order_status, + extra={ + "mastodon_status_url": m_status['url'] + } + ) + + logger.info(f"Issued {order_status}") + return { - "order_status" : order_status_put( - orders_pool, - orders_pool.user, - m_status['id'], - created_at, - due_at, - orders_str, - verify_at=verify_at - ), + "order_status" : order_status, "mastodon_status": m_status } @@ -156,7 +183,7 @@ async def punishment_telegram_post(session, orders_pool, punishment_str, m_url): async def punishment_issue(session, order_status): if order_status.pool is None or order_status.pool.punishment_pool is None: - logger.info(f'Unable to issue a punishment for {order_status.id}, no punishment pool for order pool {order_status.pool.name}') + logger.info(f'Unable to issue a punishment for {order_status}, no punishment pool for order pool {order_status.pool.name}') return { "reason": "No punishment pool"} punishment_pool = order_status.pool.punishment_pool @@ -217,7 +244,7 @@ async def order_check(order_status_id): user = order_status.user if order_status.punishment.count() > 0: - logger.info(f'Punishment already issued for {order_status.id}') + logger.info(f'Punishment already issued for {order_status}') return m = Mastodon(session) @@ -267,7 +294,7 @@ async def order_check(order_status_id): confirmed_at = d['created_at'] order_status_confirm(order_status.id, confirmed_at) - logger.info('Confirmed order %s' % (order_status.id)) + logger.info(f"Confirmed order {order_status}") timeline_event_put( TIMELINE_ORDER_CONFIRMED, order_status.text.split("\n")[0], @@ -281,7 +308,7 @@ async def order_check(order_status_id): break if confirmed_at is None: - logger.info('Order %s remains unconfirmed' % (order_status.id)) + logger.info(f"Order {order_status} remains unconfirmed") due_at = datetime.datetime.fromisoformat(order_status.due_at) if(due_at < datetime.datetime.now(datetime.UTC)): @@ -297,7 +324,7 @@ async def order_check(order_status_id): elif user.verify_mastodon_favorite and had_favorites is False: reason = "No replies had a favorite from a dom or tagged account" - logger.info('Time to issue a punishment for %s' % order_status.id) + logger.info(f"Time to issue a punishment for {order_status}") issue_result = await punishment_issue(session, order_status) diff --git a/scheduling.py b/scheduling.py index 8e945ae..9fd4c4e 100644 --- a/scheduling.py +++ b/scheduling.py @@ -92,12 +92,11 @@ class OrderScheduler(): ) return - logger.info(f'Issuing order for {orders_pool.name}[{orders_pool.user.telegram_username}]') - issue_result = await order_issue(orders_pool) if 'order_status' in issue_result: order_status = issue_result['order_status'] + if order_status.due_at is not None or order_status.verify_at is not None: # Schedule check check_time = order_status.verify_at if order_status.verify_at is not None else order_status.due_at @@ -106,23 +105,6 @@ class OrderScheduler(): self.scheduled_check, args=(order_status.id,) ) - timeline_event_put( - TIMELINE_ORDER_ISSUED, - order_status.text.split("\n")[0], - user=orders_pool.user, - orders_pool=orders_pool, - order_status=order_status, - extra={ - "mastodon_status_url": issue_result['mastodon_status']['url'] - } - ) - elif 'reason' in issue_result: - timeline_event_put( - TIMELINE_ORDER_NOT_ISSUED, - issue_result['reason'], - user=orders_pool.user, - orders_pool=orders_pool - ) async def scheduled_check(self, outstanding_order_id): await order_check(outstanding_order_id)