My code:
import asyncio
from pyrogram import Client
from art import *
from datetime import datetime
from colorama import Fore, just_fix_windows_console
from pyrogram import enums
from tqdm import tqdm
just_fix_windows_console()
bot = '#'
api_id = #
api_hash = '#'
app = Client("ava", api_id, api_hash)
def current_time():
print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"), end='')
return ''
async def clean(client, mes):
print(Fore.LIGHTWHITE_EX)
for _ in tqdm(range(10)):
await asyncio.sleep(1)
await client.send_message(bot, mes, parse_mode=enums.ParseMode.DISABLED)
async def garden(client, mes):
print(Fore.LIGHTWHITE_EX)
for _ in tqdm(range(15)):
await asyncio.sleep(1)
await client.send_message(bot, mes, parse_mode=enums.ParseMode.DISABLED)
async def main():
if input('\n 1. Запустить \n\n >>> ') == '1':
print(Fore.WHITE)
print(f' {current_time()} | Соединение с Telegram...')
await asyncio.sleep(1)
if app:
print(Fore.GREEN)
print(f' {current_time()} | Соединение установлено!')
else:
print(Fore.RED)
print(f' {current_time()} | Произошла ошибка при установке соединения!')
await asyncio.sleep(10)
exit()
await asyncio.sleep(1)
print(Fore.WHITE + f' {current_time()} | Поиск фрейма...')
try:
with open('frame.txt', 'r') as f:
frame = f.readline()
if frame == '' or frame == 'put your frame here':
print(Fore.RED)
print('Пустой фрейм. Убедитесь, что вы заполнили файл frame.txt')
await asyncio.sleep(10)
exit()
except FileNotFoundError:
print(Fore.RED)
print('Файл фрейма не был найден. Убедитесь в наличии файла frame.txt')
await asyncio.sleep(10)
exit()
if frame:
await asyncio.sleep(2)
print(Fore.GREEN + f' {current_time()} | Фрейм был успешно найден!')
mes1 = f'/clean {frame}'
mes2 = f'/garden {frame}'
else:
print(Fore.RED + f' {current_time()} | Произошла ошибка при поиске фрейма!')
await asyncio.sleep(10)
exit()
await asyncio.sleep(3)
print(Fore.GREEN + f' {current_time()} | Работа началась!', '\n')
await sender(mes1, mes2)
async def sender(mes1, mes2):
async with app:
while True:
task1 = asyncio.create_task(clean(app, mes1))
task2 = asyncio.create_task(garden(app, mes2))
await asyncio.gather(task1, task2)
def check_sub():
now = datetime.now()
sub = datetime(2023, 9, 28)
if sub > now:
return True
else:
return False
if __name__ == '__main__':
asyncio.run(app.run(main()))
I'm trying to create two tasks which are needed to run forever asynchronous, like (task1 - task2), where each of them are independent from other. But my code works like at first two tasks are running together, when the first (fast) task ends it works, it waits for the next one to end to start together one more time. I want it to work regardless of each other.