├── .deepsource.toml
├── AccountData.py
├── AniLibria.py
├── Article.py
├── AutofarmCookies.py
├── BirthdayTime.py
├── CheckSpamBan.py
├── FakeWallet.py
├── InlineButton.py
├── InlineCoin.py
├── InlineHelper.py
├── Kittens.py
├── LICENSE
├── Memes.py
├── Music.py
├── PastebinAPI.py
├── README.md
├── SafetyMod.py
├── TelegramStatusCodes.py
├── Text2File.py
├── Text_Sticker.py
├── VirusTotal.py
├── animals.py
├── assets
├── IMG_20231128_152538.jpg
├── Minecraft.ttf
├── OpenSans-Light.ttf
├── Samson.ttf
├── Vector.png
├── all_items.png
├── faces.json
├── images.png
├── items.png
├── popular_items.psd
└── zakon.json
├── avatar
└── report.png
├── face.py
├── full.txt
├── globalrestrict.py
├── hikkahost.py
├── jacques.py
├── numbersapi.py
├── profile.py
├── search.py
└── shortener.py
/.deepsource.toml:
--------------------------------------------------------------------------------
1 | version = 1
2 |
3 | [[analyzers]]
4 | name = "python"
5 |
6 | [analyzers.meta]
7 | runtime_version = "3.x.x"
--------------------------------------------------------------------------------
/AccountData.py:
--------------------------------------------------------------------------------
1 | import requests
2 | from hikkatl.types import Message
3 | from .. import loader, utils
4 |
5 |
6 | def get_creation_date(id: int) -> str:
7 | url = "https://restore-access.indream.app/regdate"
8 | headers = {
9 | "accept": "*/*",
10 | "content-type": "application/x-www-form-urlencoded",
11 | "user-agent": "Nicegram/92 CFNetwork/1390 Darwin/22.0.0",
12 | "x-api-key": "e758fb28-79be-4d1c-af6b-066633ded128",
13 | "accept-language": "en-US,en;q=0.9",
14 | }
15 | data = {"telegramId": id}
16 | response = requests.post(url, headers=headers, json=data)
17 | if response.status_code == 200:
18 | return response.json()["data"]["date"]
19 | else:
20 | return "Ошибка получения данных"
21 |
22 |
23 | @loader.tds
24 | class AccountData(loader.Module):
25 | """Find out the approximate date of registration of the telegram account"""
26 |
27 | strings = {
28 | "name": "AccountData",
29 | "date_text": "🕰 Date of registration of this account: {data}",
30 | "date_text_ps": "P.S. The registration date is approximate, as it is almost impossible to know for sure",
31 | "no_reply": "⚠️ You did not reply to the user's message",
32 | }
33 |
34 | strings_ru = {
35 | "date_text": "🕰 Дата регистрации этого аккаунта: {data}",
36 | "date_text_ps": "P.S. Дата регистрации примерная, так как точно узнать практически невозможно",
37 | "no_reply": "⚠️ Вы не ответили на сообщение пользователя",
38 | }
39 |
40 | async def accdatacmd(self, message: Message):
41 | """Узнать примерную дату регистрации аккаунта телеграмм"""
42 |
43 | reply = await message.get_reply_message()
44 | if reply:
45 | data = get_creation_date(reply.from_id)
46 | await utils.answer(message, f"{self.strings('date_text').format(data=data)}\n\n{self.strings('date_text_ps')}")
47 | else:
48 | await utils.answer(message, self.strings("no_reply"))
49 |
--------------------------------------------------------------------------------
/AniLibria.py:
--------------------------------------------------------------------------------
1 | # ---------------------------------------------------------------------------------
2 | # Name: AniLibria
3 | # Description: Searches and gives random agtme on the AniLibria database.
4 | # Author: @hikka_mods
5 | # ---------------------------------------------------------------------------------
6 |
7 | # 🔒 Licensed under the GNU AGPLv3
8 | # 🌐 https://www.gnu.org/licenses/agpl-3.0.html
9 |
10 | # meta developer: @hikka_mods
11 | # scope: AniLibria
12 | # scope: AniLibria 0.0.1
13 | # requires: anilibria.py
14 | # ---------------------------------------------------------------------------------
15 | from .. import loader, main
16 | from ..inline.types import InlineQuery
17 | from ..utils import rand
18 | from aiogram.types import InlineQueryResultPhoto, CallbackQuery
19 | from anilibria import AniLibriaClient
20 | import datetime
21 |
22 | ani_client = AniLibriaClient()
23 | __version__ = (1, 0, 0)
24 |
25 |
26 | @loader.tds
27 | class AniLibriaMod(loader.Module):
28 | """Searches and gives random agtme on the AniLibria database."""
29 |
30 | strings = {
31 | "name": "AniLibria",
32 | "announce": "The announcement:",
33 | "status": "Status:",
34 | "type": "Type:",
35 | "genres": "Genres:",
36 | "favorite": "Favourites <3:", # < == <
37 | "season": "Season:",
38 | }
39 |
40 | strings_ru = {
41 | "announce": "Анонс:",
42 | "status": "Статус:",
43 | "type": "Тип:",
44 | "genres": "Жанры:",
45 | "favorite": "Избранное <3:", # < == <
46 | "season": "Сезон:",
47 | }
48 |
49 | link = "https://anilibria.tv"
50 |
51 | async def client_ready(self, client, db) -> None:
52 | self._client = client
53 |
54 | async def arandomcmd(self, message) -> None:
55 | """Возвращает случайный тайтл из базы"""
56 | anime_title = await ani_client.get_random_title()
57 |
58 | text = f"{anime_title.names.ru} \n"
59 | text += f"{self.strings['status']} {anime_title.status.string}\n\n"
60 | text += f"{self.strings['type']} {anime_title.type.full_string}\n"
61 | text += f"{self.strings['season']} {anime_title.season.string}\n"
62 | text += f"{self.strings['genres']} {' '.join(anime_title.genres)}\n\n"
63 |
64 | text += f"{anime_title.description}
\n\n"
65 | text += f"{self.strings['favorite']} {anime_title.in_favorites}"
66 |
67 | kb = [
68 | [
69 | {
70 | "text": "Ссылка",
71 | "url": f"https://anilibria.tv/release/{anime_title.code}.html",
72 | }
73 | ]
74 | ]
75 |
76 | kb.extend(
77 | [
78 | {
79 | "text": f"{torrent.quality.string}",
80 | "url": f"https://anilibria.tv/{torrent.url}",
81 | }
82 | ]
83 | for torrent in anime_title.torrents.list
84 | )
85 | kb.append([{"text": "🔃 Обновить", "callback": self.inline__update}])
86 | kb.append([{"text": "🚫 Закрыть", "callback": self.inline__close}])
87 |
88 | await self.inline.form(
89 | text=text,
90 | photo=self.link + anime_title.posters.original.url,
91 | message=message,
92 | reply_markup=kb,
93 | silent=True,
94 | )
95 |
96 | async def asearch_inline_handler(self, query: InlineQuery) -> None:
97 | """
98 | Возвращает список найденных по названию тайтлов
99 | """
100 | text = query.args
101 |
102 | if not text:
103 | return
104 |
105 | anime_titles = await ani_client.search_titles(search=text)
106 |
107 | inline_query = []
108 | for anime_title in anime_titles:
109 | title_text = f"{anime_title.names.ru} | {anime_title.names.en}\n"
110 | title_text += f"{self.strings['status']} {anime_title.status.string}\n\n"
111 | title_text += f"{self.strings['type']} {anime_title.type.full_string}\n"
112 | title_text += f"{self.strings['season']} {anime_title.season.string} {anime_title.season.year}\n"
113 | title_text += f"{self.strings['genres']} {' '.join(anime_title.genres)}\n\n"
114 |
115 | title_text += f"{anime_title.description}
\n\n"
116 | title_text += f"{self.strings['favorite']} {anime_title.in_favorites}"
117 |
118 | inline_query.append(
119 | InlineQueryResultPhoto(
120 | id=str(anime_title.code),
121 | title=anime_title.names.ru,
122 | description=anime_title.type.full_string,
123 | caption=title_text,
124 | thumb_url=self.link + anime_title.posters.small.url,
125 | photo_url=self.link + anime_title.posters.original.url,
126 | parse_mode="html",
127 | )
128 | )
129 | await query.answer(inline_query, cache_time=0)
130 |
131 | async def inline__close(self, call: CallbackQuery) -> None:
132 | await call.delete()
133 |
134 | async def inline__update(self, call: CallbackQuery) -> None:
135 | anime_title = await ani_client.get_random_title()
136 |
137 | text = f"{anime_title.names.ru} \n"
138 | text += f"{self.strings['status']} {anime_title.status.string}\n\n"
139 | text += f"{self.strings['type']} {anime_title.type.full_string}\n"
140 | text += f"{self.strings['season']} {anime_title.season.string}\n"
141 | text += f"{self.strings['genres']} {' '.join(anime_title.genres)}\n\n"
142 |
143 | text += f"{anime_title.description}
\n\n"
144 | text += f"{self.strings['favorite']} {anime_title.in_favorites}"
145 |
146 | kb = [
147 | [
148 | {
149 | "text": "Ссылка",
150 | "url": f"https://anilibria.tv/release/{anime_title.code}.html",
151 | }
152 | ]
153 | ]
154 |
155 | kb.extend(
156 | [
157 | {
158 | "text": f"{torrent.quality.string}",
159 | "url": f"https://anilibria.tv/{torrent.url}",
160 | }
161 | ]
162 | for torrent in anime_title.torrents.list
163 | )
164 | kb.append([{"text": "🔃 Обновить", "callback": self.inline__update}])
165 | kb.append([{"text": "🚫 Закрыть", "callback": self.inline__close}])
166 |
167 | await call.edit(
168 | text=text,
169 | photo=self.link + anime_title.posters.original.url,
170 | reply_markup=kb,
171 | )
172 |
--------------------------------------------------------------------------------
/Article.py:
--------------------------------------------------------------------------------
1 | # ---------------------------------------------------------------------------------
2 | # Name: Article
3 | # Description: Displays your article Criminal Code of the Russian Federation
4 | # Author: @hikka_mods
5 | # ---------------------------------------------------------------------------------
6 |
7 | # 🔒 Licensed under the GNU AGPLv3
8 | # 🌐 https://www.gnu.org/licenses/agpl-3.0.html
9 |
10 | # ⚠️ Where is the JoinChannelRequest
11 |
12 | # meta developer: @hikka_mods
13 | # scope: Article
14 | # scope: Article 0.0.1
15 | # requires: requests
16 | # ---------------------------------------------------------------------------------
17 | import requests, json, random
18 | from typing import Dict
19 | from hikkatl.types import Message
20 |
21 | from .. import loader, utils
22 |
23 | __version__ = (1, 0, 0)
24 |
25 |
26 | @loader.tds
27 | class ArticleMod(loader.Module):
28 | """Displays your article Criminal Code of the Russian Federation"""
29 |
30 | strings = {
31 | "name": "Article",
32 | "article": "
Number {}\n\n{}", 33 | } 34 | 35 | strings_ru = { 36 | "article": "
Номер {}\n\n{}", 37 | } 38 | 39 | async def arccmd(self, message: Message): 40 | """Displays your article Criminal Code of the Russian Federation""" 41 | values = self._load_values() 42 | if values: 43 | random_key = random.choice(list(values.keys())) 44 | random_value = values[random_key] 45 | await utils.answer( 46 | message, self.strings("article").format(random_key, random_value) 47 | ) 48 | 49 | def _load_values(self) -> Dict[str, str]: 50 | url = "https://raw.githubusercontent.com/Codwizer/ReModules/main/assets/zakon.json" 51 | try: 52 | response = requests.get(url) 53 | if response.ok: 54 | data = json.loads(response.text) 55 | return data 56 | except (requests.RequestException, json.JSONDecodeError): 57 | pass 58 | 59 | return {} 60 | -------------------------------------------------------------------------------- /AutofarmCookies.py: -------------------------------------------------------------------------------- 1 | # --------------------------------------------------------------------------------- 2 | # Name: AutofarmCookies 3 | # Description: Autofarm in the bot @cookies_game_bot 4 | # Author: @hikka_mods 5 | # --------------------------------------------------------------------------------- 6 | 7 | # 🔒 Licensed under the GNU AGPLv3 8 | # 🌐 https://www.gnu.org/licenses/agpl-3.0.html 9 | 10 | # meta developer: @hikka_mods 11 | # scope: AutofarmCookies 12 | # scope: AutofarmCookies 0.0.1 13 | # --------------------------------------------------------------------------------- 14 | 15 | import random 16 | from datetime import timedelta 17 | 18 | from telethon import functions 19 | from telethon.tl.types import Message 20 | 21 | from .. import loader, utils 22 | 23 | __version__ = (1, 0, 0) 24 | 25 | 26 | @loader.tds 27 | class AutofarmCookiesMod(loader.Module): 28 | """Autofarm in the bot @cookies_game_bot""" 29 | 30 | strings = { 31 | "name": "AutofarmCookies", 32 | "farmon": ( 33 | "The deferred task has been created, autofarming has been started, everything will start in 10 minutes" 34 | " seconds..." 35 | ), 36 | "farmon_already": "It has already been launched :)", 37 | "farmoff": "The autopharm is stopped\nSelected: %coins% Cookies", 38 | "farm": "I typed: %coins% Cookies", 39 | } 40 | 41 | strings_ru = { 42 | "farmon": ( 43 | "Отложенная задача создана, автофарминг запущен, всё начнётся через 10" 44 | " секунд..." 45 | ), 46 | "farmon_already": "Уже запущено :)", 47 | "farmoff": "Автофарм остановлен.\nНвброно: %coins% Cookies", 48 | "farm": "Я набрал: %coins% Cookies", 49 | } 50 | 51 | def __init__(self): 52 | self.name = self.strings["name"] 53 | 54 | async def client_ready(self, client, db): 55 | self.client = client 56 | self.db = db 57 | self.myid = (await client.get_me()).id 58 | self.cookies = 5203407003 59 | 60 | @loader.command() 61 | async def cookoncmd(self, message): 62 | """Запустить автофарминг""" 63 | status = self.db.get(self.name, "status", False) 64 | if status: 65 | return await message.edit(self.strings["farmon_already"]) 66 | self.db.set(self.name, "status", True) 67 | await self.client.send_message( 68 | self.cookies, "/cookie", schedule=timedelta(seconds=10) 69 | ) 70 | await message.edit(self.strings["farmon"]) 71 | 72 | @loader.command() 73 | async def cookoffcmd(self, message): 74 | """Остановить автофарминг""" 75 | self.db.set(self.name, "status", False) 76 | coins = self.db.get(self.name, "coins", 0) 77 | if coins: 78 | self.db.set(self.name, "coins", 0) 79 | await message.edit(self.strings["farmoff"].replace("%coins%", str(coins))) 80 | 81 | @loader.command() 82 | async def cookiescmd(self, message): 83 | """Вывод кол-ва коинов, добытых этим модулем""" 84 | coins = self.db.get(self.name, "coins", 0) 85 | await message.edit(self.strings["farm"].replace("%coins%", str(coins))) 86 | 87 | async def watcher(self, event): 88 | if not isinstance(event, Message): 89 | return 90 | chat = utils.get_chat_id(event) 91 | if chat != self.cookies: 92 | return 93 | status = self.db.get(self.name, "status", False) 94 | if not status: 95 | return 96 | if event.raw_text == "/cookie": 97 | return await self.client.send_message( 98 | self.cookies, "/cookie", schedule=timedelta(hours=2) 99 | ) 100 | if event.sender_id != self.cookies: 101 | return 102 | if "🙅♂️!" in event.raw_text: 103 | args = [int(x) for x in event.raw_text.split() if x.isnumeric()] 104 | randelta = random.randint(20, 60) 105 | if len(args) == 4: 106 | delta = timedelta( 107 | hours=args[1], minutes=args[2], seconds=args[3] + randelta 108 | ) 109 | elif len(args) == 3: 110 | delta = timedelta(minutes=args[1], seconds=args[2] + randelta) 111 | elif len(args) == 2: 112 | delta = timedelta(seconds=args[1] + randelta) 113 | else: 114 | return 115 | sch = ( 116 | await self.client( 117 | functions.messages.GetScheduledHistoryRequest(self.cookies, 1488) 118 | ) 119 | ).messages 120 | await self.client( 121 | functions.messages.DeleteScheduledMessagesRequest( 122 | self.cookies, id=[x.id for x in sch] 123 | ) 124 | ) 125 | return await self.client.send_message( 126 | self.cookies, "/cookie", schedule=delta 127 | ) 128 | if "✨" in event.raw_text: 129 | args = event.raw_text.split() 130 | for x in args: 131 | if x[0] == "+": 132 | return self.db.set( 133 | self.name, 134 | "coins", 135 | self.db.get(self.name, "coins", 0) + int(x[1:]), 136 | ) 137 | 138 | async def message_q( 139 | self, 140 | text: str, 141 | user_id: int, 142 | mark_read: bool = False, 143 | delete: bool = False, 144 | ): 145 | """Отправляет сообщение и возращает ответ""" 146 | async with self.client.conversation(user_id) as conv: 147 | msg = await conv.send_message(text) 148 | response = await conv.get_response() 149 | if mark_read: 150 | await conv.mark_read() 151 | 152 | if delete: 153 | await msg.delete() 154 | await response.delete() 155 | 156 | return response 157 | 158 | @loader.command() 159 | async def mecmd(self, message): 160 | """Показывает ваш мешок""" 161 | 162 | bot = "@cookies_game_bot" 163 | bags = await self.message_q( 164 | "/me", 165 | bot, 166 | delete=True, 167 | ) 168 | 169 | args = utils.get_args_raw(message) 170 | 171 | if not args: 172 | await utils.answer(message, bags.text) 173 | 174 | @loader.command() 175 | async def ckiescmd(self, message): 176 | """Помощь по модулю AutofarmCookies""" 177 | chelp = """ 178 | 🍀| Помощь по командам: 179 | .cookon - Включает авто фарм. 180 | .cookoff - Выключает авто фарм. 181 | .farm - Показывает сколько вы нафармили. 182 | .me - Показывает ваш ммешок""" 183 | await utils.answer(message, chelp) 184 | -------------------------------------------------------------------------------- /BirthdayTime.py: -------------------------------------------------------------------------------- 1 | # --------------------------------------------------------------------------------- 2 | # Name: BirthdayTime 3 | # Description: Counting down to your birthday 4 | # Author: @hikka_mods 5 | # --------------------------------------------------------------------------------- 6 | 7 | # 🔒 Licensed under the GNU AGPLv3 8 | # 🌐 https://www.gnu.org/licenses/agpl-3.0.html 9 | 10 | # meta developer: @hikka_mods 11 | # scope: BirthdayTime 12 | # scope: Api BirthdayTime 0.0.1 13 | # --------------------------------------------------------------------------------- 14 | 15 | import random 16 | import asyncio 17 | from .. import loader, utils 18 | from datetime import datetime 19 | from datetime import timedelta 20 | from telethon.tl.functions.users import GetFullUserRequest 21 | from telethon.tl.functions.account import UpdateProfileRequest 22 | 23 | __version__ = (1, 0, 0) 24 | 25 | d_msg = [ 26 | "Ждешь его?", 27 | "Осталось немного)", 28 | "Дни пролетят, даже не заметишь", 29 | "Уже знаешь что хочешь получить в подарок?)", 30 | "Сколько исполняется?", 31 | "Жду не дождусь уже", 32 | ] 33 | 34 | 35 | @loader.tds 36 | class DaysToMyBirthday(loader.Module): 37 | """Counting down to your birthday""" 38 | 39 | strings = { 40 | "name": "BirthdayTime", 41 | "date_error": "
{text}
была успешно выполнена в терминале",
67 | "modules_inline_handler_title": "Модули",
68 | "modules_inline_handler_description": "Вывести список установленных моудей",
69 | "modules_inline_handler_result": "☘️ Все установленные модули:\n",
70 | "resetprefix_inline_handler_title": "Сбросить префикс",
71 | "resetprefix_inline_handler_description": "Сбросить префикс по умолчанию",
72 | "resetprefix_inline_handler_message": "Вы действительно хотите сбросить ваш префикс и установить стандартную точку?",
73 | "resetprefix_inline_handler_reply_text_yes": "Да",
74 | "resetprefix_inline_handler_reply_text_no": "Нет",
75 | }
76 |
77 | async def client_ready(self, client, db):
78 | self.client = client
79 | self.db = db
80 |
81 | async def restart(self, call):
82 | """Restart callback"""
83 | logging.error("InlineHelper: restarting userbot...")
84 | await call.edit(self.strings("call_restart"))
85 | await sys.exit(0)
86 |
87 | async def update(self, call):
88 | """Update callback"""
89 | logging.error("InlineHelper: updating userbot...")
90 | os.system(f"cd {utils.get_base_dir()} && cd .. && git reset --hard HEAD")
91 | os.system("git pull")
92 | await call.edit(self.strings("call_update"))
93 | await sys.exit(0)
94 |
95 | async def reset_prefix(self, call):
96 | """Reset prefix"""
97 | self.db.set(main.__name__, "command_prefix", ".")
98 | await call.edit(self.strings("res_prefix"))
99 |
100 | async def restart_inline_handler(self, query: InlineQuery):
101 | """- перезагрузить юзербота"""
102 |
103 | return {
104 | "title": self.strings("restart_inline_handler_title"),
105 | "description": self.strings("restart_inline_handler_description"),
106 | "message": self.strings("restart_inline_handler_message"),
107 | "reply_markup": [
108 | {
109 | "text": self.strings("restart_inline_handler_reply_text"),
110 | "callback": self.restart,
111 | }
112 | ],
113 | }
114 |
115 | async def update_inline_handler(self, query: InlineQuery):
116 | """- обновить юзербота"""
117 |
118 | return {
119 | "title": self.strings("update_inline_handler_title"),
120 | "description": self.strings("update_inline_handler_description"),
121 | "message": self.strings("update_inline_handler_message"),
122 | "reply_markup": [
123 | {
124 | "text": self.strings("update_inline_handler_reply_text"),
125 | "callback": self.update,
126 | }
127 | ],
128 | }
129 |
130 | async def terminal_inline_handler(self, query: InlineQuery):
131 | """- выполнить команду в терминале (лучше сразу подготовить команду и просто вставить)"""
132 |
133 | text = query.args
134 |
135 | sproc = await asyncio.create_subprocess_shell(
136 | f"{text}",
137 | stdin=asyncio.subprocess.PIPE,
138 | stdout=asyncio.subprocess.PIPE,
139 | stderr=asyncio.subprocess.PIPE,
140 | cwd=utils.get_base_dir(),
141 | )
142 |
143 | return {
144 | "title": self.strings("terminal_inline_handler_title"),
145 | "description": self.strings("terminal_inline_handler_description"),
146 | "message": self.strings("terminal_inline_handler_message").format(
147 | text=text
148 | ),
149 | }
150 |
151 | async def modules_inline_handler(self, query: InlineQuery):
152 | """- вывести список установленных модулей через инлайн"""
153 |
154 | result = self.strings("modules_inline_handler_result")
155 |
156 | for mod in self.allmodules.modules:
157 | try:
158 | name = mod.strings["name"]
159 | except KeyError:
160 | name = mod.__clas__.__name__
161 | result += f"• {name}\n"
162 |
163 | return {
164 | "title": self.strings("modules_inline_handler_title"),
165 | "description": self.strings("modules_inline_handler_description"),
166 | "message": result,
167 | }
168 |
169 | async def resetprefix_inline_handler(self, query: InlineQuery):
170 | """- сбросить префикс (осторожнее, сбрасывает ваш префикс на . )"""
171 |
172 | return {
173 | "title": self.strings("resetprefix_inline_handler_title"),
174 | "description": self.strings("resetprefix_inline_handler_description"),
175 | "message": self.strings("resetprefix_inline_handler_message"),
176 | "reply_markup": [
177 | {
178 | "text": self.strings("resetprefix_inline_handler_reply_text_yes"),
179 | "callback": self.reset_prefix,
180 | },
181 | {
182 | "text": self.strings("resetprefix_inline_handler_reply_text_no"),
183 | "action": "close",
184 | },
185 | ],
186 | }
187 |
--------------------------------------------------------------------------------
/Kittens.py:
--------------------------------------------------------------------------------
1 | # Name: Kittens
2 | # Description: Module for search cutie kitties from @catslovemeow
3 | # Author: @nervousmods
4 | # Commands:
5 | # .kit
6 | # ---------------------------------------------------------------------------------
7 | # 🔒 Licensed under the GNU GPLv3
8 | # 🌐 https://www.gnu.org/licenses/agpl-3.0.html
9 | # ⚠️ All modules is not scam and absolutely safe.
10 | # 👤 https://t.me/smlgwy
11 | # -----------------------------------------------------------------------------------
12 | # meta developer: @nervousmods, @hikka_mods
13 | # scope: hikka_only
14 | # scope: hikka_min 1.4.2
15 | # -----------------------------------------------------------------------------------
16 |
17 | from .. import loader
18 | from telethon.tl.custom import Message
19 | import datetime
20 | from telethon import functions
21 | import random
22 | import time
23 |
24 | __version__ = (1, 0, 0)
25 |
26 |
27 | @loader.tds
28 | class Kittens(loader.Module):
29 | """Module for search cutie kitties from @catslovemeow"""
30 |
31 | strings = {
32 | "name": "Kittens",
33 | "search": "{}
",
33 | }
34 |
35 | strings_ru = {
36 | "nenashel": (
37 | "{}
",
42 | }
43 |
44 | async def ymcmd(self, message):
45 | """- найти трек по названию из Yandex music"""
46 | args = utils.get_args_raw(message)
47 | r = await message.get_reply_message()
48 | bot = "@Yandex_music_download_bot"
49 | if not args:
50 | return await message.edit(self.strings("nenashel"))
51 | try:
52 | await message.edit(self.strings("searching"))
53 | music = await message.client.inline_query(bot, args)
54 | await message.delete()
55 | try:
56 | await message.client.send_file(
57 | message.to_id,
58 | music[1].result.document,
59 | caption=self.strings("done"),
60 | reply_to=utils.get_topic(message) if r else None,
61 | )
62 | except:
63 | await message.client.send_file(
64 | message.to_id,
65 | music[3].result.document,
66 | caption=self.strings("done"),
67 | reply_to=utils.get_topic(message) if r else None,
68 | )
69 | except:
70 | return await message.client.send_message(
71 | message.chat_id, self.strings("error").format(args=args)
72 | )
73 |
74 | async def vkmcmd(self, message):
75 | """- найти трек по названию из VK"""
76 | args = utils.get_args_raw(message)
77 | r = await message.get_reply_message()
78 | bot = "@vkmusic_bot"
79 | if not args:
80 | return await message.edit(self.strings("nenashel"))
81 | try:
82 | await message.edit(self.strings("searching"))
83 | music = await message.client.inline_query(bot, args)
84 | await message.delete()
85 | try:
86 | await message.client.send_file(
87 | message.to_id,
88 | music[1].result.document,
89 | caption=self.strings("done"),
90 | reply_to=utils.get_topic(message) if r else None,
91 | )
92 | except:
93 | await message.client.send_file(
94 | message.to_id,
95 | music[3].result.document,
96 | caption=self.strings("done"),
97 | reply_to=utils.get_topic(message) if r else None,
98 | )
99 | except:
100 | return await message.client.send_message(
101 | message.chat_id, self.strings("error").format(args=args)
102 | )
103 |
--------------------------------------------------------------------------------
/PastebinAPI.py:
--------------------------------------------------------------------------------
1 | # ---------------------------------------------------------------------------------
2 | # Name: PastebinAPI
3 | # Description: fills in the code on pastebin
4 | # Author: @hikka_mods
5 | # ---------------------------------------------------------------------------------
6 |
7 | # 🔒 Licensed under the GNU AGPLv3
8 | # 🌐 https://www.gnu.org/licenses/agpl-3.0.html
9 |
10 | # meta developer: @hikka_mods
11 | # scope: PastebinAPI
12 | # scope: PastebinAPI 0.0.1
13 | # requires: aiohttp
14 | # ---------------------------------------------------------------------------------
15 |
16 | import asyncio
17 | import json
18 | import aiohttp
19 | from requests import get
20 | from hikkatl.tl.types import Message
21 |
22 | from .. import loader, utils
23 |
24 | __version__ = (1, 0, 0)
25 |
26 |
27 | @loader.tds
28 | class PastebinAPIMod(loader.Module):
29 | """PastebinAPI"""
30 |
31 | strings = {
32 | "name": "PastebinAPI",
33 | "no_reply": (
34 | "{response_text}
",
38 | }
39 |
40 | strings_ru = {
41 | "no_reply": (
42 | "{response_text}
",
46 | }
47 |
48 | def __init__(self):
49 | self.config = loader.ModuleConfig(
50 | loader.ConfigValue(
51 | "pastebin",
52 | None,
53 | lambda: "link to get api https://pastebin.com/doc_api#1",
54 | validator=loader.validators.Hidden(),
55 | )
56 | )
57 |
58 | async def pastcmd(self, message):
59 | """Заливает код в Pastebin"""
60 | text = utils.get_args(message)
61 |
62 | if self.config["pastebin"] is None:
63 | await utils.answer(message, self.strings("no_key"))
64 | return
65 |
66 | if not text:
67 | await utils.answer(message, self.strings("no_reply"))
68 | return
69 |
70 | async with aiohttp.ClientSession() as Session:
71 | async with Session.post(
72 | url="https://pastebin.com/api/api_post.php",
73 | data={
74 | "api_dev_key": self.config["pastebin"],
75 | "api_paste_code": text,
76 | "api_option": "paste",
77 | },
78 | ) as response:
79 | response_text = await response.text()
80 |
81 | await utils.answer(
82 | message, self.strings("done").format(response_text=response_text)
83 | )
84 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | .dlm https://raw.githubusercontent.com/Codwizer/ReModules/main/{name_modules}.py
16 | .addrepo https://github.com/Codwizer/ReModules/raw/main
21 | > Installing the module
22 | .dlm {name_modules}
23 |
24 |
25 | ## 📑 License
26 |
27 | > All files of this repository are under GNU AGPLv3.{}
",
47 | }
48 | strings_ru = {
49 | "pass": "{}
"
50 | }
51 |
52 | async def passwordcmd(self, message):
53 | """random password\n-n - numbers\n-s - symbols \n -l - letters"""
54 | text = message.text.split()
55 | length = 10
56 | letters = True
57 | numbers = False
58 | symbols = False
59 | for i in text:
60 | if i.startswith("password"):
61 | length = int(i.split("password")[1])
62 | elif i == "-n":
63 | numbers = True
64 | elif i == "-s":
65 | symbols = True
66 | elif i == "-l":
67 | letters = True
68 | password = generate_password(
69 | length=length, letters=letters, numbers=numbers, symbols=symbols
70 | )
71 | await utils.answer(message, self.strings("pass").format(password))
72 |
--------------------------------------------------------------------------------
/TelegramStatusCodes.py:
--------------------------------------------------------------------------------
1 | # ---------------------------------------------------------------------------------
2 | # Name: TelegramStatusCodes
3 | # Description: Dictionary of telegram status codes
4 | # Author: @hikka_mods
5 | # ---------------------------------------------------------------------------------
6 |
7 | # 🔒 Licensed under the GNU AGPLv3
8 | # 🌐 https://www.gnu.org/licenses/agpl-3.0.html
9 |
10 | # meta developer: @hikka_mods
11 | # scope: Api TelegramStatusCodes
12 | # scope: Api TelegramStatusCodes 0.0.1
13 | # ---------------------------------------------------------------------------------
14 |
15 | from telethon.tl.types import Message
16 |
17 | from .. import loader, utils
18 |
19 | __version__ = (1, 0, 0)
20 |
21 | responses = {
22 | 300: (
23 | "⛔ SEE_OTHER",
24 | "The request must be repeated, but directed to a different data center.",
25 | ),
26 | 400: (
27 | "⛔ BAD_REQUEST",
28 | "The query contains errors. In the event that a request was created using a form and contains user generated data, the user should be notified that the data must be corrected before the query is repeated.",
29 | ),
30 | 401: (
31 | "⛔ UNAUTHORIZED",
32 | "There was an unauthorized attempt to use functionality available only to authorized users.",
33 | ),
34 | 403: (
35 | "⛔ FORBIDDEN",
36 | "Privacy violation. For example, an attempt to write a message to someone who has blacklisted the current user.",
37 | ),
38 | 404: (
39 | "⛔ NOT_FOUND",
40 | "An attempt to invoke a non-existent object, such as a method",
41 | ),
42 | 406: (
43 | "⛔ NOT_ACCEPTABLE",
44 | """
45 | Similar to 400 BAD_REQUESTS, but the app must display the error to the user a bit differently.
46 | Do not display any visible error to the user when receiving the rpc_error constructor: instead, wait for an updateServiceNotification update, and handle it as usual.
47 | Basically, an pop-up update will be emitted independently (ie NOT as an Updates constructor inside rpc_result but as a normal update) immediately after emission of a 406 rpc_error: the update will contain the actual localized error message to show to the user with a UI popup.
48 |
49 | An exception to this is the AUTH_KEY_DUPLICATED error, which is only emitted if any of the non-media DC detects that an authorized session is sending requests in parallel from two separate TCP connections, from the same or different IP addresses.
50 | Note that parallel connections are still allowed and actually recommended for media DCs.
51 | Also note that by session we mean a logged-in session identified by an authorization constructor, fetchable using account.getAuthorizations, not an MTProto session.
52 |
53 | If the client receives an AUTH_KEY_DUPLICATED error, the session was already invalidated by the server and the user must generate a new auth key and login again.""",
54 | ),
55 | 420: (
56 | "⛔ FLOOD",
57 | "The maximum allowed number of attempts to invoke the given method with the given input parameters has been exceeded. For example, in an attempt to request a large number of text messages (SMS) for the same phone number.",
58 | ),
59 | 500: (
60 | "⛔ INTERNAL",
61 | """An internal server error occurred while a request was being processed; for example, there was a disruption while accessing a database or file storage.
62 |
63 | If a client receives a 500 error, or you believe this error should not have occurred, please collect as much information as possible about the query and error and send it to the developers""",
64 | ),
65 | }
66 |
67 |
68 | @loader.tds
69 | class TelegramStatusCodes(loader.Module):
70 | """Dictionary of telegram status codes"""
71 |
72 | strings = {
73 | "name": "TelegramStatusCodes",
74 | "args_incorrect": "Incorrect args",
75 | "not_found": "Code not found",
76 | "syntax_error": "Args are mandatory",
77 | "scode": "{} {}\n⚜️ Code Description: {}",
78 | }
79 |
80 | strings_ru = {
81 | "args_incorrect": "Неверные аргументы",
82 | "not_found": "Код не найден",
83 | "syntax_error": "Аргументы обязательны",
84 | "_cmd_doc_httpsc": "<код> - Получить информацию о Telegram error",
85 | "_cmd_doc_httpscs": "Показать все доступные коды",
86 | "_cls_doc": "Словарь telegram error",
87 | }
88 |
89 | @loader.unrestricted
90 | async def tgccmd(self, message: Message):
91 | """{details['result']}
"
135 | )
136 | out = (
137 | "\n".join(detections)
138 | if detections
139 | else self.strings("no_virus")
140 | )
141 | url = f"https://www.virustotal.com/gui/file/{hash}/detection"
142 | await self.inline.form(
143 | text=f"Detections: {len(detections)} / {len(result['data']['attributes']['results'])}\n\n{out}\n\n",
144 | message=message,
145 | reply_markup={
146 | "text": self.strings("link"),
147 | "url": url,
148 | },
149 | )
150 | except Exception as e:
151 | await utils.answer(
152 | message,
153 | self.strings("error") + f"\n\n{type(e).__name__}: {str(e)}",
154 | )
155 | else:
156 | await utils.answer(message, self.strings("no_format"))
157 |
--------------------------------------------------------------------------------
/animals.py:
--------------------------------------------------------------------------------
1 | # ---------------------------------------------------------------------------------
2 | # Name: animals
3 | # Description: Random cats and dogs
4 | # Author: @hikka_mods
5 | # ---------------------------------------------------------------------------------
6 |
7 | # 🔒 Licensed under the GNU AGPLv3
8 | # 🌐 https://www.gnu.org/licenses/agpl-3.0.html
9 |
10 | # meta developer: @hikka_mods
11 | # scope: Api animals
12 | # scope: Api animals 0.0.1
13 | # requires: requests
14 | # ---------------------------------------------------------------------------------
15 | from hikkatl.types import Message
16 | import requests
17 |
18 | from .. import loader, utils
19 |
20 | __version__ = (1, 0, 0)
21 |
22 |
23 | @loader.tds
24 | class animals(loader.Module):
25 | """Random cats and dogs"""
26 |
27 | strings = {
28 | "name": "animals",
29 | "loading": "Generation is underway",
30 | "done": "Here is your salute",
31 | }
32 |
33 | strings_ru = {
34 | "loading": "Генерация идет полным ходом",
35 | "done": "Вот ваш результат",
36 | }
37 |
38 | async def fcatcmd(self, message: Message):
39 | """random photos of cats files"""
40 | await utils.answer(message, self.strings("loading"))
41 | response = requests.get("https://api.thecatapi.com/v1/images/search")
42 | cat_url = response.json()[0]["url"]
43 | await utils.answer_file(
44 | message, cat_url, self.strings("done"), force_document=True
45 | )
46 |
47 | async def fdogcmd(self, message: Message):
48 | """random photos of dog files"""
49 | await utils.answer(message, self.strings("loading"))
50 | response = requests.get("https://api.thedogapi.com/v1/images/search")
51 | dog_url = response.json()[0]["url"]
52 | await utils.answer_file(
53 | message, dog_url, self.strings("done"), force_document=True
54 | )
55 |
56 | async def catcmd(self, message: Message):
57 | """random photos of cats"""
58 | await utils.answer(message, self.strings("loading"))
59 | response = requests.get("https://api.thecatapi.com/v1/images/search")
60 | cat_url = response.json()[0]["url"]
61 | await utils.answer_file(
62 | message, cat_url, self.strings("done"), force_document=False
63 | )
64 |
65 | async def dogcmd(self, message: Message):
66 | """random photos of dog"""
67 | await utils.answer(message, self.strings("loading"))
68 | response = requests.get("https://api.thedogapi.com/v1/images/search")
69 | dog_url = response.json()[0]["url"]
70 | await utils.answer_file(
71 | message, dog_url, self.strings("done"), force_document=False
72 | )
73 |
--------------------------------------------------------------------------------
/assets/IMG_20231128_152538.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codwizer/ReModules/da54c7fa072599010bac1359b075d4ef48f5bcfe/assets/IMG_20231128_152538.jpg
--------------------------------------------------------------------------------
/assets/Minecraft.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codwizer/ReModules/da54c7fa072599010bac1359b075d4ef48f5bcfe/assets/Minecraft.ttf
--------------------------------------------------------------------------------
/assets/OpenSans-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codwizer/ReModules/da54c7fa072599010bac1359b075d4ef48f5bcfe/assets/OpenSans-Light.ttf
--------------------------------------------------------------------------------
/assets/Samson.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codwizer/ReModules/da54c7fa072599010bac1359b075d4ef48f5bcfe/assets/Samson.ttf
--------------------------------------------------------------------------------
/assets/Vector.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codwizer/ReModules/da54c7fa072599010bac1359b075d4ef48f5bcfe/assets/Vector.png
--------------------------------------------------------------------------------
/assets/all_items.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codwizer/ReModules/da54c7fa072599010bac1359b075d4ef48f5bcfe/assets/all_items.png
--------------------------------------------------------------------------------
/assets/faces.json:
--------------------------------------------------------------------------------
1 | ["\u30fd(\u0e51\u25e0\u072b\u25e0\u0e51)\uff89", "(\u25d5\u1d25\u25d5\u028b)", "\u1559(`\u25bd\u00b4)\u1557", "(\u273f\u25e0\u203f\u25e0)", "(\u25b0\u02d8\u25e1\u02d8\u25b0)", "(\u02f5 \u0361\u00b0 \u035c\u0296 \u0361\u00b0\u02f5)", "\u0295\u3063\u2022\u1d25\u2022\u0294\u3063", "( \u0361\u00b0 \u1d25 \u0361\u00b0)", "(\u0e51\u2022\u0301 \u30ee \u2022\u0300\u0e51)", "\u0669(^\u203f^)\u06f6", "(\u3063\u02c6\u06a1\u02c6\u03c2)", "\u03c8(\uff40\u2207\u00b4)\u03c8", "\u2299\u03c9\u2299", "\u0669(^\u1d17^)\u06f6", "(\u00b4\u30fb\u03c9\u30fb)\u3063\u7531", "( \u0361~ \u035c\u0296 \u0361\u00b0)", "\u2727\u2661(\u25d5\u203f\u25d5\u273f)", "\u0e42\u0e4f\u0bf0\u0e4f\u0e43 \u0e37", "\u2229\uff61\u2022 \u1d55 \u2022\uff61\u2229 \u2661", "(\u2661\u00b4\u0c6a`\u2661)", "(\u25cd\uff1e\u25e1\uff1c\u25cd)\u22c8\u3002\u2727\u2661", "\u2570(\u273f\u00b4\u2323`\u273f)\u256f\u2661", "\u0295\u2022\u1d25\u2022\u0294", "\u1d98 \u25d5\u1d25\u25d5\u1d85", "\u25bc\u30fb\u1d25\u30fb\u25bc", "\u0e05^\u2022\ufecc\u2022^\u0e05", "(\u0384\u25de\u0e34\u0c6a\u25df\u0e34\u2035)", "\u1574\uff70\u1d25\uff70\u1575", "\u0295\uffeb\u1d25\uffe9\u0294", "\u0295\u1d55\u1d25\u1d55\u0294", "\u0295\u1d52\u1d25\u1d52\u0294", "\u1d54\u1d25\u1d54", "(\u273f\u2579\u25e1\u2579)", "(\u0e51\uffeb\u072b\uffe9)", "\u0295\u00b7\u1d25\u00b7\u3000\u0294", "(\uff89\u2267\u06a1\u2266)", "(\u2256\u1d17\u2256\u273f)", "\uff08\u301c^\u2207^ )\u301c", "( \uff89\uff65\uff6a\uff65 )\uff89", "~( \u02d8\u25be\u02d8~)", "(\u301c^\u2207^)\u301c", "\u30fd(^\u1d17^\u30fd)", "(\u00b4\uff65\u03c9\uff65`)", "\u208d\u1422\u2022\ufecc\u2022\u1422\u208e*\uff65\uff9f\uff61", "(\u3002\u30fb\u30fb)_\u4e14", "(=\uff40\u03c9\u00b4=)", "(*\u2022\u203f\u2022*)", "(*\uff9f\u2200\uff9f*)", "(\u2609\u22c6\u203f\u22c6\u2609)", "\u0277\u25e1\u0277", "\u0298\u203f\u0298", "(\u3002-\u03c9-)\uff89", "( \uff65\u03c9\uff65)\uff89", "(=\uff9f\u03c9\uff9f)\uff89", "(\u30fb\u03b5\u30fb`*) \u2026", "(*\u02d8\ufe36\u02d8*)", "\uff61\uff3e\uff65\uff6a\uff65\uff3e\uff61", "( \u0352 \u0941- \u2022\u032b\u032e \u2013 \u0942 \u0352)", "( ^..^)\uff89", "( =\u2460\u03c9\u2460=)", "( =\u03c9=)..nyaa", "( =\u30ce\u03c9\u30fd=)", "(\u00b4; \u03c9 ;\uff40)", "(^-\u4eba-^)", "(^\uff65o\uff65^)\uff89\u201d", "(^\u30fb\u03c9\u30fb^ )", "(^._.^)\uff89", "(^\u4eba^)", "(\u30fb\u2200\u30fb)", "(,,\u25d5\u3000\u22cf\u3000\u25d5,,)", "(.=^\u30fb\u30a7\u30fb^=)", "(\uff61\uff65\u03c9\uff65\uff61)", "((\u2261^\u26b2\u035c^\u2261))", "((\u03a6\u03c9\u03a6))", "(*^\u03c9^*)", "(*\u2727\u00d7\u2727*)", "(*\u03a6\u03c9\u03a6*)", "(\u204e\u02c3\u11ba\u02c2)", "(\u065b\u204e\ua4aa\u0315\u0962 \u02d9\u032b \ua4aa\u065b\u0315\u0962\u204e)", "\u208d\u02c4\u00b7\u0348\u0f1d\u00b7\u0348\u02c4\u208e\u25de \u0311\u0311\u0dc6\u20db", "\u208d\u02c4\u00b7\u0348\u0f1d\u00b7\u0348\u02c4\u208e\u0e05\u02d2\u02d2", "\u208d\u02c4\u0e38.\u0361\u02f3\u032b.\u02c4\u0e38\u208e\u0e05\u02d2\u02d2", "(=\uff40\u30a7\u00b4=)", "\uff08=\u00b4\u2207\uff40=\uff09", "(=^ \u25e1 ^=)", "(=^-\u03c9-^=)", "(=^\uff65^=)", "(=^\uff65\u03c9\uff65^)y\uff1d", "(=^\uff65\u03c9\uff65^=)", "(=^\uff65\uff6a\uff65^=)", "(=^\u2025^=)", "(=\uff65\u03c9\uff65=)", "(=;\u03c9;=)", "(=;\u30a7;=)", "(=\uff1b\u30a7\uff1b=)", "(=\uff1b\uff6a\uff1b=)", "(=\u2018\uff58\u2018=)", "(=\u2312\u203f\u203f\u2312=)", "(=\u2180\u03c9\u2180=)", "(=\u2180\u03c9\u2180=)\u2727", "(=\u2460\u03c9\u2460=)", "(=\uff34\u30a7\uff34=)", "(=\uff58\u30a7\uff58=)", "(=\u03a6\uff74\u03a6=)", "(\u065b\u208c\u0b9f\u0bc1\u0369 \u02d1\u032d \u0b9f\u0bc1\u0369\u065b\u208c)\u0e05", "(\u225a\u110c\u225a)\u2112\u2134\u0475\u212f\u2764", "(\u225a\u110c\u225a)\u01b6\u01b5", "(\u25cb\uff40\u03c9\u00b4\u25cb)", "(\u25cf\u2180\u03c9\u2180\u25cf)", "(\u25cf\u2180\u03c9\u2180\u25cf)\u2727", "(\u2726\u0c25 \uff6a \u0c25)", "(\u2180\u0414\u2180)", "(\u2180\u0414\u2180)\u207c\u00b3\u208c\u2083", "(\u2180\u0414\u2180)\u2727", "(\u0e51\u2022\u03c9\u2022\u0301\u0e05\u2727", "(\u0e51\u2180\u11ba\u2180\u0e51)\u2604", "(\u0e51\u2180\u11ba\u2180\u0e51)\u2727", "(p`\uff65\u03c9\uff65\u00b4) q", "(p`\u03c9\u00b4) q", "(\u03a6\u2207\u03a6)", "(\u03a6\u03b5\u03a6)", "(\u03a6\u03c9\u03a6)", "(\u03a6\u0451\u03a6)", "(\u03a6\u0437\u03a6)", "(\u0e05`\uff65\u03c9\uff65\u00b4)\u3063=", "(\u0e05`\u03c9\u00b4\u0e05)", "(\u0e05\u2019\u03c9\u2019\u0e05)", "(\u0e30`\u2654\u00b4\u0e30)", "(\u0e30\u262b\u03c9\u262b\u0e30)", "(\u3147\u3145\u3147\u2740)", "(\u30ce\u03c9<\u3002)", "(\ua004\ua03e\ua004)", "\uff08\u4e09\u0424\u00c5\u0424\u4e09\uff09", "[\u03a6\u03c9\u03a6]", "] \u2018\u0347\u0302\u2022\u0329\u032b\u2019\u0347\u0302 \u0352)\u0e05 \uff86\uff6c\u2763", "\uff3c(=^\u2025^)/\u2019`", "<(*\u03a6\u03c9\u03a6*)>", "<\u03a6\u03c9\u03a6>", "|\u03a6\u03c9\u03a6|", "|\uff6a\uff65`\uff61)\uff65\uff65\uff65\u3000\u3000", "~(=^\u2025^)", "~(=^\u2025^)_\u65e6~", "~(=^\u2025^)/", "~(=^\u2025^)\u30ce", "~\u25a1P\u30d8(^\uff65\u03c9\uff65^=)~", "\u22b1\u0e05\u2022\u03c9\u2022\u0e05\u22b0", "\u2514(=^\u2025^=)\u2510", "\u2729\u20db( \u0352 \u0941\u2022\u00b7\u032b\u2022 \u0942 \u0352)", "\u2764(\u00b4\u03c9\uff40*)", "\u30fd(^\u2025^=\u309e)", "\u30fe(*\u03a6\u03c9\u03a6)\uff89", "\u30fe(*\u0424\u03c9\u0424)\u03b2y\u0451 \u03b2y\u0451\u2606\u5f61", "\u30fe(=\uff40\u03c9\u00b4=)\u30ce\u201d", "\u30fd(=^\uff65\u03c9\uff65^=)\u4e3f", "\u30fe(=\uff9f\uff65\uff9f=)\uff89", "0( =^\uff65_\uff65^)=\u3007", "\u0669(\u2180\u0414\u2180)\u06f6", "b(=^\u2025^=)o", "d(=^\uff65\u03c9\uff65^=)b", "o(^\u30fbx\u30fb^)o", "o(=\u30fb\u03c9\u30fb=o)", "V(=^\uff65\u03c9\uff65^=)v", "\u10da(=\u2180\u03c9\u2180=)\u10da", "\u10da(\u25cf\u2180\u03c9\u2180\u25cf)\u10da", "\u0e05 \u0302\u22d2\u0e34 \u02d1\u032b \u22d2\u0e34 \u0302\u0e05", "\u0e05( \u1d55 \u03c9 \u1d55 )\u0e05", "\u0e05(\u00b4-\u03c9-`)\u0e05", "\u0e05(\u00b4\u30fb\u03c9\u30fb\uff40)\u0e05", "\u0e05(^\u03c9^\u0e05)", "\u0e05(\u225a\u110c\u225a)", "\u0e05(\u232f\u0352\u2022 \u026a \u2022\u232f\u0352)\u0e05\u2763", "\u0e05\u20db(\u232f\u0352\ua4aa\u0e31 \u02d1\u032b \ua4aa\u0e31 \u232f\u0352) \uff86\uff6c\uff6f\u2763", "\u0e05(\u25cf\u00b4\u03c9\uff40\u25cf)\u0e05", "\u0e05*\u2022\u03c9\u2022*\u0e05\u2661", "\u0e05\u2022\u03c9\u2022\u0e05", "\u0e05\u22b1*\u2022\u03c9\u2022*\u22b0\u0e05", "\u3147\u3145\u3147", "\u30df\u0e4f\uff56\u0e4f\u5f61", "\u30df\u25d5\u0e3a\uff56\u25d5\u0e3a\u5f61", "=\uff3e\u25cf \u22cf \u25cf\uff3e=", "\u208d\u1d54\u00b7\u0348\u0f1d\u00b7\u0348\u1d54\u208e", "\u0e05(\u232f\u0352\u2022\u0329\u0329\u0329\u0301 \u02d1\u032b \u2022\u0329\u0329\u0329\u0300\u232f\u0352)\u0e05", "\u208d\u02c4\u00b7\u0348\u0f1d\u00b7\u0348\u02c4*\u208e\u25de \u0311\u0311", "\u0b32( \u24db \u03c9 \u24db *)\u0b32", "=^._.^= \u222b", "\u0b32(\u2043\u0317\u0300\u0302\u274d\u20d3\u02d1\u032b\u274d\u20d3\u2043\u0320\u0301\u0302)\u0b32", "( .-. )", "( .o.)", "( `\u00b7\u00b4 )", "( \u00b0 \u035c \u0296 \u00b0)", "( \u0361\u00b0 \u035c\u0296 \u0361\u00b0)", "( \u2686 _ \u2686 )", "( \ufe36\ufe3f\ufe36)", "( \uff9f\u30ee\uff9f)", "(\\/)(\u00b0,,,\u00b0)(\\/)", "(\u00ac_\u00ac)", "(\u00ac\u00ba-\u00b0)\u00ac", "(\u00ac\u203f\u00ac)", "(\u00b0\u30ed\u00b0)\u261d", "(\u00b4\u30fb\u03c9\u30fb)\u3063", "(\u00f3 \u00ec_\u00ed)", "(\u0298\u15e9\u0298')", "(\u0298\u203f\u0298)", "(\u033f\u2580\u033f\u2009\u033f\u0139\u032f\u033f\u033f\u2580\u033f \u033f)\u0304", "(\u0361\u00b0 \u035c\u0296 \u0361\u00b0)", "\u1566( \u0361\u00b0 \u035c\u0296 \u0361\u00b0)\u1564", "(\u0ca0_\u0ca0)", "(\u0ca0\u203f\u0ca0)", "(\u0ca0\u2323\u0ca0)", "(\u0ca5_\u0ca5)", "(\u0ca5\ufe4f\u0ca5)", "(\u0e07 \u0360\u00b0 \u035f\u0644\u035c \u0361\u00b0)\u0e07", "(\u0e07 \u0361\u0298 \u035c\u0296 \u0361\u0298)\u0e07", "(\u0e07 \u2022\u0300_\u2022\u0301)\u0e07", "(\u0e07'\u0300-'\u0301)\u0e07", "(\u0e07\u00b0\u0644\u035c\u00b0)\u0e07", "(\u0e07\u2310\u25a1\u0644\u035c\u25a1)\u0e07", "(\u10e6\u02d8\u2323\u02d8\u10e6)", "(\u1d54\u1d25\u1d54)", "(\u2022\u03c9\u2022)", "(\u2022\u25e1\u2022)/", "(\u2299\u03c9\u2299)", "(\u2310\u25a0_\u25a0)", "(\u2500\u203f\u203f\u2500)", "(\u256f\u00b0\u25a1\u00b0\uff09\u256f", "(\u25d5\u203f\u25d5)", "(\u261e\uff9f\u2200\uff9f)\u261e", "(\u274d\u1d25\u274d\u028b)", "(\u3063\u25d5\u203f\u25d5)\u3063", "(\u3065\uff61\u25d5\u203f\u203f\u25d5\uff61)\u3065", "(\u30ce\u0ca0\u76ca\u0ca0)\u30ce", "(\u30ce\u30fb\u2200\u30fb)\u30ce", "(\uff1b\u4e00_\u4e00)", "(\uff40\u25d4 \u03c9 \u25d4\u00b4)", "(\uff61\u25d5\u203f\u203f\u25d5\uff61)", "(\uff89\u25d5\u30ee\u25d5)\uff89", "*<{:\u00ac{D}}}", "=^.^=", "t(-.-t)", "| (\u2022 \u25e1\u2022)|", "~(\u02d8\u25be\u02d8~)", "\u00ac_\u00ac", "\u00af(\u00b0_o)/\u00af", "\u00af\\_(\u30c4)_/\u00af", "\u00b0\u0414\u00b0", "\u0273\u0f3c\u0e88\u0644\u035c\u0e88\u0f3d\u0272", "\u0285\u0295\u2022\u1d25\u2022\u0294\u0283", "\u0295\u00b4\u2022\u1d25\u2022`\u0294", "\u0295\u25c9.\u25c9\u0294", "\u0295\u3147\ud638\u3147\u0294", "\u0295\uff1b\u2022`\u1d25\u2022\u00b4\u0294", "\u0361\u00b0 \u035c\u0296 \u0361\u00b0", "\u03b6\u0f3c\u019f\u0346\u0644\u035c\u019f\u0346\u0f3d\u1d98", "\u0470\u03b6\u0f3c\u1d3c\u0644\u035c\u1d3c\u0f3d\u1d98\u0470", "\u0628_\u0628", "\u0669\u25d4\u032f\u25d4\u06f6", "\u0ca0_\u0ca0", "\u0ca0o\u0ca0", "\u0ca0~\u0ca0", "\u0ca0\u203f\u0ca0", "\u0ca0\u2323\u0ca0", "\u0ca0\u256d\u256e\u0ca0", "\u0cb0_\u0cb0", "\u0e07 \u0360\u00b0 \u0644\u035c \u00b0)\u0e07", "\u0e4f\u032f\u0361\u0e4f\ufd3f", "\u0f3c \u00ba\u00ba\u00ba\u00ba\u00ba\u0644\u035f\u00ba\u00ba\u00ba\u00ba\u00ba \u0f3d", "\u0f3c \u00ba\u0644\u035f\u00ba \u0f3d", "\u0f3c \u00ba\u0644\u035f\u00ba\u0f3c", "\u0f3c \u00ba\u0644\u035f\u00ba\u0f3d", "\u0f3c \u0361\u25a0\u0644\u035c \u0361\u25a0\u0f3d", "\u0f3c \u3064 \u25d5_\u25d5 \u0f3d\u3064", "\u0f3c\u0298\u031a\u0644\u035c\u0298\u031a\u0f3d", "\u10da(\u00b4\u06a1`\u10da)", "\u10da(\u0301\u25c9\u25de\u0c6a\u25df\u25c9\u2035\u10da)", "\u10da(\u0ca0\u76ca\u0ca0\u10da)", "\u113d\u1f41\u020d \u032a\u0151\u1f40\u113f", "\u1511\u2022\ufeaa\u035f\u0360\u2022\u1510", "\u1555( \u141b )\u1557", "\u1559(\u21c0\u2038\u21bc\u2036)\u1557", "\u1559\u0f3c\u0e88\u0644\u035c\u0e88\u0f3d\u1557", "\u1d98 \u1d52\u1d25\u1d52\u1d85", "(\uff89\u0ca5\u76ca\u0ca5\uff09\uff89", "\u2267\u2609_\u2609\u2266", "\u2299\u2583\u2299", "\u2299\ufe4f\u2299", "\u250c( \u0ca0_\u0ca0)\u2518", "\u255a(\u0ca0_\u0ca0)=\u2510", "\u25c9_\u25c9", "\u25d4 \u2323 \u25d4", "\u25d4\u032f\u25d4", "\u25d5\u203f\u21bc", "\u25d5\u203f\u25d5", "\u2609_\u2609", "\u261c(\u2312\u25bd\u2312)\u261e", "\u263c.\u263c", "\u2665\u203f\u2665", "\u2686 _ \u2686", "\u270c(-\u203f-)\u270c", "\u3006(\u30fb\u2200\u30fb\uff20)", "\u30ce( \u00ba _ \u00ba\u30ce)", "\u30ce( \u309c-\u309c\u30ce)", "\u30fd( \u035d\u00b0 \u035c\u0296\u0361\u00b0)\uff89", "\u30fd(`\u0414\u00b4)\uff89", "\u30fd\u0f3c\u00b0 \u035f\u0644\u035c \u0361\u00b0\u0f3d\uff89", "\u30fd\u0f3c\u0298\u031a\u0644\u035c\u0298\u031a\u0f3d\uff89", "\u30fd\u0f3c\u0e88\u0644\u035c\u0e88\u0f3d\u0e07", "\u30fd\u0f3c\u0e88\u0644\u035c\u0e88\u0f3d\uff89", "\u30fd\u0f3c\u1ff8\u0644\u035c\u0e88\u0f3d\uff89", "\u30fe(\u2310\u25a0_\u25a0)\u30ce", "\ua4b0\uff65\u25e1\uff65\u0e51\ua4b1", "\ufd3e\u0361\u0e4f\u032f\u0361\u0e4f\ufd3f", "\uff61\u25d5\u203f\u25d5\uff61", "\u0295\u30ce\u25d4\u03d6\u25d4\u0294\u30ce", "(\u30ce\u0ca0\u76ca\u0ca0)\u30ce\u5f61\u253b\u2501\u253b", "(\u256f\u00b0\u25a1\u00b0\uff09\u256f\ufe35 \u253b\u2501\u253b", "\ua4b0\u2022\u0325\u0325\u0325\u0325\u0325\u0325\u0325 \ufe4f \u2022\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0e51\ua4b1", "\u0ca0_\u0cb0\u0cc3", "(\u0942\u02c3\u0323\u0323\u0323\u0323\u0323\u0323\ufe3f\u02c2\u0323\u0323\u0323\u0323\u0323\u0323 \u0942)", "(\ua228\u0eb6\ua381\ua228\u0eb6)\u06f6\u201d", "(\ua426\u00b0\u1dc4\u0434\u00b0\u1dc5)", "(\u06f6\u0ac8 \u06dc \u1d52\u030c\u25b1\u0e4b\u1d52\u030c )\u06f6\u0ac8=\u035f\u035f\u035e\u035e \u2328", "(*\uff9f\u2699\u0360 \u2200 \u2699\u0360)\uff89\u2763", "\u0669\ua4b0\uff65\u0e31\u03b5\uff65\u0e31 \ua4b1\u06f6", "\u30d8\uff08\u3002\u25a1\u00b0\uff09\u30d8", "\u02d3\u02d3(\u0943\u3000 \u0941 \u0951\ua4b3\u2019)\u0941(\u0943\u2019\ua4b3 \u0951 \u0943\u3000)\u0941\u02d2\u02d2\u02d2", "\ua4b0\u2718\u0414\u2718\u25cd\ua4b1", "\u0aee( \u1d52\u030c\u0ae2\u0f6a\u1d52\u030c\u0ae2 )\u10d0", "\u201c\u03c8(\uff40\u2207\u00b4)\u03c8", "\u0ca0\ufb5b\u0ca0", "(\u0e51>\u1d17<\u0e51)", "(\u06f6\ua228\u0eb6\ua381\ua228\u0eb6 )\u06f6\u02b8\u1d49\u1d43\u02b0\u1d4e", "\u0669(\u2022\u0324\u0300\u1d55\u2022\u0324\u0301\u0e51)\u1d52\u1d4f\u1d4e\u1d4e\u1d4e\u1d4e", "(oT-T)\u5c38", "(\u270c\uff9f\u2200\uff9f)\u261e", "\u0ca5\u203f\u0ca5", "\u0971\u0970\u22c6(\u02f6\u0962\u203e\u1dc4\ufe43\u203e\u1dc5\u02f5\u0962)", "\u252c\u2534\u252c\u2534\u2524 (\u0ca0\u251c\u252c\u2534\u252c\u2534", "( \u02d8 \u00b3\u02d8)\u2665", "\u03a3 (\u0a6d\u0941 \u0eb6\u0a0a \u0eb6)\u0a6d\u0941\u207e\u207e", "(\u2445 \u0963\u2022\u0348\u1d17\u2022\u0348 \u0963)", "\u30fe(\u00b4\uffe2\uff40)\uff89", "(\u2022\u0300o\u2022\u0301)\u0e07", "(\u0e51\u2022\u0952\u0300 \u0eb9\u0952\u2022\u0301\u0e51)", "\u2688\u0e49\u0324\u0361 \u02cc\u032b\u032e \u2688\u0e49\u0324\u0361", "=\u035f\u035f\u035e\u035e =\u035f\u035f\u035e\u035e \uff8d( \u00b4\u0414`)\uff89", "(((\u2579\u0434\u2579;)))", "\u2022\u0300.\u032b\u2022\u0301\u2727", "(\u1d52\u0324\u0311 \u2080\u0311 \u1d52\u0324\u0311)", "\\_(\u0298_\u0298)_/", "\u4e59(\u30c4)\u4e59", "\u4e59(\u306e\u3063\u306e)\u4e59", "\u30fe(\u00af\u2207\uffe3\u0e51)", "\u0f3c;\u00b4\u0f0e\u0eb6 \u06dd \u0f0e\u0eb6\u0f3d", "(\u2580\u033f\u0139\u032f\u2580\u033f \u033f)", "(\uff89\u25d5\u30ee\u25d5)\uff89*:\uff65\uff9f\u2727", "(\uff89\u25d5\u30ee\u25d5)\uff89*:\uff65\uff9f\u2727 \u2727\uff9f\uff65: *\u30fd(\u25d5\u30ee\u25d5\u30fd)", "\u252c\u2534\u252c\u2534\u2524 \u035c\u0296 \u0361\u00b0) \u251c\u252c\u2534\u252c\u2534", "\u252c\u2534\u252c\u2534\u2524(\uff65_\u251c\u252c\u2534\u252c\u2534", "(\u0361 \u0361\u00b0 \u035c \u3064 \u0361\u0361\u00b0)", "( \u0361\u00b0\u256d\u035c\u0296\u256e\u0361\u00b0 )", "(\u2022 \u03b5 \u2022)", "[\u0332\u0305$\u0332\u0305(\u0332\u0305 \u0361\u00b0 \u035c\u0296 \u0361\u00b0\u0332\u0305)\u0332\u0305$\u0332\u0305]", "| (\u2022 \u25e1\u2022)| (\u274d\u1d25\u274d\u028b)", "(\u25d5\u203f\u25d5\u273f)", "(\u256f\u00b0\u25a1\u00b0)\u256f\ufe35 \u029eooq\u01dd\u0254\u0250\u025f", "(\u261e\uff9f\u30ee\uff9f)\u261e \u261c(\uff9f\u30ee\uff9f\u261c)", "(\u3065\uffe3 \u00b3\uffe3)\u3065", "(;\u00b4\u0f0e\u0eb6\u0414\u0f0e\u0eb6`)", "\u266a~ \u1555(\u141b)\u1557", "\u0f3c \u3064 \u0361\u00b0 \u035c\u0296 \u0361\u00b0 \u0f3d\u3064", "\u0f3c \u3064 \u0ca5_\u0ca5 \u0f3d\u3064", "\u0ca5_\u0ca5", "( \u0361\u1d54 \u035c\u0296 \u0361\u1d54 )", "\u30fe(\u2310\u25a0_\u25a0)\u30ce\u266a", "\\ (\u2022\u25e1\u2022) /", "(~\u02d8\u25be\u02d8)~", "(._.) ( l: ) ( .-. ) ( :l ) (._.)", "\u0f3c \u00ba\u0644\u035f\u00ba \u0f3c \u00ba\u0644\u035f\u00ba \u0f3c \u00ba\u0644\u035f\u00ba \u0f3d \u00ba\u0644\u035f\u00ba \u0f3d \u00ba\u0644\u035f\u00ba \u0f3d", "\u253b\u2501\u253b \ufe35\u30fd(`\u0414\u00b4)\uff89\ufe35 \u253b\u2501\u253b", "\u1566(\u00f2_\u00f3\u02c7)\u1564", "(\u2022_\u2022) ( \u2022_\u2022)>\u2310\u25a0-\u25a0 (\u2310\u25a0_\u25a0)", "(\u261e\u0e88\u0644\u035c\u0e88)\u261e", "\u02d9\u2006\u035c\u029f\u02d9", "\u261c(\u02da\u25bd\u02da)\u261e", "(\uff61\u25d5\u203f\u25d5\uff61)", "\uff08\u256f\u00b0\u25a1\u00b0\uff09\u256f\ufe35( .o.)", "(\u3063\u02d8\u06a1\u02d8\u03c2)", "\u252c\u2500\u2500\u252c \u30ce( \u309c-\u309c\u30ce)", "( \u0ca0 \u035c\u0296\u0cb0\u0cc3)", "\u01aa(\u02d8\u2323\u02d8)\u0283", "\u00af\\(\u00b0_o)/\u00af", "\u10da,\u1511\u2022\ufeaa\u035f\u0360\u2022\u1510.\u10da", "(\u00b4\u30fb\u03c9\u30fb`)", "(\u00b0 \u0361 \u035c \u0361\u0296 \u0361 \u00b0)", "\u01b8\u0335\u0321\u04dc\u0335\u0328\u0304\u01b7", "\u0ca0_\u0ca5", "\u0ca0\u203f\u21bc", "(>\u10da)", "(\u273f\u00b4\u203f`)", "\uff61\u309c(\uff40\u0414\u00b4)\u309c\uff61", "\u252c\u2500\u252c\u30ce( \u00ba _ \u00ba\u30ce)", "(\u00f3 \u00ec_\u00ed)=\u00f3\u00f2=(\u00ec_\u00ed \u00f2)", "(/) (\u00b0,,\u00b0) (/)", "\u252c\u2500\u252c \ufe35 /(.\u25a1. \uff09", "^\u032e^", "(>\u4eba<)", "(~_^)", "(\uff65.\u25e4)", ">_>", "(^\u032e^)", "=U", "(\uff61\u2579\u03c9\u2579\uff61)", "\u10da(\u2579\u25e1\u2579\u10da)", "(\u25cf\u00b4\u2313`\u25cf)", "\uff08[\u2202]\u03c9[\u2202]\uff09", "U^\uff74^U", "(\u3012\u00f3\u3012)", "(T^T)", "(\u00edo\u00ec)", "(#\u2022v\u2022#)", "(\u2022^u^\u2022)", "!(^3^)!", "\\(\u00b0\u00b0\\\u201d)", "(\u00b0o\u00b0:)", "(\u00b0 o\u00b0)!", "(o\uff9bo)!!", "(\u00f2\u30ed\u00f3)", "(\u00f2\u76bf\u00f3)", "(\uffe3\uff65_______\uff65\uffe3)", "\u30fe(\u0e51\u2579\u25e1\u2579)\uff89'", "(\u10da\u2579\u25e1\u2579)\u10da", "\uff08\u25de\u2038\u25df\uff09", "(\u273f\u25d6\u25e1\u25d7)", "(\u3000\u00b4\uff65\u203f\uff65\uff40)", "(*\uff40\u76ca\u00b4*)\u304c\u3046", "(\u30fe\uff89'\u0434'o)\uff85\uff68\uff85\uff68", "\u2764(\u25d5\u203f\u25d5\u273f)", "(\u25e1\u203f\u25e1*)\u2764", "(o'\u03c9'o)", "(\uff61\uff65\u02c7_\u02c7\uff65\uff61)\uff91\uff69\u2026", "\u266c\u2669\u266b\u266a\u263b(\u25cf\u00b4\u2200\uff40\u25cf\uff09\u263a\u266a\u266b\u2669\u266c", "(\u273f\u0e3a\u25d5\u0e3a\u203f\u25d5\u0e3a\uff09\uff73\uff8c\uff6f\u2665", "(\u3064\u0414\u2282)\uff74\uff70\uff9d", "(\u3064\u0414\u30fb)\uff81\uff97", "(*\u00b4\u03c9\uff40*)", "(\u272a\u203f\u272a)\u30ce", "\u2572(\uff61\u25d5\u203f\u25d5\uff61)\u2571", "\u10da(^o^\u10da)", "", "\u3035(^ o ^)\u3034", "(\u2022`\u76ca\u00b4\u2022)", "(\ua20d\u203f\ua20d)", "(\u256f\ufe3f\u2570)", "(\u00b4\u2661\u30ee\u2661`)", "( \u0361\u04eb \u00b3 \u0361\u04eb)\u3064\ud83c\udf39", "(\u22d1\u273f\u02d8 \u00b3\u02d8)\u02d8\u03b5\u02d8\u02f6 \u22d0)", "(\u203f!\u203f) \u0505(\u2256\u06a1 \u2256\u0505)", "(\u02f5\u00b4\u2022\u203f\u2022`\u02f5 \u2445)", "(\u256f\u0434\u2570)", "\u2572\u3018\u2665\u203f\u2665\u3019\u3034", "\u255a(\u2033\u2688\u1d17\u2688)\u2557", "\u2534\u252c\u2534|_\u2022`)", "\u256e(\uff9f\uff5e\uff9f;)\u256d", "(\u2565\u256f\u15dd\u2570\u2565)", "\u2220(\u00b4\u2022\uff10\u2022`)\u3034", "( \u25ce \ufe4f \u25ce )", "__( \u0361~ \u035c\u0296 \u0361\u00b0)__", "(\u256f\ufe3f\u2570\uff1b)", "\u30d8(\ua4aa\u0f40\u00b4\ua4aa\u30d8)", "\u2665L\u1d52\u1d5b\u1d49\u1d67\u2092\u1d64(\u2032\u25e1\u2035\u0e51)", "(\u2686_\u2686)", "(\u2688\u1d25\u2688)", "d(\u25ce\u02fd\u25ce)b", "(\u2686 \u032b \u2686)", "(\u0ca5\u15e2\u0ca5)", "\uff08 \u4eba\u00b4\u2022\ua788\u2022`)", "\u03a3d(\u02d8\u203f\u02d8\u0e51)", "( \u2256\u0c6a\u2256 )\u51f8", "\u0d9e", "(\u0e51\ua4a1\u1d17\ua4a1\u0e51)", "( \u2022 )( \u2022 )\u0505(\u203e\u2323\u203e\u0505)", "(\u2044 \u2044\u2022\u2044\u03c9\u2044\u2022\u2044 \u2044)\u2044", "(\u25cd\u0150\u25e1\u0150)\ud83d\udc85\ud83c\udffb", "\u2500=\u2261\u03a3\u1555(\u2a7a\u03c9\u2a79)\u1557", "(\u2236__\u2236)", "___\u3006(\u00b4\u2022\u203f\u203f\u2022`)", "(\u25e3\u25de\u25e2 )", "(-\u0300\u256f\u2313\u2570-\u0301)", "O(\u020f \ufecc \u020f)O", "(\u2688\u208b\u208d\u2688)", "( \u00b4\u2022\u15e8\u2022`)\u3063 \u2661", "(\u3063\u21c0__\u21bc \u03c2)", "(\u25d4_\u25d4)", "/|\\\u23a0\u239d( ;,;)\u23a0\u239d/|(\u25e1 _ \u25e1 \u273f)", "\u1566(\u00b4\u2022\u31c1\u2022`)\u1564", "\u3035(\uff3e\uff10\uff3e)\u3034", "(\u2740\u00b4\u2022\u203f\u2022`\u2740)", "(\ua20do\ua20d\u273f)", "(\u301d^\u03c9^)\u30ce", "\u2652((\u21c0\u256d\u256e\u21bc))\u2652", "(\u00ac \u00ba\u0f40\u00b4\u00b0)\u00ac", "\u25e5(\u25ce\u1d65\u1d65\u25ce)\u25e4", "(\u301c^\u203f ^)\u301c", "(\u273f \ua20d\u203f\ua20d)", "(\uff0f\u2a7e \u03c9\uff3c)", "\uff08//\u25c9_\u25c9//)", "\uff61\u25d5 \u1d17 \u25d5\uff61", "\ud83d\udca4(\uff61-\u203f-\uff61)\ud83d\udca4", "\u273d-(\u2a7e\u2200\u2a7d)/\u273d", "(\u0e07 \u2022`\u23bd\u00b4\u2022)\u0e07", "(:\u02d2 \u2593\u2593", "( i_i)", "\uff3c(^\u203f^ )", "\uff08\u00b4\ufe4f\uff40;\uff09", "( \u02d8\u06a1\u02d8)", "(\u2716_\u2716)", "\u0b18(\u0a6d\u02ca\u1d55\u02cb)\u0a6d", "(\u0482\u203e \u25b5\u203e)\ufe3b\u30c7\u2550\u4e00", "(\u02da\u25bd\u02da\u2019!)/", "\u256d\u2229\u256e\uff08\ufe36_\ufe36\uff09\u256d\u2229\u256e", "(\u2605\u2019v`)\u266a\uff9f+.\uff4f", "\u03de\u03de(\u0e51\u2688 \u2024\u032b \u2688\u0e51)\u2229", "\u15d2\u0df4\u15d5", "_(\u25c9 \u0f40 \u25c9\u300d\u2220)_", "( \u25cf__\u25cf)", "\u0669(\u02ca\u3007\u02cb\u2033)\u0648", "\u2517(\u2a7a\u11ba\u2a79 ;)\u251b", "(\u02d8\u0283\u01aa\u02d8)", "\u0f3c(\u2310\u25a0\u0296\u032f\u25a0)\u0f3d", "(\ua5de _ \ua5de)", "(\u00b4\u2022\u3002\u2022`\uff61)>\u2615", "(\u00af`\u00b7.\u00b7\u00b4\u00af)", "\u2661\u1d57\u02b1\u1d43\u1d51\u1d4f\u0abd( \u0e37\u25bf \u0e37\u0283\u01aa)", "\u2112\u2134\u0475\u212f(\u2665\u03c9\u2665\uff61)", "\u2709\ufe0e(\uff65 \u2323 \uff65\u273f)", "\u2112\u1d52\u1d5b\u1d49\u1d67\u2092\u1d64(\u2022\u0301 \u25e1 \u2022\u0300\u0e51)", "(\uff65U\uff65)\uff89", "(\u00b00\u00b0) *\u02d6\u25db\u207a", "\u14da\u160f\u15e2", "\u25cc\u2445\u20dd\u25cf\u2661\u22c6\u2661\u20dd \u02fb\u02f3\u02ef\u2091\u2661\u20dd\u22c6\u25cf\u2661\u2445\u20dd\u25cc", "(*\uff65\u03c9\uff65)\uff89\u201d\u250ciii\u2510\u2661", "\u2501\u2550\u2605[\u0332\u0305\u0305H\u0332\u0305][\u0332\u0305\u0305A\u0332\u0305][\u0332\u0305\u0305P\u0332\u0305][\u0332\u0305\u0305P\u0332\u0305][\u0332\u0305\u0305Y\u0332\u0305] [\u0332\u0305\u0305B\u0332\u0305][\u0332\u0305\u0305I\u0332\u0305][\u0332\u0305\u0305R\u0332\u0305][\u0332\u0305\u0305T\u0332\u0305][\u0332\u0305\u0305H\u0332\u0305][\u0332\u0305\u0305D\u0332\u0305][\u0332\u0305\u0305A\u0332\u0305][\u0332\u0305\u0305Y\u0332\u0305]\u2605\u2550\u2501", "\u02ed\u0321\u031e(\u25de\u02c3\u11ba\u02c2)\u25de \u208e\u208e=\u035f\u035f\u035e\u035e\u02f3\u02da\u0970\u00b0\u2092\u09f9\u0e50", "-===\u2261\u2261\u2261\u250c( \u035d\u00b0 \u035c\u0296\u0361\u00b0)\u2518", "( \u0361\u00b0 \u035c\u0296 \u0361\u00b0 )\u0e07-]\u2014-", "/\u2572)/\u2572/( \u0361\u2609 \u035c\u0296 \u0361\u2609)/\\\u2571\\\u2571( \u0361\u00b0 \u035c\u0296 \u0361\u00b0) >\u2310\u25a0-\u25a0 (\u2310 \u0361\u25a0 \u035c\u0296 \u0361\u25a0)", "( \u0361\u2606 \u035c\u0296 \u0361\u2606 )", "(\u2741 \u0361\u00b0 \u035c\u0296 \u0361\u00b0)", "( \u0361\u00b0 \u035c\u0296 \u0361\u00b0)----\u2606", "( \u0361\u2686\u0644\u035c\u251c\u252c\u2534\u252c", "(\u2229 \u0361\u00b0 \u035c\u0296 \u0361\u00b0)\u2283\u2501 \u5350", "(\u273f \u0361\u02f5\u00b0 \u035c\u0296 \u0361\u00b0)", "( \u02d8 \u035c\u0296 \u02d8)", "\u273a\u25df( \u0361\u00b0 \u035c\u0296 \u0361\u00b0)\u25de\u273a", "\u30fd( \u035d \u00b0 \u035c\u0296\u0361\u00b0 )\uff89", "( \u0361\u0ca0 \u0296\u032f \u0361\u0ca0)", "\u2606\u00b4;.\u2606(\u0361 \u00b0 \u035c\u0296 \u0361 \u00b0) \u2606*:", "( \u0361\u00b0 \u035c\u0296 \u0361\u00b0)\ufe3b\u2566\u2564\u2500", "( \u0361\u00b0 \u035c\u0296 \u0361\u00b0 )", "( \u0361\u00b0 \u0296\u032f \u0361\u00b0)", "( \u0361\u00b0 \u035c/// \u0361\u00b0)( \u0361\u00b0 \u035c/// \u0361\u00b0\u273f)", "(\u2283$\u2200$)\u2283[\u0332\u0305$\u0332\u0305(\u0332\u0305 \u0361\u00b0 \u035c\u0296 \u0361\u00b0\u0332\u0305 )\u0332\u0305$\u0332\u0305]", "( \u0361~ \u035c\u0296 \u0361\u00b0 )", "( \u0361~ \u035c\u0296 \u0361~ )", "\u2661\u0295( \u0361\u00b0 \u035c\u0296 \u0361\u00b0)\u0294", "(\u0e07\" \u0360\u00b0 \u035f\u0296 \u0361\u00b0)\u0e07", "( \u035d\u05e1\u05bc \u035c\u0296\u0361\u05e1\u05bc )", "(\u30ce\u0361\u00b0 \u035c\u0296 \u0361\u00b0)\u30ce\ufe35\u253b\u253b", "( \u0361\u0ca0 \u0296\u032f \u0361\u0ca0 )", "( \u0360\u00b0 \u035f\u0296 \u0361\u00b0 )", "\u30fe( \u035d\u00b0 \u035c\u0296\u0361 \u00b0)\u30ce\u266a", "(\u0e07\u2022\u15dd\u2022)\u0e07", "\\( \u036f \u035f\u0644\u035c \u036f)/", "\u01b8\u0335\u0321\u04dc\u0335\u0328\u0304\u01b7\u0e05(o\u3268oU)", "\u01ac\u029c\u1d43\u2115\u04a1 \u10e7\u0585\u03cb(u\u03c9u \u4eba)", "( \u0361\u00b0 \u035c\u0296\u251c\u252c\u2534\u252c\u2534", "[\u0332\u0305$\u0332\u0305(\u0332\u0305 \u0361\u00b0 \u035c\u0296 \u0361\u00b0\u0332\u0305 )\u0332\u0305$\u0332\u0305]", "\u30fd/\u2740o \u0644\u035c o\\\uff89", "( \u035d\u00b0 \u035c\u0296\u0361\u00b0)=o==[]::::::::::>", "( \u0361\u2661 \u0644\u035c \u0361\u2661)", "( \u0361\u00b0 \u035c\u0296 \u0361\u00b0,)", "\u4e41(\u1d17 \u035c\u0296 \u1d17)\u310f", "\u255a\u2550( \u0361\u00b0 \u035c\u0296 \u0361\u00b0)\u2550\u255d", "(\u02f5 \u0361\u2609 \u035c\u0296 \u0361\u2609\u02f5)", "(\u0361 \u00b0 \u035c\u0296 \u0361 \u00b0) \u2606*:.\u00a8\u2606\u00b4;.\u2606", "( \u0361\u2310\u25a0 \u035c\u0296 \u0361-\u25a0)", "( \u0361\u00b0 \u035c\u0296 \u0361\u00b0 )\u2584\ufe3b\u253b\u2533\u2550\u4e00", "(\u00b0)\u0295\u273f\u0e51\u2022\u0301 \u1d25 \u2022\u0300\u0e51\u0294", "\u256e(\u256f\u0644\u035c\u2570)\u256d", "\u1566( \u0361\u00b0 \u035c\u0296 \u0361\u00b0) \u1564", "(\u2229 \u0361\u00b0 \u035c\u0296 \u0361\u00b0)\u2283\u2501\u2606\u2500=\u2261\u03a3( \u25d5\u0644\u035c\u25d5)", "( \u0361\u00b0 \u0296\u00b0 )", "\u2514[ \u2609 \u0644\u035f \u2609 ]\u2518", "\u252c\u2500\u2500\u252c \u30ce( \u0361\u00b0 \u0644\u035c \u0361\u00b0\u30ce )", "( \u0361o \u035c\u0296 \u0361o)", "( \u0361\u00b0\u256d\u0296\u256e\u00b0 )", "\u2510(\u00b4\uff65c_\uff65\uff40 ;)\u250c", "(\u2229 \u0361 \u00b0 \u0296 \u0361 \u00b0) \u2283", "\u01aa(\u2022\u0303\u0361\u03b5\u2022\u0303\u0361)\u222b", "(-//3//-)", "( \u035d \u05e1\u05bc \u035c\u0296\u0361\u05e1\u05bc)", "\u4e41\u205e \u25d1 \u035c\u0631 \u25d1 \u205e\u310f", "( \u0361 \u00b0 \u0296\u032f \u0361\u00b0 )", "(\u261e \u0361\u00b0 \u035c\u0296 \u0361\u00b0)\u261e", "(\u203f\u02e0\u203f)", "(\u14c0\u2038\u14c2)\u30ce\u309b", "( \u0361\u0e88 \u035c \u0296 \u0361\u0e88)", "( \u0361 \u0ca0 \u0296\u032f \u0361\u0ca0)", "\uff08 \u0361\u00b0 \u0644\u035c \u0361\u00b0\uff09", "\u0f3c \u3064 \u0361\u00b0 \u035c\u0296 \u0361\u00b0 \u0f3d\u3064", "( \u2018 \u0361 . \u035c \u0296 \u0361 . )", "(\u2661 \u141b )\u4eba( \u141b \u2661)", "\ud83d\udc97(\u02d8 \u03b5 \u02d8\u0283\u01aa\u25cf)", "(\u2a7a_\u2a79)\ud83d\udca8", "\u03c8(\u25e3_\u25e2)\u03c8", "(-`\u0434\u00b4-)", "\u250c\u2229[\u25e3_\u25e2]\u2229\u2510", "/|\\\u0f3c \u0ca0\u76ca\u0ca0 \u0f3d/|\u0e51(\u2022\u0300_\u2022\u0301 )\uff89", "\u2514{`\u2038\u00b4}\u2518", "\uff08\uff1e\u0434\uff1c\uff09", "\u1559[\u229co\u229c]\u1557", "\u261c\u256e(\u033f\u2580\u033f\u0434 \u033f\u2580\u033f \u033f)\u256d\u261e", "\u51f8(\u0ca0_\u0ca0)\u51f8", "\u0e51(`\u043d\u00b4)\u0e51", "\u2229(\ua620_\ua620)\u2229", "\u30fe( \u00d7`\u2313\u00b4\u00d7)\uff89\uff9e", "\u51f8(\uff400\u00b4)\u51f8", "\u256d\u2229\u256e(-_-)\u1557", "\u10da(\u22cb\u00b7\u22cc)\u10da", "\u261c(`o\u00b4)", "(\u2570 \u203f \u256f)", "\u2570(\u22df\ufe4f\u22de)\u256f", "\u1559[\u25e3\u76ca\u25e2]\u256d\u2229\u256e", "\u00af\\_( \u0360\u00b0\ufe4f \u0361\u00b0)_/\u00af", "(\u256c\u0ca0_\u0ca0)\u256c", "(+\u2022\u0300\u0434\u2022\u0301+)", "\u1566(\u14c0\u2038\u14c2)\u1565", "\u3008\ufe36\ufe4f\ufe36\u3009\u256d\u2229\u256e", "(\u22cbo\u22cc)", "\u0295 \u0361\u0ca0 \u2038 \u0361\u0ca0\u0294\ud83d\udca8", "\u141f\\(\u00f2.\u00f3)\u141f{\u2022\u0300\u76ca\u2022\u0301}\u250c\u041f\u2510", "\u0b67(\u03a6_\u03a6)\u0b68", "\ufd3e\u2aa9\u2358\u2aa8\ufd3f\u03c8", "\u10da(\u2022\u0300_\u2022\u0301\u10da)", "(\u24ea\u30d8\u24ea)", "(\uff89\u25a0_\u25a0)\uff89", "\u2570[\u239a\u2038\u239a]\u256f", "\u25e5(\u0e4f\u032f\u0361\u0e4f )\u25e4", "\u1573\u0298\u0305\u2313\u0298\u0305\u1572", "\u15d5(\u2022\u0300\ufe4f\u2022\u0301)\u15d2", "-|\uff40_\u00b4|-", "\u256d(\u039f\u76ca\u039f)\u2510", "\u10da(\u25d5\u2582\u25d5)\u10da", "( \u0361\u00b0 \u096e \u0361\u00b0\u0294", "\u00af\\[\u3112o\u3112]/\u00af", "[\u00ac\uff3f\u00ac]", "(\u3064\u11c2_\u11c2)\u3064", "( \u310f-\u1dc5_-\u1dc4)\u310f", "(\u30c4)", "\u300c\u00b4\u203f`\u300d", "(\u2256\u203f\u2256)", "(.\u2741\u203f\u2741.)", "|\u25d9\u203f\u25d9|", "\u0f3c\u0e88\u0644\u035c\u0e88\u0f3d", "\u0669(\u0277\u25e1\u0277)\u06f6", "\u25ce(\u2022\u203f\u2022)\u25ce", "(\u00b0\u2323\u00b0)", "{\u0ca0\u203f\u21bc}", "\u2554(\u239a\u25e1\u239a)\u255d", "(\u00b4\u2022\u1d25\u2022`)", "(\u2299\u25bd\u2299)", "(^\u1d25^)", "\u300c\u1d54\u1d25\u1d54\u300d", "(\u25d53\u25d5)", "\u25ce[\u25aa\u203f\u25aa]\u25ce", "(-\u032e\u032e\u0303\u25be-\u0303)", "\u0b67(\u2740\u203f\u2740)\u0b68", "(\u2742\u203f\u2742)", "(\uff61\u25d5 \u203f \u25d5\uff61)", "(\u262f \u1d25 \u262f)", "(\u273f\u1d17\u273f)", "(\u2022\u2299\u25e1\u2299\u2022)", "(\u0ca0\u25e1\u0ca0)", "\u1566(\ua620\u1d17\ua620)\u1565", "{\u00b4\u2022\u203f\u2022`}", "(\u25c9\u203f\u25c9)", "(\u0e07\u2022\u1d25\u2022)\u0e07", "(\u00ac\u1d25\u00ac)", "\u3008\ufe36\u3002\ufe36\u3009", "\u2570(-\u203f\u25e6)\u256f", "(\u25c9\u3268\u25c9)", "\u0295\u25e2\u25e1\u25e2\u0294", "\u00af\\_(\ua620\u1d25\ua620)_/\u00af", "(\u2299\u072b\u2299)", "(\u25e1\u072b\u25c9\u273f)", "\uff89(\u2022\u25e1\u2022)\uff89", "\u06f6(\u25e0 \u3002\u25e0)\u06f6", "~(\u25e0\u03c9\u25e0)~", "(\u00f2\u203f\u00f3)", "\u0b67(^\u02fd^)\u0b68", "\u1633\u2256\u1d25\u2256\u1630", "(\u25aa\ua353\u25aa)", "[^\u25e1^]", "\u3010\u3003\u203f\u3003\u3011", "(\u1557\u114c\u028a\u114c)\u1557", "\u1559[\u239a\u25e1\u239a]\u1557", "_/(\u25e5\u25e3\u1d25\u25e2\u25e4)\\_", "((\u25d5) \u203f (\u25d5))", "(\\/(\u00b0\u2423\u00b0)\\/)", "\u3008\u2aa7\u1d17\u2aa6\u3009", "\u30fe(-\u0e34_\u2022\u0e34)>", "\u0e51(\uffeb\u072b\uffe9)\u1557", "(\u25e2_\u25e3)", "(\u256f\u256d\u256e\u2570)", "(\u0ca0\ufe39\u0ca0)", "\u3008\u25d5\ufe4f\u25d5\u3009", "(*\ufe35*)", "(\u25de\u256d\u256e\u25df)", "(\u15d2\u0f0e\ufe35\u0f0e\u15d5)", "(\u0ca5\u256d\u256e\u0ca5)", "(\u00f3\u2038\u00f2)", "(-_-)", "(\u1d54\u256d\u256e\u1d54)", "\u25ce(\u2565\ua788\u2565)\u25ce", "(\u00ac\ufe39\u00ac)", "( \u25d5__\u25d5\u273f)", "\u1559(\u1d17\u2358\u1d17)\u1557", "(\u0e51\u2688 _\u2688\u0e51)", "(\uffeb\u256d\u256e\uffe9)", "(\u0ca5\ufe39\u0ca5)", "\u0ed2(._.)\u096d", "\u00af\\_(\u2716\u256d\u256e\u2716)_/\u00af", "(\ua620_\ua620)", "(\u0e07\u25ce\u2038\u25ce)\u0e07", "[\u2727\ufe3f\u2727]", "\u2299\u3145\u2299", "\u256e(\u25cf\ufe3f\u25cf)\u256d", "\u0295'.'\u0294", "(\u25aa\u00b4\u0434\uff40\u25aa)", "(\u2019\u0e4f\u0436\u0e4f\u2019)", "\u3008\u4e2a_\u4e2a\u3009", "{-\u2019\u0c6a\u2019-}", "_/[\u2a7f _ \u2a80]\\_", "\u3010\uff61\u2022\u0301\ufe3f\u2022\u0300\uff61\u3011", "\u2510(\u2018 \ua788 `)\u250c", "{\u3112\u256d\u256e\u3112}", "\u0e51(\u00b4\u30d8\uff40)\u1557", "\u0b67(\u0ca5\ua788\u0ca5)\u0b68", "\u51f8(\u25e1\ufba7\u25e1)\u51f8", "\u250c(\u25c4_\u25ba)\u2510", "\u30fe( \u2022`\u2313\u00b4\u2022)\uff89\uff9e", "\u0ed2(\u00d7\u032f\ufba7\u00d7)\u096d", "\uff3c(*\uff65\u4edd\uff65*)\uff0f", "(\u0669\u25d4\u032f\u25d4\u06f6)", "\u2229(>_>)\u2229", "\u261c\u256e(\u25a0\u256d\u256e\u25a0)\u256d\u261e", "(\u2229\u2038\u2229)", "\u2570(\u2022\u0301 \ua788 \u2022\u0300)\u256f", "\u0295\u0298\u0305\ua788\u0298\u0305\u0294 ", " \uff61\uff65\uff9f\uff9f\uff65\uff08>\u2313<\uff09\uff65\uff9f\uff9f\uff65\uff61", "( \u0275\u0325\u0325\ufe39\u0275\u0325\u0325)", ".\u00b7\u00b4\u00af`(\u22df_\u22de)\u00b4\u00af`\u00b7.", "(\u0623\u203f\u0623)", "(\u02c3\u0323\u0323\u0325\u2313\u02c2\u0323\u0323\u0325)", "(\u21ab_\u21ac)", "(\u0283\u1d55\u0329\u0329 \u1d55\u0329\u0329)", "\u0f3c\u0ca2\u1d17\u0ca2\u0f3d", "(\u0ca5\u25e0\u0ca5)", "(\u22d1 \u0f40 \u0296\u032f \u0f40)\u22d1", "((\u2565\ufe4f\u2565))", "(-\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u1dc4_-\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u0325\u1dc5 )", "\u0f3c;\u00b4\u0f0e\u0eb6 \u06dd \u0f0e\u0eb6\u0f3d\uff89", "\u2570(\u0275\u0325\u0325 \u02d1\u032b \u0275\u0325\u0325\u2570]", "\uff08\uff1b\u3078\uff1a\uff09", "[\u02da \u02c3\u0323\u0323\u0325\u2313\u02c2\u0323\u0323\u0325]", "(\u2184\u02da \u02c3\u0323\u0323\u0325\u2313\u02c2\u0323\u0323\u0325 )\u2184", "(\u0ca5\u22d3\u0ca5)", "(;\u25dc;)", "\uff65\uff9f\uff65(\u00b4;\ufe35;`)\uff65\uff9f\uff9f", "( T\u25beT)", "( \u0361\u0f0e\u0eb6 \u03b5 \u0361\u0f0e\u0eb6 `\u00b4)", "( \u2018\u0301\u2323\u2019\u0300)", "(\u02d8\u0329\u0329\u03b5\u02d8\u0329\u01aa", "(\u260d\ufe4f\u2070)\uff61", "(\u22d1\u0c20\u0c4d\u0c20\u072b\u0c20\u0c4d\u0c20)\u222b\u22d1", "\u0295\u0ca1\ufe4f\u0ca1\u0294", "\u1555\u2223\u0f0e\u0eb6\u2311\u0f0e\u0eb6\u2223\u1557", "\u2593\u0ca5\u256d\u0296\u256e\u0ca5\u2593", "\u25e0( \u0f40 \u0296\u032f \u0f40)\u25e1", "(\u00b4\u0f0e\u0eb6 \u035c\u0296 \u0f0e\u0eb6 `)\ud83d\udc94", "\u220a(\u0753_\u0753)\u220d", "\u25e0\u25e1\u25e0(\u00b4 \u0361\u0f0e\u0eb6 \u035c\ua788 \u0361\u0f0e\u0eb6 `)\u25e1\u25e0\u25e1", "\u2237\u2237\u2237(\u22df\ufe4f\u22de)\u2237\u2237\u2237", "\ufe35(\uff65_\uff65\u3001)\ufe35", "[\u3064\ufe4f\u2282]", "\uff61\uff65\uff9f\uff9f\uff65(>\u2229<)\u00b0\u00b7\u0e50\uff61", "(\u201d\uff0f\u25b3\uff3c\uff1b\uff09", ".\u00b7\u00b4\u00af`(\u25de\u256d\u256e\u25df)\u00b4\u00af`\u00b7.", "\u00b0\u055e(\u15d2\ufe4f\u15d5)\u055e\u00b0", "\uff61\uff65\uff9f\uff9f\uff65(\u1d55_\u1d55\u0329)\uff65\uff9f\uff9f\uff65\uff61", "\u0e50\u00b7\u00b0\u1573 \u0360\u00b0\u0df4 \u0361\u00b0\u1572\u00b0\u00b7\u0e50", "\u2510(\u00b4\u2312\uff40)\u250c", "(\u2283\uffbe\ufe39\uffbe)\u2283", "(\u0f3c\u229a\ufe4f\u229a)\u0f3d", ".\u00b7\u00b4\u00af`(\u256f\u2312\u2570)\uff65\uff9f\uff9f\uff65\uff61", "\u227c\u00d7\u032f\ufba7\u00d7\u227d", " (\u0e51\u2032\u1d17\u2035\u0e51)\uff29 L\u1d52\u1d5b\u1d49\u1d67\u2092\u1d64\u2661", "\u0295\u2661\u1d25\u2661\u0294 \u01dd\u028col", "\u2570[\u2665\u2038\u2665]\u24db\u24de\u24e5\u24d4", "(\u2665\ufeec\u2665)\u2112\u2134\u0475\u212f", "\ud83d\udc9f\ud83d\udd1c\u2764\ufe0f\ufe0f", "\u13dd\u03c3\u03bd\u0454\u0b90(\u0e51\u00b4\u10da`\u0e51)\u2661", "\u21ab(\u2665\u03c9\u2665)\u21ac\u025eL\u1d52\u1d5b\u1d49\u1d67\u2092\u1d64\u029a", "\u2af7\u2665\u23dd\u31c1\u2665\u2af8", "\u223c(\u2661\u00b0\ud83d\udd3d\u00b0\u2661)\u223d", "(\u03bc_\u03bc)\ud83d\udd1b\u2665", "(\u00b4\u2661\u203f\u2661`)", "\u239d\u2763\u23dd\u2763\u23a0", "[\uff61\u2665\u203f\u2665\uff61]\u30ce", "\u273f(\u2665\u203f\u2665)\u273f", "\u2570(\u0da9\u25e1\u0da9)\u256f", "(\u00b0\u25e1\u00b0\u2661)", "\u261c\u256e(-_\u2665)\u256d\u261e", "\u2665\u2563[\u00b4\u00b0\u203f\u00b0`]\u2560\u2665", "[\u00b0_\u2665]", "(\u2665\ufeaa\u035f\u0360\u2665)", "( \u0361\u2665 \u035c\u0296 \u0361\u2665)", "(\u2661)\u203f(\u2661)", "\u10e6\u2022\u25e1\u2022\u10e6", "(\u0e51\u2032\u1d17\u2035\u0e51)\uff29 L\u1d52\u1d5b\u1d49\u1d67\u2092\u1d64\u2665", "\u0f3c(\u2665\u0644\u035c\u2665)\u0f3d", "(\u2766\u4eba\u2766)", "(\u22c6\u25e1\u22c6)\u2763", "~_\u2765", "\u0669(\ud83d\udc93\u029f\ud83d\udc93)\u06f6", "\u00af\\[\u0398\u03b5\u0398]/\u00af", "\ud83d\udc95(\u00b4\u203f`)\u13a5\u13dd\u1d52\u1d5b\u1d49\u03cb\u0dc6*", "(\u2665\u203f\u2665)\u270c", "\u3008\u2312_\u2312\u3009\ud83c\udf39", "(\u25c9\u203f-)\u273e", "(\u2666\u203f\u2666)\ud83d\udc94", "\u0e51[\u06f5\u2313\u06f5]\u0e51", "(\u00b4\uff61\u2022 \u1d55 \u2022\uff61`) \u2661", "\u0295\u00b4\u2323`\u0283\u01aa\u0294", "\u22f1(\u2661\u203f\u2661)\u22f0", "[\u02d8 \u00b3\u02d8]\ud83d\udc8b", "\u255a\u00bb(\u2661\u00b4\u0c6a`\u2661)\u00ab\u255d", "(\u2726\u203f\u203f\u2726)\ud83d\udc96", "[\u00b4\u2661\u203f\u2661`]", "\u00af\\_(\u00b4 \u0437 `)_/\u00af", "\u2661\uff3c(\u10e6\u02d8\ufe4f\u02d8\u10e6)\uff0f\u2661", "(\u2665\ufeec\u2665\u0283\u01aa)", "(\u00b4\u2022 \u2364 \u2022`)\u2661", "(\uffe3\u25bd\uffe3)", "(\u219d\u00b0\u25cb\u00b0)\u219d", "\u25ea~(\u25e0\ufe4f\u25e0\u274b)", "(\u2609\u2661\u2609)", "(\u25aa\u02d8\u3030\ufe0f\u02d8\u25aa)\u00ac", "(\u00b4\u03b5\uff40 )\u2763 ", "\u0295\u2661\u1d25\u2661\u0294\u24d2\u24e4\u24e3\u24d4", "\u227c\u25e5\u25e3\u072b\u25e2\u25e4\u227d", "\u301d\u0295'.'\u0294\u301e", "\u2248(\u033f\u2580\u033f\u0434 \u033f\u2580\u033f \u033f)\u2248", "\u1573\u0298\u0305\u2313\u0298\u0305\u1572\u24d7\u24de\u24e3", "\u1633\u2022\u0300\u0df4\u2022\u0301\u1630", "(\u3063\u02d8\u06a1\u02d8\u03c2)\ud83d\udc91", "( \u0361\u04eb \u2296 \u0361\u04eb)\u3064\ud83c\udf39", "\u2514|\uff9f \u03b5\uff9f|\u2510\ud83d\udca8", "\u0e05(^\u26ac\ufecc\u26ac^)\u0e05", "\u2554\u00bb[\u239a\u25e1\u239a]\u00ab\u255d", "\u25e9[\u25c8\u203f\u25c8]\u25e9", "\u22d6|\ufe36\u3002\ufe36|\u22d7", "\u256e(-\u0e34_\u2022\u0e34)\u256d", "(\u0e07\uffeb_\uffe9)\u0e07", "\u0669(\u00f3\u2038\u00f2)\u06f6", "\u276e\ua620_\ua620\u276f", "\u02c6(\u2022\u0301 \ua788 \u2022\u0300)\u02c6", "\u2570\u0295\u0298\u0305\ua788\u0298\u0305\u0294\u256f", "\u261c\u256e( \u2022\u0300_\u2022\u0301)\u256d\u261e", "\u1559[\u229co\u229c]\u256d\u2229\u256e", "\u1559[\u25e3\u76ca\u25e2]\u1557", "\u300e\u0e4f\u032f\u0361\u0e4f\u300f", "\u2652\ufe0e{\u0398\u03b5\u0398}\u2652\ufe0e", "\u1559(\u203e\u0300\u25e1\u203e\u0301)\u1557", "\u22d0(\u2256\u1d25\u2256)\u22d1", "\u0295\u2022\u2609\u1d25\u2609\u0294\u01dd\u0287n\u0254", "\u029a(\u03b4\"\u03b4)\u025e", "\u4e41(\u233e\u20dd \u0c6a \u233e\u20dd)\u310f", "(\u25cf\u7676\u25e1\u7676\u25cf)", "\u0e51\ua4b0\uff65\u203f\uff65\ua4b1\u0e51", "\u256e( \u0361\u2022 \u035c\u0296 \u0361\u2022 )\u256d", "[ \u0361\u2a79 \u1d25 \u0361\u2a7a]", "\u0b2a(\u25a3\u1d17\u25a3)\u0a6d", "\ud83d\udcaa[ \u0361\u25c9 \u035c\u0296 \u0361\u25c9]\ud83d\udd1d", "[\u2022\u0324\u0300\u1d55\u2022\u0324\u0301]\u1d52\u1d4f Dear", "( \u0361\u22c6\u25e1 \u0361\u22c6)", "\u0b67(\u0186 \u02d8\u2323\u02d8 C)\u0aed", "(\u0e07\u00b4\u2022 \u25e1 \u2022`)\u0e07", "(\u2022\u203e\u2323\u203e\u2022)\u0648 \u0311\u0311\u2661", "(\u2229\u25c6_\u25c6)\u2283\u2501\u2661", "{\u0e51\u2022\u0bf0\u2022\u0e51}", "(\u273f \u25d5\u203f\u25d5)\u0648 \u0311\u0311\u2661", "\u0295\u203e\u2022\u1d25\u2022\u203e\u0294", "(\u25cd\u00b4\u0c6a`\u25cd)", "\u00af\\|\u25a3\u1d17\u25a3|/\u00af", "(\u3064\u020c\u25e1\u020c)\u3064", "\ua492 \u2765 \u2335 \u0b67", "\u0295\u22c6\u203f\u22c6\u0294", "\u0669\u0295\u2022\u0301\u1d25\u2022\u0300\u0294\u06f6", "(\u310f\u2ab0\u1d25\u2aaf)\u310f", "|\uff0d\u1d17\uff0d| zzZ", "\u1559(\u29bf\u203f\u29bf)\u30ce", "\u207d\u207d[\u2256\u13b2\u2256]\u207e\u207e", "\uff3c\u0295\uffeb\u1d25\uffe9\u0294\uff0f", "(\u2299\u2582\u2299)", "\u2517( \u2686\ud83d\udc45\u2686)\u251b", "( \u2aa9\u2687\u2aa8)", "(^\u2180\u1d25\u2180^)", "\u0f3c(\ua27a\u1d25\ua27a)\u0f3d ", "(\ua20d .\u032e \ua20d)", "\u2724\u21d0(\u00b4\uff5e\uff40\u30fe)", "\u22d0(^^;\u22d0]", "\uff08/\ud83d\udd3d\uff3c)", "(\uff61\u25a3\u25a3\uff61)", "(\u27e4\u1d17\u27e5*)", "\u30fd(\u25aa\u02d9\u2200\u02d9\u25aa)\u3064", "(* \u2207 \u1d17 \u2207)", "(\uff89\u76ca\u3003)", "+(*\uff89\uff6a\uff89)+", "(*'\u222a\uff40*)", "(\u3003\uff40\u25aa\u00b4)\u3003", "\u22d0 \u0361\u22c4 \u03c9 \u0361\u22c4 \u22d1", "(\u2312 \u22cf \u2312*]", "(\u2184\u3003\u2207\u3003)\u2184", "\u208d\u208d(*\u25aa\u1d17\u25aa)\u207e\u207e", "[*`\u2180\u00b4\u30fe]", "(\u00b4\u2200\uff40)*", "(\u2018\u2200\u2019*)", "(^\u2207^\uff1b)", "(\u3003\u22ce\u3003)*", "\u22b0(\u014e\u22d3\u014e)\u22b1", "\u22c9(\u229a.\u032e \u2299)\u22ca", "(\u25a3\u203f\u21bc)", "[\u239a\u1d17\u239a]", "\u3008\u3004_\u3004\"\u3009", "\u2517(\u2299_\u2609)\u2518", "\u300a\u25ce_\u25ce\u300b", "(o_O\")(\"O_o)", "\u02c1\u0b35 \u02db\u033c \u0b35\u02c0", "\u2510(\u27e4_\u27e5)\u250c", "(\u00b4\u1d17\uff40\u2018)", "d\u3016o_0\u3017b", "\u0b67( \u02f5 \u00b0 \u3007 \u00b0 \u02f5 )\u0b68", "(\u25ce\ufe39\u25ce;)", "\u300c\u2299_\u2299\u300d", "\u3014\u00b4\uff65\ufe39\uff65`\u3015", "(\u25cb\u00b4 \u2015 `)\u309e", "\u01aa(\u201c\u2570\ufe39 \u256f)\u0283", "\u1555( \u256f\u00b0\u25a0\u00b0 )\u1557", "\u4e41(\u229c\ufe3f\u229c)\u310f", "\u30fd(\u26ac_\u26ac)\u30ce", "(\u2a00__\u29bf)", "\u3018\u309c\u3002\u309c\u3019", "(\u2181\u25e0\u2181)", "\u02c1\uff1f\u25e0\uff1f\u02c0", "(\u229a_\u2609)", "\u3008\u02ca\u3037\u02cb\u3009", "\u3014\u2018-\u2019*\u3015", "(=\uff40.\u00b4 =)", "(\u25c8 \u0434\uff9f\u25c8)", "(\u2299 \u30d8\u229a)", "\u2514| \u2235 |\u2518", "(\u2660\ufe39\u2666)", "(\u25d1 \u25cb\u25d1)", "\u3018\u0c20 _ \u0c20\u3019", "\u3008\u2022\u0301 \u2368 \u2022\u0300\u3009", "\u250c|*\uff9f-\uff9f|\u2518", "\u301a\u053e_\u053e\u301b", "\u3008*\uff9f\uff6a\uff9f*\u3009", "(\u0ca0_\u0cb0\u0cc3)", "(\u05e1\u05bc_\u05e1\u05bc)", "\u03b5(\u00b4\u00b0\u25cf_\u00b0\uff40)\u0437", "\u300a\u2040\u2299\ufe4f\u2609\u2040\u300b", " (\u00b4\u2022_\u2022`)", "(\u02f5\u25e6\u30d8\u25e6\u02f5)", "(\u00f3\ufe39\u00f2 \uff61)", "\u256e(\u256f \ufe35\u2570 )\u256d", "\u3033\u300c\u2446\u300d_", "( \ua4a6\u0eb4\u3030 \ua4a6\u0eb4 )", "\u3010\u2686 _ \u2686\u3011", "(* \u02c7\u0414 \u02c7 )", "\u3008\u25de\u2038\u25df`\u3009", "\u3014/\u03c9\uff3c\u3015", "\u2282(\u00b4\u0414\uff40\u2282)", "\u2510(^\u223e ^ \uff1b)\u250c", "(; \u22c4\u0414\u22c4)", "((\uff9f\uff9f\u0434\uff57\u0434\uff9f\uff9f ))", "\u22d3(\u0424\u2038\u0424) \u22d3", "\u3035(;\u2a79 \u0414 \u2a7a)\u3034", "\u300a\u30fb\u2313\u30fb\uff40\u300b", "\u256e(\u25cd \u00b4\u2022__\u2022`)\u256d", "(\ua5de\u020f \ua5de;)", "() \u2022`o\u00b4\u2022 ()", "(,,\u2aa7\u256d\u2229\u256e\u2aa6-,,)", "\u037c(\u2a36\u11ba\u2a36)\u037d", "m(\ua620\u256d\u256e\ua620)m", "( \u0361\u00b0 \ua788\u0296 \u0361\u00b0)", "\u2570\u0298\u76ca\u0298\u256f", "\u3034___\u3035", "(\uff65:\u2256\u23bd\u2256:\uff65)", "W(-\u2a35\u2358\u2a34-)w"]
--------------------------------------------------------------------------------
/assets/images.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codwizer/ReModules/da54c7fa072599010bac1359b075d4ef48f5bcfe/assets/images.png
--------------------------------------------------------------------------------
/assets/items.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codwizer/ReModules/da54c7fa072599010bac1359b075d4ef48f5bcfe/assets/items.png
--------------------------------------------------------------------------------
/assets/popular_items.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codwizer/ReModules/da54c7fa072599010bac1359b075d4ef48f5bcfe/assets/popular_items.psd
--------------------------------------------------------------------------------
/avatar/report.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Codwizer/ReModules/da54c7fa072599010bac1359b075d4ef48f5bcfe/avatar/report.png
--------------------------------------------------------------------------------
/face.py:
--------------------------------------------------------------------------------
1 | # ---------------------------------------------------------------------------------
2 | # Name: face
3 | # Description: Random face
4 | # Author: @hikka_mods
5 | # ---------------------------------------------------------------------------------
6 |
7 | # 🔒 Licensed under the GNU AGPLv3
8 | # 🌐 https://www.gnu.org/licenses/agpl-3.0.html
9 |
10 | # meta developer: @hikka_mods
11 | # scope: Api face
12 | # scope: Api face 0.0.1
13 | # requires: requests
14 | # ---------------------------------------------------------------------------------
15 | from hikkatl.types import Message
16 | import requests
17 |
18 | from .. import loader, utils
19 |
20 | __version__ = (1, 0, 0)
21 |
22 |
23 | @loader.tds
24 | class face(loader.Module):
25 | """random face"""
26 |
27 | strings = {
28 | "name": "face",
29 | "loading": (
30 | "{}
"
34 | ),
35 | }
36 |
37 | strings_ru = {
38 | "loading": (
39 | "{}
"
43 | ),
44 | }
45 |
46 | async def rfacecmd(self, message: Message):
47 | """random kaomoji"""
48 | await utils.answer(message, self.strings("loading"))
49 | response = requests.get("https://vsecoder.dev/api/faces")
50 | random_face = response.json()["data"]
51 | await utils.answer(message, self.strings("random_face").format(random_face))
52 |
--------------------------------------------------------------------------------
/full.txt:
--------------------------------------------------------------------------------
1 | VirusTotal
2 | Music
3 | search
4 | animals
5 | SafetyMod
6 | TelegramStatusCodes
7 | Text_Sticker
8 | jacques
9 | CheckSpamBan
10 | InlineCoin
11 | Memes
12 | AutofarmCookies
13 | AniLibria
14 | PastebinAPI
15 | BirthdayTime
16 | shortener
17 | Article
18 | InlineButton
19 | face
20 | numbersapi
21 | hikkahost
22 | globalrestrict
23 | Text2File
24 | Kittens
25 | FakeWallet
--------------------------------------------------------------------------------
/globalrestrict.py:
--------------------------------------------------------------------------------
1 | # █ █ ▀ █▄▀ ▄▀█ █▀█ ▀
2 | # █▀█ █ █ █ █▀█ █▀▄ █
3 | # © Copyright 2022
4 | # https://t.me/hikariatama
5 | #
6 | # 🔒 Licensed under the GNU AGPLv3
7 | # 🌐 https://www.gnu.org/licenses/agpl-3.0.html
8 |
9 | # Some functions took from Hikarichat by Hikariatama
10 |
11 | # ---------------------------------------------------------------------------------
12 | # Name: GlobalRestrict
13 | # Description: Global mutation or ban
14 | # Author: @hikka_mods
15 | # ---------------------------------------------------------------------------------
16 |
17 | # 🔒 Licensed under the GNU AGPLv3
18 | # 🌐 https://www.gnu.org/licenses/agpl-3.0.html
19 |
20 | # meta developer: @hikka_mods
21 | # scope: Api GlobalRestrict
22 | # scope: Api GlobalRestrict 0.0.1
23 | # ---------------------------------------------------------------------------------
24 |
25 | import re
26 | import time
27 | import typing
28 |
29 | from telethon.tl.functions.channels import (
30 | JoinChannelRequest,
31 | EditAdminRequest,
32 | EditBannedRequest,
33 | GetFullChannelRequest,
34 | GetParticipantRequest,
35 | InviteToChannelRequest,
36 | )
37 | from telethon.tl.functions.messages import EditChatDefaultBannedRightsRequest
38 | from telethon.tl.types import (
39 | Channel,
40 | ChannelParticipantCreator,
41 | Chat,
42 | ChatAdminRights,
43 | ChatBannedRights,
44 | DocumentAttributeAnimated,
45 | Message,
46 | MessageEntitySpoiler,
47 | MessageMediaUnsupported,
48 | User,
49 | UserStatusOnline,
50 | )
51 |
52 | from telethon.tl.types import (
53 | Channel,
54 | Chat,
55 | Message,
56 | User,
57 | )
58 |
59 | from .. import loader, utils
60 |
61 | __version__ = (1, 0, 0)
62 |
63 | BANNED_RIGHTS = {
64 | "view_messages": False,
65 | "send_messages": False,
66 | "send_media": False,
67 | "send_stickers": False,
68 | "send_gifs": False,
69 | "send_games": False,
70 | "send_inline": False,
71 | "send_polls": False,
72 | "change_info": False,
73 | "invite_users": False,
74 | }
75 |
76 | MUTES_RIGHTS = {
77 | "view_messages": True,
78 | "send_messages": False,
79 | "send_media": False,
80 | "send_stickers": False,
81 | "send_gifs": False,
82 | "send_games": False,
83 | "send_inline": False,
84 | "send_polls": False,
85 | "change_info": False,
86 | "invite_users": False,
87 | }
88 |
89 |
90 | def get_full_name(user: typing.Union[User, Channel]) -> str:
91 | return utils.escape_html(
92 | user.title
93 | if isinstance(user, Channel)
94 | else (
95 | f"{user.first_name} "
96 | + (user.last_name if getattr(user, "last_name", False) else "")
97 | )
98 | ).strip()
99 |
100 |
101 | @loader.tds
102 | class GlobalRestrict(loader.Module):
103 | """Global mutation or ban"""
104 |
105 | strings = {
106 | "name": "GlobalRestrict",
107 | "no_reason": "Not specified",
108 | "args": (
109 | "{server_id}
\n"
79 | "{id}
\n"
80 | "{status}
\n"
81 | "{end_dates}
| {days_end} days
\n\n"
82 | "{cpu_percent} %
\n"
83 | "{memory} / {max_ram} MB
{ram_percent} %"
84 | ),
85 | "logs": (
86 | "{server_id}
\n"
101 | "{id}
\n"
102 | "{status}
\n"
103 | "{end_dates}
| {days_end} дней
\n\n"
104 | "{cpu_percent} %
\n"
105 | "{memory} / {max_ram} MB
{ram_percent} %"
106 | ),
107 | "logs": (
108 | ".help Жаконизатор
"}
30 |
31 | strings_ru = {"usage": "Напиши .help Жаконизатор
"}
32 |
33 | def __init__(self):
34 | self.name = self.strings["name"]
35 | self._me = None
36 | self._ratelimit = []
37 | self.config = loader.ModuleConfig(
38 | loader.ConfigValue(
39 | "font",
40 | "https://github.com/Codwizer/ReModules/blob/main/assets/OpenSans-Light.ttf?raw=true",
41 | lambda: "добавьте ссылку на нужный вам шрифт",
42 | ),
43 | loader.ConfigValue(
44 | "location",
45 | "center",
46 | "Можно указать left, right или center",
47 | validator=loader.validators.Choice(["left", "right", "center"]),
48 | ),
49 | )
50 |
51 | async def ionicmd(self, message):
52 | """<реплай на сообщение/свой текст>"""
53 | ufr = requests.get(self.config["font"]).content
54 | f = ufr
55 |
56 | reply = await message.get_reply_message()
57 | args = utils.get_args_raw(message)
58 | if not args:
59 | if not reply:
60 | await utils.answer(message, self.strings("usage", message))
61 | return
62 | else:
63 | txt = reply.raw_text
64 | else:
65 | txt = utils.get_args_raw(message)
66 | pic = requests.get(
67 | "https://raw.githubusercontent.com/Codwizer/ReModules/main/assets/IMG_20231128_152538.jpg"
68 | )
69 | pic.raw.decode_content = True
70 | img = Image.open(io.BytesIO(pic.content)).convert("RGB")
71 |
72 | W, H = img.size
73 | text = "\n".join(wrap(txt, 19))
74 | t = text + "\n"
75 | draw = ImageDraw.Draw(img)
76 | font = ImageFont.truetype(io.BytesIO(f), 32, encoding="UTF-8")
77 | w, h = draw.multiline_textsize(t, font=font)
78 | imtext = Image.new("RGBA", (w + 10, h + 10), (0, 0, 0, 0))
79 | draw = ImageDraw.Draw(imtext)
80 | draw.multiline_text(
81 | (10, 10), t, (0, 0, 0), font=font, align=self.config["location"]
82 | )
83 | imtext.thumbnail((350, 195))
84 | w, h = 350, 195
85 | img.paste(imtext, (10, 10), imtext)
86 | out = io.BytesIO()
87 | out.name = "hikka_mods.jpg"
88 | img.save(out)
89 | out.seek(0)
90 | await message.client.send_file(message.to_id, out, reply_to=reply)
91 | await message.delete()
92 |
--------------------------------------------------------------------------------
/numbersapi.py:
--------------------------------------------------------------------------------
1 | # ---------------------------------------------------------------------------------
2 | # Name: NumbersAPI
3 | # Description: Many interesting facts about numbers. Idea @FurryMods
4 | # Author: @hikka_mods
5 | # ---------------------------------------------------------------------------------
6 |
7 | # 🔒 Licensed under the GNU AGPLv3
8 | # 🌐 https://www.gnu.org/licenses/agpl-3.0.html
9 |
10 | # meta developer: @hikka_mods
11 | # scope: NumbersAPI
12 | # scope: NumbersAPI 0.0.1
13 | # ---------------------------------------------------------------------------------
14 |
15 | from hikkatl.types import Message
16 | from .. import loader, utils
17 | import requests
18 | from datetime import datetime
19 |
20 | __version__ = (1, 0, 0)
21 |
22 |
23 | def get_fact_about_number(number, fact_type):
24 | url = f"http://numbersapi.com/{number}/{fact_type}"
25 | response = requests.get(url)
26 |
27 | if response.status_code == 200:
28 | return response.text
29 | else:
30 | return "Извините, не удалось получить факт."
31 |
32 |
33 | def get_fact_about_date(month, day):
34 | date_str = datetime.now().replace(month=month, day=day).strftime("%m/%d")
35 | url = f"http://numbersapi.com/{date_str}/date"
36 | response = requests.get(url)
37 |
38 | if response.status_code == 200:
39 | return response.text
40 | else:
41 | return "Извините, не удалось получить факт."
42 |
43 |
44 | @loader.tds
45 | class NumbersAPI(loader.Module):
46 | """Many interesting facts about numbers. idea @FurryMods"""
47 |
48 | strings = {"name": "NumbersAPI"}
49 |
50 | async def numcmd(self, message: Message):
51 | """Дает интересный факт про число или дату\nНапример: .num 10 math или .num 01.01 date"""
52 | args = utils.get_args_raw(message).split()
53 |
54 | if len(args) >= 2:
55 | num_or_date = args[0]
56 | fact_type = args[1]
57 | if "." in num_or_date:
58 | month, day = map(int, num_or_date.split("."))
59 | result = get_fact_about_date(month, day)
60 | else:
61 | number = int(num_or_date)
62 | result = get_fact_about_number(number, fact_type)
63 | await utils.answer(message, f"{result}")
64 | else:
65 | await utils.answer(message, "Использование: .num <число или дата> <тип>")
66 |
--------------------------------------------------------------------------------
/profile.py:
--------------------------------------------------------------------------------
1 | # Name: Profile
2 | # Description: Module for changing profile data.
3 | # Author: @nervousmods
4 | # Commands:
5 | # .name | .about | .user
6 | # ---------------------------------------------------------------------------------
7 | # 🔒 Licensed under the GNU GPLv3
8 | # 🌐 https://www.gnu.org/licenses/agpl-3.0.html
9 | # ⚠️ All modules is not scam and absolutely safe.
10 | # 👤 https://t.me/smlgwy
11 | # -----------------------------------------------------------------------------------
12 | # meta developer: @nervousmods, @hikka_mods
13 | # scope: hikka_only
14 | # scope: hikka_min 1.5.0
15 | # -----------------------------------------------------------------------------------
16 |
17 | __version__ = (1, 0, 1)
18 |
19 | from telethon.errors.rpcerrorlist import UsernameOccupiedError
20 | from telethon.tl.functions.account import (
21 | UpdateProfileRequest,
22 | UpdateUsernameRequest,
23 | )
24 | from .. import loader, utils
25 |
26 |
27 | @loader.tds
28 | class ProfileEditorMod(loader.Module):
29 | """This module can change your Telegram profile."""
30 |
31 | strings = {
32 | "name": "Profile",
33 | "error_format": "Incorrect format of args. Try again.",
34 | "done_name": "The new name was successfully unstalled!",
35 | "done_bio": "The new bio was successfully unstaled!",
36 | "done_username": "The new username was succesfully installed!",
37 | "error_occupied": "The new username is already occupied!",
38 | }
39 |
40 | strings_ru = {
41 | "error_format": "Неправильный формат аргумента. Попробуйте еще раз.",
42 | "done_name": "Новое имя успешно настроено!",
43 | "done_bio": "Новое био успешно настроено!",
44 | "done_username": "Новое имя пользователя успешно установлено!",
45 | "error_occupied": "Новое имя пользователя уже занято!",
46 | }
47 |
48 | async def namecmd(self, message):
49 | """- for change your first/second name."""
50 | args = utils.get_args_raw(message).split("/")
51 |
52 | if len(args) == 0:
53 | return await utils.answer(message, self.strings("error_format"))
54 | if len(args) == 1:
55 | firstname = args[0]
56 | lastname = " "
57 | elif len(args) == 2:
58 | firstname = args[0]
59 | lastname = args[1]
60 | await message.client(
61 | UpdateProfileRequest(first_name=firstname, last_name=lastname)
62 | )
63 | await utils.answer(message, self.strings("done_name"))
64 |
65 | async def aboutcmd(self, message):
66 | """- for change your bio."""
67 | args = utils.get_args_raw(message)
68 | if not args:
69 | return await utils.answer(message, self.strings("error_format"))
70 | await message.client(UpdateProfileRequest(about=args))
71 | await utils.answer(message, self.strings("done_bio"))
72 |
73 | async def usercmd(self, message):
74 | """- for change your username. Enter value without "@"."""
75 | args = utils.get_args_raw(message)
76 | if not args:
77 | return await utils.answer(message, self.strings("error_format"))
78 | try:
79 | await message.client(UpdateUsernameRequest(args))
80 | await utils.answer(message, self.strings("done_username"))
81 | except UsernameOccupiedError:
82 | await utils.answer(message, self.strings("error_occupied"))
83 |
--------------------------------------------------------------------------------
/search.py:
--------------------------------------------------------------------------------
1 | # ---------------------------------------------------------------------------------
2 | # Name: Search
3 | # Description: Search for your question on the Internet
4 | # Author: @hikka_mods
5 | # ---------------------------------------------------------------------------------
6 |
7 | # 🔒 Licensed under the GNU AGPLv3
8 | # 🌐 https://www.gnu.org/licenses/agpl-3.0.html
9 |
10 | # meta developer: @hikka_mods
11 | # scope: Api Search
12 | # scope: Api Search 0.0.1
13 | # ---------------------------------------------------------------------------------
14 |
15 | from telethon.tl.types import Message # type: ignore
16 | from urllib.parse import quote
17 |
18 | from .. import loader, utils
19 | from ..inline.types import InlineCall, InlineQuery
20 |
21 | __version__ = (1, 0, 0)
22 |
23 |
24 | @loader.tds
25 | class Search(loader.Module):
26 | """Поисковик"""
27 |
28 | strings = {
29 | "name": "Search",
30 | "search": "{c}
",
31 | }
32 |
33 | strings_ru = {
34 | "no_api": "{c}
",
37 | }
38 |
39 | def __init__(self):
40 | self.config = loader.ModuleConfig(
41 | loader.ConfigValue(
42 | "token",
43 | None,
44 | lambda: "Need a token with https://app.bitly.com/settings/api/",
45 | validator=loader.validators.Hidden(),
46 | )
47 | )
48 |
49 | async def shortencmd(self, message: Message):
50 | """сократить ссылку через bit.ly"""
51 | if self.config["token"] is None:
52 | await utils.answer(message, self.strings("no_api"))
53 | return
54 |
55 | s = pyshorteners.Shortener(api_key=self.config["token"])
56 | args = utils.get_args_raw(message)
57 | await utils.answer(
58 | message, self.strings("shortencmd").format(c=s.bitly.short(args))
59 | )
60 |
61 | async def statclcmd(self, message: Message):
62 | """посмотреть статистику ссылки через bit.ly"""
63 | if self.config["token"] is None:
64 | await utils.answer(message, self.strings("no_api"))
65 | return
66 |
67 | s = pyshorteners.Shortener(api_key=self.config["token"])
68 | args = utils.get_args_raw(message)
69 | await utils.answer(
70 | message, self.strings("statclcmd").format(c=s.bitly.total_clicks(args))
71 | )
72 |
--------------------------------------------------------------------------------