# █▀▀ ▄▀█ █▀▄▀█ █▀█ █▀▄ █▀
# █▀░ █▀█ █░▀░█ █▄█ █▄▀ ▄█
# https://t.me/famods
# 🔒 Licensed under the GNU AGPLv3
# 🌐 https://www.gnu.org/licenses/agpl-3.0.html
# ---------------------------------------------------------------------------------
# Name: TonDNS
# Description: Модуль для работы с TON DNS
# meta developer: @FAmods
# meta banner: https://github.com/FajoX1/FAmods/blob/main/assets/banners/tondns.png?raw=true
# requires: aiohttp
# ---------------------------------------------------------------------------------
import logging
import aiohttp
import asyncio
from datetime import datetime
from .. import loader, utils
logger = logging.getLogger(__name__)
@loader.tds
class TonDNS(loader.Module):
"""Модуль для работы с Ton DNS"""
strings = {
"name": "TonDNS",
"waiting": "🕑 Собираю информацию...",
"waiting_shot": "📸 Делаю скриншот TON DNS сайта...",
"shot_ton_dns": "💎 Скриншот TON DNS сайта {}",
"ton_shot_link": "https://mini.s-shot.ru/1920x1080/JPEG/1024/Z100/?{}",
}
async def client_ready(self, client, db):
self.db = db
self._client = client
@loader.command()
async def itondns(self, message):
"""Информация о TON DNS"""
address = utils.get_args_raw(message)
if not address:
return await utils.answer(message, f"❌ Должно быть {self.get_prefix()}itondns тон_домен")
await utils.answer(message, self.strings["waiting"])
async with aiohttp.ClientSession() as session:
async with session.get(f"https://tonapi.io/v2/dns/{address}") as res:
response = await res.json()
try:
response['error']
if "can't decode address" in response['error']:
return await utils.answer(message, f"❌ Это не адрес кошелька!")
return await utils.answer(message, f"""❌ Ошибка!\n\n
{response['error']}
""")
except:
pass
await utils.answer(message, f"""
💎 Ton DNS
Имя: {response['name']}
Адрес: {response['item']['address']}
⌛️ Истекает: {datetime.fromtimestamp(response['expiring_at'])}
🧑💻 Владелец
Адресс: {response['item']['owner']['address']}
🌐 DNS адрес: {response['item']['dns']}
Tonscan • Image • Contract
""")
@loader.command()
async def tonshot(self, message):
"""Скриншот TON DNS сайта"""
address = utils.get_args_raw(message)
if not address:
return await utils.answer(message, f"❌ Должно быть .tonshot тон_домен")
await utils.answer(message, self.strings["waiting_shot"])
address = address.replace("https://", "")
address = address.replace("http://", "")
ton_dns = address
address += f"-s.cam"
try:
await message.client.send_file(message.chat_id, self.strings['ton_shot_link'].format(address), caption=self.strings['shot_ton_dns'].format(ton_dns))
await message.delete()
except:
address = address.replace("-s.cam", ".run")
await message.client.send_file(message.chat_id, self.strings['ton_shot_link'].format(address), caption=self.strings['shot_ton_dns'].format(ton_dns))
await message.delete()