From f83618f5cddd21fc5a3ffa58f50b906e6b128dcf Mon Sep 17 00:00:00 2001 From: "kevin.caires" Date: Wed, 28 Sep 2022 09:58:30 -0300 Subject: [PATCH] ADD datetime treatment. --- utils/commands.py | 17 +++-------------- utils/tools.py | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 14 deletions(-) diff --git a/utils/commands.py b/utils/commands.py index 3261b8a..813a72e 100644 --- a/utils/commands.py +++ b/utils/commands.py @@ -2,10 +2,8 @@ Bot commands. """ import logging -from datetime import datetime from random import choice -import pytz from discord import Embed, Intents from discord.ext import commands from settings.config import IMAGE_TYPES, OW_API_CONFIG, PERMISSIONS @@ -14,7 +12,7 @@ from utils.database import (count_quotes, get_by_id, get_quote_contains, get_quotes, remove_quote, set_quote) from utils.machine_monitor import Monitor from utils.news_paper import News -from utils.tools import kbytes_to_gbytes +from utils.tools import datetime_to_string, kbytes_to_gbytes from utils.weather import displayweather, getweatherdata client = commands.Bot(command_prefix='--', intents=Intents.all()) @@ -345,18 +343,9 @@ async def news(bot: object, *options: str) -> None: return for new in news: - try: - dt = datetime.fromisoformat( - new['publishedAt'] - ).astimezone(pytz.timezone('America/Sao_Paulo')) - except ValueError: - dt = datetime.strptime(new['publishedAt'], '%Y-%m-%dT%H:%M:%Sz') - except Exception as e: - logger.error(e) - continue - + dt = datetime_to_string(new['publishedAt']) embed.add_field(name='Font', value=new['source']['name'], inline=False) - embed.add_field(name='Published at', value=dt.isoformat(), inline=False) + embed.add_field(name='Published at', value=dt, inline=False) embed.add_field(name='Link', value=new['url'], inline=False) embed.add_field(name=new['title'], value=new['description'], inline=False) embed.add_field(name='---', value='---') diff --git a/utils/tools.py b/utils/tools.py index 1400273..69ff48a 100644 --- a/utils/tools.py +++ b/utils/tools.py @@ -1,9 +1,42 @@ """ Tools module. """ +import logging +from datetime import datetime + +import pytz + +logger = logging.getLogger(__name__) + + def kbytes_to_gbytes(value: float) -> str: """ Transform Kb into Gb. """ _value = value / (1024 ** 3) return "{:.2f}".format(_value) + + +def datetime_to_string(_datetime: datetime) -> str: + """ + Transform datetime in string DD/MM/AAAA HH:MM:SS + """ + try: + dt = datetime.fromisoformat( + _datetime + ) + except ValueError: + dt = datetime.strptime( + _datetime, + '%Y-%m-%dT%H:%M:%Sz' + ) + except Exception as e: + logger.error(e) + return dt + + try: + dt = dt.astimezone(pytz.timezone('America/Sao_Paulo')) + except Exception as e: + logger.error(e) + else: + return dt.date().isoformat()