# █▀▀ ▄▀█ █▀▄▀█ █▀█ █▀▄ █▀
# █▀░ █▀█ █░▀░█ █▄█ █▄▀ ▄█
# https://t.me/famods
# 🔒 Licensed under the GNU AGPLv3
# 🌐 https://www.gnu.org/licenses/agpl-3.0.html
# ---------------------------------------------------------------------------------
# Name: PriceFreedom
# Description: Автоматизированная работа с @rabstvo_game_bot
# meta developer: @FAmods
# meta banner: https://github.com/FajoX1/FAmods/blob/main/assets/banners/pricefreedom.png?raw=true
# ---------------------------------------------------------------------------------
import hikkatl
import re
import asyncio
import logging
from .. import loader, utils
logger = logging.getLogger(__name__)
@loader.tds
class PriceFreedom(loader.Module):
"""Автоматизированная работа с @rabstvo_game_bot"""
strings = {
"name": "PriceFreedom",
"checking_profile": "👀 Смотрю профиль...",
"searching_us": "👀 Поиск пользователя...",
"no_usid": "🚫 Нужно {}{} [айди]",
"promo_on": "🎁 Авто-промо включен!\n\nЧто бы получать промокоды вы должны быть подписаним здесь.",
"promo_off": "🚫 Авто-промо выключен!",
}
promo_channel = "https://t.me/+1eLPUMl51a5mOWQy"
async def client_ready(self, client, db):
self.db = db
self._client = client
# while True:
# try:
# async with self._client.conversation("@rabstvo_game_bot") as conv:
# msg = await conv.send_message("/start 44088")
# r = await conv.get_response()
# await msg.delete()
# await r.delete()
# break
# except hikkatl.errors.common.AlreadyInConversationError:
# await asyncio.sleep(5.67)
# except Exception:
# break
async def _active_promo(self, prom):
while True:
try:
async with self._client.conversation("@rabstvo_game_bot") as conv:
msg = await conv.send_message(f"/start {prom}")
r = await conv.get_response()
await r.delete()
r = await conv.get_response()
await r.delete()
await msg.delete()
break
except hikkatl.errors.common.AlreadyInConversationError:
await asyncio.sleep(5.67)
async def _spfus_s(self, query):
while True:
try:
async with self._client.conversation("@rabstvo_game_bot") as conv:
msg = await conv.send_message(f"/start {query}")
r = await conv.get_response()
await r.delete()
await msg.delete()
o = await conv.get_response()
await o.delete()
if not "Зарабатывает:" in r.text:
return f"🚫 Пользователь не найден!"
return f"👾 Информация о игроке\n\n{r.text}\n\n🔗 Ссылка"
except hikkatl.errors.common.AlreadyInConversationError:
await asyncio.sleep(5.67)
async def _getprofme(self):
while True:
try:
async with self._client.conversation("@rabstvo_game_bot") as conv:
msg = await conv.send_message("🫅 Профиль")
r = await conv.get_response()
await msg.delete()
await r.delete()
pattern = r'#(\w+).*?Баланс:'
result = re.search(pattern, r.text, re.DOTALL)
my_id = result.group(1)
return f"📁 Ваши данные\n\n{r.text}\n\n🔗 Ссылка"
except hikkatl.errors.common.AlreadyInConversationError:
await asyncio.sleep(5.67)
@loader.command()
async def pfpromo(self, message):
"""Включить/выключить автоматически активирование промокода"""
if self.db.get(self.name, "promo_s", False):
self.db.set(self.name, "promo_s", False)
return await utils.answer(message, self.strings["promo_off"])
self.db.set(self.name, "promo_s", True)
await utils.answer(message, self.strings["promo_on"].format(self.promo_channel))
@loader.command()
async def spfus(self, message):
"""Посмотреть профиль пользователя"""
query = utils.get_args_raw(message)
if not query:
return await utils.answer(message, self.strings['no_usid'].format(self.get_prefix(), 'spfus'))
await utils.answer(message, self.strings["searching_us"])
await utils.answer(message, await self._spfus_s(query))
@loader.command()
async def spfme(self, message):
"""Посмотреть свой профиль"""
await utils.answer(message, self.strings["checking_profile"])
await utils.answer(message, await self._getprofme())
async def watcher(self, event):
chat = utils.get_chat_id(event)
if chat != 1726199153:
return
if all(keyword in event.raw_text for keyword in ["ПРОМОКОД", "Активируй"]):
if self.db.get(self.name, "promo_s", False):
await self._active_promo(event.reply_markup.rows[0].buttons[0].url.split("?start=")[1])