Files
limoka/fajox1/famods/avachanger.py
2025-07-10 21:02:34 +03:00

96 lines
3.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# █▀▀ ▄▀█   █▀▄▀█ █▀█ █▀▄ █▀
# █▀░ █▀█   █░▀░█ █▄█ █▄▀ ▄█
# 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": "<emoji document_id=5440381017384822513>❌</emoji> <b>Нужно <code>{}avatarl [сколько раз] [сколько ждать перед сменой каждой аватарки]</code></b>",
"no_reply": "<emoji document_id=5440381017384822513>❌</emoji> <b>Нужно ответить на сообщение с фоткой</b>",
"changing_avatars": "<emoji document_id=5328274090262275771>🔄</emoji> <b>Меняю аватарки...</b>\n<i>⏳ Это займёт {} секунд</i>",
"was_off": "<emoji document_id=5440381017384822513>❌</emoji> <b>Смена аватарки была выключена!</b>",
"off": "<b><emoji document_id=5212932275376759608>✅</emoji> Выключил смену аватарки</b>",
"completed": "<b><emoji document_id=5212932275376759608>✅</emoji> Готово. Сменил аватарку {} раз за {} секунд/</b>",
}
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'])