diff --git a/formater.py b/formater.py index 985eade..ea35175 100644 --- a/formater.py +++ b/formater.py @@ -1,6 +1,5 @@ -def format_quote(text:str)->str: +def format_quote(text: str) -> str: text = text.strip() - if not text.endswith((".","?","!")): + if not text.endswith((".", "?", "!")): text += "." return text.upper() - \ No newline at end of file diff --git a/image.py b/image.py index 6ab701c..3e02a8c 100644 --- a/image.py +++ b/image.py @@ -11,8 +11,8 @@ def draw_text_in_box( fill="white", spacing=10, ): + # another ai slop function - # another ai slop function draw = ImageDraw.Draw(image) x1, y1, x2, y2 = box @@ -42,13 +42,11 @@ def draw_text_in_box( return lines - # Try font sizes from large to small for font_size in range(max_font_size, min_font_size - 1, -1): font = ImageFont.truetype(font_path, font_size) lines = wrap_text(text, font) - # Calculate total text height line_heights = [] for line in lines: @@ -62,7 +60,6 @@ def draw_text_in_box( else: raise ValueError("Text is too long even at minimum font size") - # Draw each line centered y = y1 + (box_height - text_height) / 2 for line, line_height in zip(lines, line_heights): @@ -81,7 +78,7 @@ def draw_text_in_box( y += line_height + spacing -def generate_quote(text:str): +def generate_quote(text: str): # basicaly just hard-coded values img = Image.open("assets/template.png").convert("RGB") draw_text_in_box( @@ -96,12 +93,11 @@ def generate_quote(text:str): ) return img + if __name__ == "__main__": print("running test") img = Image.open("assets/template.png").convert("RGB") - - draw_text_in_box( img, "ЬБОПЛВОЛСМЧОЛБМСЧЮ.", @@ -115,4 +111,4 @@ if __name__ == "__main__": img.save("output.jpg") - print("see output.jpg") \ No newline at end of file + print("see output.jpg") diff --git a/main.py b/main.py index 5c63b35..3b0e056 100644 --- a/main.py +++ b/main.py @@ -1,20 +1,21 @@ -import asyncio -import configparser +import asyncio +import configparser from aiogram import Bot, Dispatcher, F from aiogram.filters import Command -from aiogram.types import Message, InlineQuery, InlineKeyboardButton, InlineKeyboardMarkup, InlineQueryResultArticle, InputTextMessageContent,BufferedInputFile, InputMediaPhoto, ChosenInlineResult +from aiogram.types import Message, InlineQuery, InlineKeyboardButton, InlineKeyboardMarkup, InlineQueryResultArticle, InputTextMessageContent, BufferedInputFile, InputMediaPhoto, ChosenInlineResult from io import BytesIO from image import generate_quote from formater import format_quote -dp = Dispatcher() +dp = Dispatcher() bot = None works = {} + async def main(): global bot cfg = configparser.ConfigParser() @@ -25,18 +26,20 @@ async def main(): token = cfg['bot']['BOT_TOKEN'] if len(token) == 0: raise "token seems empty" - bot = Bot(token=token) + bot = Bot(token=token) print("Starting bot...") try: - await dp.start_polling(bot) + await dp.start_polling(bot) finally: print("Bot stopped") + @dp.message(F.text, Command("start")) async def start(message: Message): await message.answer(f"usage:\n\n@{(await bot.get_me()).username} some cool quote") + @dp.inline_query() async def inline_query(query: InlineQuery): text = query.query.strip() @@ -109,4 +112,4 @@ async def chosen_inline_result(result: ChosenInlineResult): ) if __name__ == '__main__': - asyncio.run(main()) \ No newline at end of file + asyncio.run(main())