From 655cb352604f5780816c84356978edcdacc4e789 Mon Sep 17 00:00:00 2001 From: Redume Date: Thu, 27 Mar 2025 11:39:48 +0300 Subject: [PATCH 1/5] chore: Rewrote the date retrieval function if there is no data --- functions/convert.py | 12 +++++------- requirements.txt | 3 +-- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/functions/convert.py b/functions/convert.py index d4b15ac..a00f12b 100644 --- a/functions/convert.py +++ b/functions/convert.py @@ -1,10 +1,9 @@ import json import re -from datetime import datetime +from datetime import datetime, timedelta from decimal import Decimal from http import HTTPStatus -import pytz import aiohttp import yaml @@ -25,7 +24,7 @@ class Converter: self.conv_amount = format_number(Decimal(self.conv_amount)) - async def get_timezone(self) -> str: + async def get_lastdate(self) -> str: async with aiohttp.ClientSession( timeout=aiohttp.ClientTimeout(total=3) ) as session: @@ -37,11 +36,11 @@ class Converter: return 'UTC' data = await res.json() - return data.get('timezone', 'UTC') + + return data.get('last_date', datetime.now() - timedelta(1)) async def kekkai(self) -> bool: - timezone = pytz.timezone(await self.get_timezone()) - date = datetime.now(timezone).strftime('%Y-%m-%d') + date = datetime.strftime(await self.get_lastdate(), '%Y-%m-%d') async with aiohttp.ClientSession(timeout=aiohttp.ClientTimeout(total=3)) as session: async with session.get(f'{config['kekkai_instance']}/api/getRate/', params={ @@ -58,7 +57,6 @@ class Converter: return True - async def ddg(self) -> None: async with aiohttp.ClientSession( timeout=aiohttp.ClientTimeout(total=3) diff --git a/requirements.txt b/requirements.txt index 96dd1bd..21259b5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,3 @@ aiohttp~=3.9.5 PyYAML~=6.0.1 -aiogram~=3.15.0 -pytz~=2025.2 \ No newline at end of file +aiogram~=3.15.0 \ No newline at end of file From cc916c172adb39dcbb7cc89725f1386c3d35c67a Mon Sep 17 00:00:00 2001 From: Redume Date: Thu, 27 Mar 2025 11:40:13 +0300 Subject: [PATCH 2/5] chore: dockerfile is now used for docker compose, not image. --- docker-compose.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index c17e976..a93a761 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,8 +1,8 @@ services: shirino: - build: . - image: ghcr.io/shirino/shirino:latest - restart: unless-stopped + build: + context: ./ + dockerfile: Dockerfile volumes: - './config.yaml:/config.yaml' From f57dfd4762c68220205385df68814eab6ab214de Mon Sep 17 00:00:00 2001 From: Redume Date: Thu, 27 Mar 2025 12:09:12 +0300 Subject: [PATCH 3/5] fix: fix path for config --- functions/convert.py | 2 +- functions/create_chart.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/functions/convert.py b/functions/convert.py index a00f12b..c69cdb8 100644 --- a/functions/convert.py +++ b/functions/convert.py @@ -9,7 +9,7 @@ import yaml from utils.format_number import format_number -config = yaml.safe_load(open('config.yaml', 'r', encoding='utf-8')) +config = yaml.safe_load(open('../config.yaml', 'r', encoding='utf-8')) class Converter: def __init__(self): diff --git a/functions/create_chart.py b/functions/create_chart.py index 9348789..9c89da5 100644 --- a/functions/create_chart.py +++ b/functions/create_chart.py @@ -3,7 +3,7 @@ from http import HTTPStatus import yaml import aiohttp -config = yaml.safe_load(open('config.yaml', 'r', encoding='utf-8')) +config = yaml.safe_load(open('../config.yaml', 'r', encoding='utf-8')) async def create_chart(from_currency: str, conv_currency: str) -> (dict, None): async with aiohttp.ClientSession(timeout=aiohttp.ClientTimeout(total=3)) as session: From ecdb072773fc98f8eb6deb7b37d200a358f3abca Mon Sep 17 00:00:00 2001 From: Redume Date: Thu, 27 Mar 2025 13:15:27 +0300 Subject: [PATCH 4/5] fix: Fixed an error with conversion, now the correct format in the string is returned at once --- functions/convert.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/functions/convert.py b/functions/convert.py index c69cdb8..e7b2ad4 100644 --- a/functions/convert.py +++ b/functions/convert.py @@ -29,18 +29,23 @@ class Converter: timeout=aiohttp.ClientTimeout(total=3) ) as session: async with session.get( - f'{config['kekkai_instance']}/api/metadata' + f"{config['kekkai_instance']}/api/metadata" ) as res: if not HTTPStatus(res.status).is_success: - return 'UTC' + return ( + datetime.now() - timedelta(1) + ).strftime('%Y-%m-%d') data = await res.json() - return data.get('last_date', datetime.now() - timedelta(1)) + return data.get( + 'last_date', + (datetime.now() - timedelta(1)).strftime('%Y-%m-%d') + ) async def kekkai(self) -> bool: - date = datetime.strftime(await self.get_lastdate(), '%Y-%m-%d') + date = await self.get_lastdate() async with aiohttp.ClientSession(timeout=aiohttp.ClientTimeout(total=3)) as session: async with session.get(f'{config['kekkai_instance']}/api/getRate/', params={ From d47a1afb84c9b3cd2f976aa3cedeaf1ea34b440e Mon Sep 17 00:00:00 2001 From: Redume Date: Thu, 27 Mar 2025 13:15:35 +0300 Subject: [PATCH 5/5] chore: change path for config --- main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.py b/main.py index a94dba3..ae24898 100644 --- a/main.py +++ b/main.py @@ -14,7 +14,7 @@ from functions.create_chart import create_chart from utils.format_number import format_number from utils.inline_query import reply -config = yaml.safe_load(open('config.yaml', 'r', encoding='utf-8')) +config = yaml.safe_load(open('../config.yaml', 'r', encoding='utf-8')) bot = Bot( token=config['telegram_token'], default=DefaultBotProperties(parse_mode=ParseMode.HTML)