mirror of
https://github.com/MuRuLOSE/limoka.git
synced 2026-06-16 06:24:18 +02:00
96 lines
3.6 KiB
Python
96 lines
3.6 KiB
Python
# █▀▀ ▄▀█ █▀▄▀█ █▀█ █▀▄ █▀
|
||
# █▀░ █▀█ █░▀░█ █▄█ █▄▀ ▄█
|
||
|
||
# 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']) |