Files
limoka/hikariatama/ftg/declaration.py
2025-07-10 21:02:34 +03:00

323 lines
14 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# █ █ ▀ █▄▀ ▄▀█ █▀█ ▀
# █▀█ █ █ █ █▀█ █▀▄ █
# © Copyright 2022
# https://t.me/hikariatama
#
# 🔒 Licensed under the GNU AGPLv3
# 🌐 https://www.gnu.org/licenses/agpl-3.0.html
# meta pic: https://img.icons8.com/stickers/344/love-message.png
# meta banner: https://mods.hikariatama.ru/badges/declaration.jpg
# meta developer: @hikarimods
# scope: hikka_only
# scope: hikka_min 1.5.3
import asyncio
import logging
import random
import time
from telethon.tl.types import Message
from .. import loader, utils
from ..inline.types import BotMessage
logger = logging.getLogger(__name__)
@loader.tds
class Declaration(loader.Module):
"""If you are too humble to declare your love, use this module"""
strings = {
"name": "Declaration",
"not_private": (
"<emoji document_id=6053166094816905153>💀</emoji> <b>This command must be"
" runned in personal messages...</b>"
),
"ily": (
"<emoji document_id=5465143921912846619>💭</emoji> <b>You have 1 new"
' message. <a href="https://t.me/{}?start=read_{}">Please, read it</a></b>'
),
"ily_love": [
"👋 <i>Hi. I'm <b>Hikka</b>.</i>",
(
"🫣 <i>My owner is very humble to say something, so he asked me to help"
" him...</i>"
),
"🥰 <i>He just wanted you to know, that <b>he loves you</b>...</i>",
"🤗 <i>These are sincere feelings... Please, don't blame him.</i>",
"🫶 <i>Better say him some warm words... 🙂</i>",
],
"talk": "🫰 Talk",
"404": "😢 <b>Message has already disappeared. You can't read it now...</b>",
"read": "🫰 <b>{} has read your declaration</b>",
"args": (
"<emoji document_id=6053166094816905153>💀</emoji> <b>Wrong"
" arguments...</b>"
),
}
strings_ru = {
"not_private": (
"<emoji document_id=6053166094816905153>💀</emoji> <b>Эту команду нужно"
" выполнять в личных сообщениях...</b>"
),
"ily": (
"<emoji document_id=5465143921912846619>💭</emoji> <b>У вас 1 новое"
' сообщение. <a href="https://t.me/{}?start=read_{}">Пожалуйста, прочтите'
" его</a></b>"
),
"ily_love": [
"👋 <i>Привет. Я <b>Хикка</b>.</i>",
(
"🫣 <i>Мой хозяин очень стесняется сказать о чем-то, поэтому он"
" попросил меня помочь ему...</i>"
),
"🥰 <i>Он просто хотел, чтобы Вы знали, что <b>он любит Вас</b>...</i>",
"🤗 <i>Это искренние чувства... Пожалуйста, не злитесь на него.</i>",
"🫶 <i>Лучше скажите ему несколько теплых слов... 🙂</i>",
],
"talk": "🫰 Поговорить",
"404": "😢 <b>Сообщение уже исчезло. Вы не можете его прочитать...</b>",
"read": "🫰 <b>{} прочитал ваше признание</b>",
"args": (
"<emoji document_id=6053166094816905153>💀</emoji> <b>Неверные"
" аргументы...</b>"
),
}
strings_de = {
"not_private": (
"<emoji document_id=6053166094816905153>💀</emoji> <b>Diese Befehl muss in"
" privaten Nachrichten ausgeführt werden...</b>"
),
"ily": (
"<emoji document_id=5465143921912846619>💭</emoji> <b>Du hast 1 neue"
' Nachricht. <a href="https://t.me/{}?start=read_{}">Bitte, lies es</a></b>'
),
"ily_love": [
"👋 <i>Hallo. Ich bin <b>Hikka</b>.</i>",
(
"🫣 <i>Mein Besitzer ist zu bescheiden, um etwas zu sagen, also hat er"
" mich gebeten, ihm zu helfen...</i>"
),
"🥰 <i>Er wollte nur, dass du weißt, dass <b>er dich liebt</b>...</i>",
"🤗 <i>Das sind ehrliche Gefühle... Bitte, verzeih ihm.</i>",
"🫶 <i>Sag ihm besser ein paar warme Worte... 🙂</i>",
],
"talk": "🫰 Reden",
"404": (
"😢 <b>Die Nachricht ist bereits verschwunden. Du kannst sie jetzt nicht"
" lesen...</b>"
),
"read": "🫰 <b>{} hat dein Geständnis gelesen</b>",
"args": (
"<emoji document_id=6053166094816905153>💀</emoji> <b>Falsche"
" Argumente...</b>"
),
}
strings_hi = {
"not_private": (
"<emoji document_id=6053166094816905153>💀</emoji> <b>यह कमांड निजी"
" संदेशों में चलाए जाने चाहिए...</b>"
),
"ily": (
"<emoji document_id=5465143921912846619>💭</emoji> <b>आपके पास 1 नया संदेश"
' है। <a href="https://t.me/{}?start=read_{}">कृपया, उसे पढ़ें</a></b>'
),
"ily_love": [
"👋 <i>नमस्ते। मैं <b>हिक्का</b> हूँ।</i>",
(
"🫣 <i>मेरे मालिक को कुछ कहने के लिए बहुत बारीच है, इसलिए उन्होंने"
" मुझे उनकी मदद करने के लिए कहा...</i>"
),
"🥰 <i>उसने आपको सिर्फ यह बताना चाहता था कि <b>वह आपको पसंद करता है</b>...</i>",
"🤗 <i>ये सच्चे भावनाएं हैं... कृपया उसे माफ़ करें।</i>",
"🫶 <i>उसे बेहतर शब्दों के साथ बोलें... 🙂</i>",
],
"talk": "🫰 बात करना",
"404": "😢 <b>संदेश पहले ही नष्ट हो गया है। आप इसे अब पढ़ नहीं सकते...</b>",
"read": "🫰 <b>आपने {} के लिए अपना प्रार्थना पढ़ा</b>",
"args": "<emoji document_id=6053166094816905153>💀</emoji> <b>गलत तर्क...</b>",
}
strings_tr = {
"not_private": (
"<emoji document_id=6053166094816905153>💀</emoji> <b>Bu komut özel"
" mesajlarda çalıştırılmalıdır...</b>"
),
"ily": (
"<emoji document_id=5465143921912846619>💭</emoji> <b>Yeni 1 mesajınız var."
' <a href="https://t.me/{}?start=read_{}">Lütfen, okuyun</a></b>'
),
"ily_love": [
"👋 <i>Merhaba. Ben <b>Hikka</b>.</i>",
"🫣 <i>Sahibim bir şey söylemekten çekinince, yardım etmeme söyledi...</i>",
"🥰 <i>Sadece ona <b>seni sevdiğini</b> söylemek istedi...</i>",
"🤗 <i>Bu gerçek duygular... Lütfen, affet.</i>",
"🫶 <i>Bunu ona daha iyi söyle... 🙂</i>",
],
"talk": "🫰 Konuş",
"404": "😢 <b>Mesaj zaten kaybolmuş. Okuyamazsın...</b>",
"read": "🫰 <b>{} senin itirafını okudu</b>",
"args": (
"<emoji document_id=6053166094816905153>💀</emoji> <b>Yanlış argüman...</b>"
),
}
strings_ja = {
"not_private": (
"<emoji document_id=6053166094816905153>💀</emoji> <b>このコマンドはプライベート"
" メッセージで実行される必要があります...</b>"
),
"ily": (
"<emoji document_id=5465143921912846619>💭</emoji>"
" <b>新しい1つのメッセージがあります。"
' <a href="https://t.me/{}?start=read_{}">読んでください</a></b>'
),
"ily_love": [
"👋 <i>こんにちは。 私は<b>ヒッカ</b>です。</i>",
"🫣 <i>主人が何か言いたくないので、助けてほしいと言った...</i>",
"🥰 <i>彼はただ<b>あなたを愛している</b>と言いたかった...</i>",
"🤗 <i>これは本当の感情です... 許してください。</i>",
"🫶 <i>もっと良い言葉で言ってください... 🙂</i>",
],
"talk": "🫰 会話",
"404": (
"😢 <b>メッセージはすでに消えています。"
" あなたはそれを読むことはできません...</b>"
),
"read": "🫰 <b>{}はあなたの告白を読みました</b>",
"args": (
"<emoji document_id=6053166094816905153>💀</emoji> <b>間違った引数...</b>"
),
}
strings_kr = {
"not_private": (
"<emoji document_id=6053166094816905153>💀</emoji> <b>이 명령은 개인"
" 메시지에서 실행되어야합니다...</b>"
),
"ily": (
"<emoji document_id=5465143921912846619>💭</emoji> <b>새로운 메시지가 있습니다."
' <a href="https://t.me/{}?start=read_{}">읽어주세요</a></b>'
),
"ily_love": [
"👋 <i>안녕하세요. 나는 <b>히카</b>입니다.</i>",
"🫣 <i>주인이 무언가를 말하고 싶지 않아서 도움을 요청했습니다...</i>",
"🥰 <i>그저 그에게 <b>너를 사랑한다</b>고 말하고 싶었습니다...</i>",
"🤗 <i>이것은 진짜 감정입니다... 용서해주세요.</i>",
"🫶 <i>더 좋은 말로 말하세요... 🙂</i>",
],
"talk": "🫰 대화",
"404": "😢 <b>메시지는 이미 삭제되었습니다. 읽을 수 없습니다...</b>",
"read": "🫰 <b>{} 당신의 고백을 읽었습니다</b>",
"args": (
"<emoji document_id=6053166094816905153>💀</emoji> <b>잘못된 인수...</b>"
),
}
strings_ar = {
"not_private": (
"<emoji document_id=6053166094816905153>💀</emoji> <b>هذا الأمر يجب أن يتم"
" تنفيذه في رسالة خاصة...</b>"
),
"ily": (
"<emoji document_id=5465143921912846619>💭</emoji> <b>هناك رسالة جديدة."
' <a href="https://t.me/{}?start=read_{}">اقرأ</a></b>'
),
"ily_love": [
"👋 <i>مرحبا. أنا <b>هيكا</b>.</i>",
"🫣 <i>طلب المالك مساعدة لأنه لا يريد أن يقول شيئا...</i>",
"🥰 <i>أراد فقط أن يقول له <b>أنا أحبك</b>...</i>",
"🤗 <i>هذه حقيقة العواطف... يرجى التكرم.</i>",
"🫶 <i>قلها بطريقة أفضل... 🙂</i>",
],
"talk": "🫰 محادثة",
"404": "😢 <b>تم حذف الرسالة بالفعل. لا يمكن قراءتها...</b>",
"read": "🫰 <b>{} قرأت إعترافك</b>",
"args": (
"<emoji document_id=6053166094816905153>💀</emoji> <b>وسيطغير صالح...</b>"
),
}
strings_es = {
"not_private": (
"<emoji document_id=6053166094816905153>💀</emoji> <b>Este comando debe"
" ejecutarse en mensaje privado...</b>"
),
"ily": (
"<emoji document_id=5465143921912846619>💭</emoji> <b>Tienes un nuevo"
' mensaje. <a href="https://t.me/{}?start=read_{}">Lee</a></b>'
),
"ily_love": [
"👋 <i>Hola. Soy <b>Hika</b>.</i>",
"🫣 <i>El dueño solicitó ayuda porque no quería decir nada...</i>",
"🥰 <i>Simplemente quería decirle <b>te amo</b>...</i>",
"🤗 <i>Esto es real... Por favor perdóname.</i>",
"🫶 <i>Dilo mejor... 🙂</i>",
],
"talk": "🫰 Conversación",
"404": "😢 <b>El mensaje ya ha sido eliminado. No se puede leer...</b>",
"read": "🫰 <b>{} leyó tu confesión</b>",
"args": (
"<emoji document_id=6053166094816905153>💀</emoji> <b>Argumento"
"no válido...</b>"
),
}
async def client_ready(self):
self.ids = self.pointer("declarations", {})
@loader.command(ru_doc="Признаться в любви")
async def declare(self, message: Message):
"""Declare love"""
if not message.is_private:
await utils.answer(message, self.strings("not_private"))
return
id_ = utils.rand(8)
await utils.answer(
message,
self.strings("ily").format(self.inline.bot_username, id_),
)
self.ids[id_] = int(time.time()) + 24 * 60 * 60
async def aiogram_watcher(self, message: BotMessage):
if not message.text.startswith("/start read_"):
return
for id_, info in self.ids.copy().items():
if info < int(time.time()):
self.ids.pop(id_)
continue
id_ = message.text.split("_")[1]
if id_ not in self.ids:
await message.answer(self.strings("404"))
return
info = self.ids.pop(id_)
for m in self.strings("ily_love")[:-1]:
await message.answer(m)
await asyncio.sleep(random.randint(350, 400) / 100)
await self.inline.bot.send_message(
self._client.tg_id,
self.strings("read").format(
utils.escape_html(message.from_user.full_name),
),
)
await message.answer(
self.strings("ily_love")[-1],
reply_markup=self.inline.generate_markup(
{
"text": self.strings("talk"),
"url": f"tg://user?id={self._client.tg_id}",
}
),
)