version = (0, 0, 2)
# for more info: https://murix.ru/files/ftg
# by xadjilut, 2021
# модуль частично не мой | This module is not half mine.
# _ _ _ _
# | | | | (_) |
# | | _ | |_ _ _ _| |
# | | / _ \| / _ \/ | | |/ /
# | |_| (_) | || (_) \ \ | <
# \_/\_/ \\_/|_/_|_|\_\
#
# © Copyright 2022
#
# developed by @lotosiiik, @byateblan
# meta developer: @hikkaftgmods
# meta banner: https://te.legra.ph/file/a428776824470e0bdccb6.jpg
# meta pic: https://te.legra.ph/file/98192f1f7953275baead5.jpg
import random
from datetime import timedelta
from telethon import functions
from telethon.tl.types import Message
from .. import loader, utils
@loader.tds
class IrisMod(loader.Module):
"""Для автоматического фарминга коинов в ирисботе"""
strings = {
"name": "Iris",
"farmon": (
"✅Отложенка создана, автофарминг запущен, всё начнётся через 20"
" секунд..."
),
"farmon_already": "Уже запущено",
"farmoff": "❌Автофарминг остановлен.\n☢️Надюпано: %coins% i¢",
"farm": "☢️Надюпано: %coins% i¢",
}
def __init__(self):
self.name = self.strings["name"]
async def client_ready(self, client, db):
self.client = client
self.db = db
self.myid = (await client.get_me()).id
self.iris = 5443619563
async def farmoncmd(self, message):
"""Запустить автофарминг"""
status = self.db.get(self.name, "status", False)
if status:
return await message.edit(self.strings["farmon_already"])
self.db.set(self.name, "status", True)
await self.client.send_message(
self.iris, "Фарма", schedule=timedelta(seconds=20)
)
await message.edit(self.strings["farmon"])
async def farmoffcmd(self, message):
"""Остановить автофарминг"""
self.db.set(self.name, "status", False)
coins = self.db.get(self.name, "coins", 0)
if coins:
self.db.set(self.name, "coins", 0)
await message.edit(self.strings["farmoff"].replace("%coins%", str(coins)))
async def farmcmd(self, message):
"""Вывод кол-ва коинов, добытых этим модулем"""
coins = self.db.get(self.name, "coins", 0)
await message.edit(self.strings["farm"].replace("%coins%", str(coins)))
async def watcher(self, event):
if not isinstance(event, Message):
return
chat = utils.get_chat_id(event)
if chat != self.iris:
return
status = self.db.get(self.name, "status", False)
if not status:
return
if event.raw_text == "Фарма":
return await self.client.send_message(
self.iris, "Фарма", schedule=timedelta(minutes=random.randint(1, 20))
)
if event.sender_id != self.iris:
return
if "НЕЗАЧЁТ!" in event.raw_text:
args = [int(x) for x in event.raw_text.split() if x.isnumeric()]
randelta = random.randint(20, 60)
if len(args) == 4:
delta = timedelta(
hours=args[1], minutes=args[2], seconds=args[3] + randelta
)
elif len(args) == 3:
delta = timedelta(minutes=args[1], seconds=args[2] + randelta)
elif len(args) == 2:
delta = timedelta(seconds=args[1] + randelta)
else:
return
sch = (
await self.client(
functions.messages.GetScheduledHistoryRequest(self.iris, 1488)
)
).messages
await self.client(
functions.messages.DeleteScheduledMessagesRequest(
self.iris, id=[x.id for x in sch]
)
)
return await self.client.send_message(self.iris, "Фарма", schedule=delta)
if "ЗАЧЁТ" in event.raw_text or "УДАЧА" in event.raw_text:
args = event.raw_text.split()
for x in args:
if x[0] == "+":
return self.db.set(
self.name,
"coins",
self.db.get(self.name, "coins", 0) + int(x[1:]),
)
async def message_q(
self,
text: str,
user_id: int,
mark_read: bool = False,
delete: bool = False,
):
"""Отправляет сообщение и возращает ответ"""
async with self.client.conversation(user_id) as conv:
msg = await conv.send_message(text)
response = await conv.get_response()
if mark_read:
await conv.mark_read()
if delete:
await msg.delete()
await response.delete()
return response
@loader.command()
async def give(self, message):
"""Передает ириски/голд на другой акк"""
bot = "@iris_black_bot"
args = utils.get_args_raw(message)
nmb = int(args.split(" ")[1])
if message.is_reply:
replied_to = await message.get_reply_message()
player = "@" + str(replied_to.from_id)
else:
player = args.split(" ")[2]
dada = ""
if args.split(" ")[0] == "голд":
dada = " голд"
elif args.split(" ")[0] == "ириски" or args[0] == "ирис":
dada = ""
else:
return await utils.answer(
message, "❌| Ошибка,что-бы передать требуется написать ириски или голд."
)
text = f"Передать{dada} {nmb} {player}"
try:
text += f'\n{args.split(" | ")[1]}'
except IndexError:
pass
givs = await self.message_q(
text,
bot,
mark_read=True,
delete=True,
)
await utils.answer(message, givs.text)
@loader.command()
async def baghis(self, message):
"""Информация где побывали ваши ириски"""
bot = "@iris_black_bot"
text = f"где мои ириски"
givs = await self.message_q(
text,
bot,
mark_read=True,
delete=True,
)
await utils.answer(message, givs.text)
@loader.command()
async def bagcmd(self, message):
"""Показывает ваш мешок"""
bot = "@iris_black_bot"
bags = await self.message_q(
"Мешок",
bot,
delete=True,
)
args = utils.get_args_raw(message)
if not args:
await utils.answer(message, bags.text)
async def irishcmd(self, message):
"""Помощь по модулю Iris"""
ihelp = (
"🍀| Помощь по командам:\n\n .farmon - Включает авто фарм.\n .farmoff"
" - Выключает авто фарм.\n .farm - Показывает сколько вы нафармили.\n .bag"
" - Показывает ваш ммешок\n .give - передаёт ириски/голд\n\n"
" Пример:\n .give {ириски или голд} {число} {юзер}. - без причины.\n"
" .give {ириски или голд} {число} {юзер} | {причина}"
)
await utils.answer(message, ihelp)