# █▀▀ ▄▀█   █▀▄▀█ █▀█ █▀▄ █▀ # █▀░ █▀█   █░▀░█ █▄█ █▄▀ ▄█ # https://t.me/famods # 🔒 Licensed under the GNU AGPLv3 # 🌐 https://www.gnu.org/licenses/agpl-3.0.html # --------------------------------------------------------------------------------- # Name: AvaChanger # Description: Смена аватарки по времени # meta developer: @FAmods # meta banner: https://github.com/FajoX1/FAmods/blob/main/assets/banners/avachanger.png?raw=true # --------------------------------------------------------------------------------- import os import asyncio import tempfile import logging from telethon.tl.functions.photos import UploadProfilePhotoRequest from .. import loader, utils logger = logging.getLogger(__name__) @loader.tds class AvaChanger(loader.Module): """Смена аватарки по времени""" strings = { "name": "AvaChanger", "no_args": " Нужно {}avatarl [сколько раз] [сколько ждать перед сменой каждой аватарки]", "no_reply": " Нужно ответить на сообщение с фоткой", "changing_avatars": "🔄 Меняю аватарки...\n⏳ Это займёт {} секунд", "was_off": " Смена аватарки была выключена!", "off": " Выключил смену аватарки", "completed": " Готово. Сменил аватарку {} раз за {} секунд/", } async def client_ready(self, client, db): self.db = db self._client = client @loader.command() async def avatarl(self, message): """Смена аватарки по времени""" args = utils.get_args_raw(message) try: counts, time_c = args.split(" ") counts = int(counts) time_c = int(time_c) except: return await utils.answer(message, self.strings['no_args'].format(self.get_prefix())) r = await message.get_reply_message() if not r: return await utils.answer(message, self.strings['no_reply']) m = await utils.answer(message, self.strings['changing_avatars'].format((time_c * counts))) self.m = m with tempfile.TemporaryDirectory() as temp_dir: file_path = os.path.join(temp_dir, os.path.basename("avatar.jpg")) await message.client.download_media(r.media.photo, file_path) for i in range(counts): if not self.m: return await self.client(UploadProfilePhotoRequest(file=await self.client.upload_file(file_path))) await asyncio.sleep(time_c) self.m = None await utils.answer(message, self.strings['completed'].format(counts, (time_c * counts))) @loader.command() async def avatarl_stop(self, message): """Выключить смену аватарки по времени""" m = self.m self.m = None await utils.answer(m, self.strings['was_off']) await utils.answer(message, self.strings['off'])