# █▀▀ ▄▀█ █▀▄▀█ █▀█ █▀▄ █▀
# █▀░ █▀█ █░▀░█ █▄█ █▄▀ ▄█
# https://t.me/famods
# 🔒 Licensed under the GNU AGPLv3
# 🌐 https://www.gnu.org/licenses/agpl-3.0.html
# ---------------------------------------------------------------------------------
# Name: Vaper
# Description: Авто-фарм в @vapeusebot
# meta developer: @FAmods
# meta banner: https://github.com/FajoX1/FAmods/blob/main/assets/banners/vaper.png?raw=true
# ---------------------------------------------------------------------------------
import hikkatl
import re
import random
import asyncio
import logging
from .. import loader, utils
logger = logging.getLogger(__name__)
@loader.tds
class Vaper(loader.Module):
"""Авто-фарм в @vapeusebot"""
strings = {
"name": "Vaper",
"checking_profile": "👀 Смотрю профиль...",
"getting_top": "👀 Смотрю статистику...",
"v_on": "⚡️ Авто-фарм включен!",
"v_off": "🚫 Авто-фарм выключен!",
}
async def client_ready(self, client, db):
self.db = db
self._client = client
if self.db.get(self.name, "vape", False):
asyncio.create_task(self._vape())
async def _vape(self):
while True:
try:
async with self._client.conversation("@vapeusebot") as conv:
msg = await conv.send_message("/vape")
r = await conv.get_response()
await msg.delete()
break
except hikkatl.errors.common.AlreadyInConversationError:
await asyncio.sleep(5.67)
async def _getprofme(self):
while True:
try:
async with self._client.conversation("@vapeusebot") as conv:
msg = await conv.send_message("/vape")
r = await conv.get_response()
await msg.delete()
await r.delete()
match = re.search(r'Всего затягов: (\d+)', r.text)
total_puffs = int(match.group(1))
await asyncio.sleep(2.4211112)
msg = await conv.send_message("/ref")
r = await conv.get_response()
await msg.delete()
await r.delete()
match = re.search(r'рефералов: (\d+)', r.text)
referrals = int(match.group(1))
return f"""📁 Профиль
🌫 Затяжек: {total_puffs}
👥 Приглашено: {referrals}
🔗 Реферальная ссылка: http://t.me/vapeusebot?start=ref_{self.tg_id}"""
break
except hikkatl.errors.common.AlreadyInConversationError:
await asyncio.sleep(5.67)
async def _gettop(self):
while True:
try:
async with self._client.conversation("@vapeusebot") as conv:
msg = await conv.send_message("/global_top")
r = await conv.get_response()
await msg.delete()
await r.delete()
return r.text.replace("<i>/vape</i>", "/vape")
break
except hikkatl.errors.common.AlreadyInConversationError:
await asyncio.sleep(5.67)
@loader.command()
async def vape(self, message):
"""Включить/выключить авто-фарм"""
if self.db.get(self.name, "vape", False):
self.db.set(self.name, "vape", False)
return await utils.answer(message, self.strings["v_off"])
self.db.set(self.name, "vape", True)
await utils.answer(message, self.strings["v_on"])
await self._vape()
@loader.command()
async def vp(self, message):
"""Посмотреть свой профиль"""
await utils.answer(message, self.strings["checking_profile"])
await utils.answer(message, await self._getprofme())
@loader.command()
async def vtop(self, message):
"""Посмотреть топ"""
await utils.answer(message, self.strings["getting_top"])
await utils.answer(message, await self._gettop())
@loader.loop(interval=60*60, autostart=True)
async def loop(self):
if self.db.get(self.name, "vape", False):
await self._vape()
await asyncio.sleep(random.randint(65, 90))