mirror of
https://github.com/MuRuLOSE/limoka.git
synced 2026-06-18 23:24:18 +02:00
Commited backup
This commit is contained in:
262
GD-alt/mm-hikka-mods/miyahost.py
Normal file
262
GD-alt/mm-hikka-mods/miyahost.py
Normal file
@@ -0,0 +1,262 @@
|
||||
# `7MMM. ,MMF'`7MMM. ,MMF' `7MMM. ,MMF' `7MM
|
||||
# MMMb dPMM MMMb dPMM MMMb dPMM MM
|
||||
# M YM ,M MM M YM ,M MM M YM ,M MM ,pW"Wq. ,M""bMM ,pP"Ybd
|
||||
# M Mb M' MM M Mb M' MM M Mb M' MM 6W' `Wb ,AP MM 8I `"
|
||||
# M YM.P' MM M YM.P' MM mmmmm M YM.P' MM 8M M8 8MI MM `YMMMa.
|
||||
# M `YM' MM M `YM' MM M `YM' MM YA. ,A9 `Mb MM L. I8
|
||||
# .JML. `' .JMML..JML. `' .JMML. .JML. `' .JMML.`Ybmd9' `Wbmd"MML.M9mmmP'
|
||||
#
|
||||
# (c) 2023 — licensed under Apache 2.0 — https://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
# meta pic: https://img.icons8.com/stickers/344/block.png
|
||||
# meta developer: @mm_mods
|
||||
|
||||
__version__ = "1.2"
|
||||
|
||||
import asyncio
|
||||
from hikka import loader, utils
|
||||
import telethon as tt
|
||||
from telethon.tl.types import Message
|
||||
import logging
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@loader.tds
|
||||
class MiyaHostMod(loader.Module):
|
||||
"""Module to manage your miyahost."""
|
||||
strings = {
|
||||
"name": "miyahost.manager",
|
||||
"error": "😵 <b>Error</b> ({}): {}",
|
||||
"success": "{} <b>Your container was successfully {}!</b> ({})",
|
||||
"err.NoAuthKeyProvided": "no auth key provided",
|
||||
"err.NoDBRecord": "you're not registered, not subscribed, or don't have a container",
|
||||
"err.Verlangsamt": "you're being rate limited. Try again at {}",
|
||||
"err.Banned": "you're banned from using this service",
|
||||
"err.InvalidAuthKey": "invalid auth key",
|
||||
"err.AuthNotEnabled": "API auth is not enabled",
|
||||
"err.APIServerDown": "API server isn't responding or down",
|
||||
"userinfo": "👤 <b>User</b> <code>{}</code>:\nSubscribed? {}\nBanned? {}",
|
||||
"err.NoUser": "no such user",
|
||||
"state.started": "started",
|
||||
"state.stopped": "stopped",
|
||||
"state.restarted": "restarted"
|
||||
}
|
||||
|
||||
strings_ru = {
|
||||
"name": "miyahost.manager",
|
||||
"error": "😵 <b>Ошибка</b> ({}): {}",
|
||||
"success": "{} <b> Контейнер успешно {}!</b> ({})",
|
||||
"err.NoAuthKeyProvided": "не указан ключ авторизации",
|
||||
"err.NoDBRecord": "Вы не зарегистрированы, не подписаны или не имеете контейнера",
|
||||
"err.Verlangsamt": "Вы ограничены в использовании этого сервиса. Попробуйте снова в {}",
|
||||
"err.Banned": "Вы забанены",
|
||||
"err.InvalidAuthKey": "Неверный ключ авторизации",
|
||||
"err.AuthNotEnabled": "Авторизация по API не включена",
|
||||
"err.APIServerDown": "API сервер не отвечает или недоступен",
|
||||
"userinfo": "👤 <b>Пользователь</b> <code>{}</code>:\nПодписан? {}\nЗабанен? {}",
|
||||
"err.NoUser": "Нет такого пользователя",
|
||||
"_cls_doc": "Модуль для управлением вашим miyahost.",
|
||||
"_cmd_doc_mhinfo": "Отображает информацию о пользователе miyahost.",
|
||||
"_cmd_doc_mhstart": "Запускает ваш контейнер.",
|
||||
"_cmd_doc_mhstop": "Останавливает ваш контейнер.",
|
||||
"_cmd_doc_mhrestart": "Перезапускает ваш контейнер.",
|
||||
"state.started": "запущен",
|
||||
"state.stopped": "остановлен",
|
||||
"state.restarted": "перезапущен"
|
||||
}
|
||||
|
||||
strings_de = {
|
||||
"name": "miyahost.manager",
|
||||
"error": "😵 <b>Fehler</b> ({}): {}",
|
||||
"success": "{} <b>Ihren Kontainer würde erfolgreich {}!</b> ({})",
|
||||
"err.NoAuthKeyProvided": "kein Authentifizierungsschlüssel angegeben",
|
||||
"err.NoDBRecord": "Sie sind nicht registriert, nicht abonniert oder haben keinen Container",
|
||||
"err.Verlangsamt": "Sie werden aufgrund von Rate-Limits eingeschränkt. Versuchen Sie es erneut um {}",
|
||||
"err.Banned": "Sie sind von der Nutzung dieses Dienstes ausgeschlossen",
|
||||
"err.InvalidAuthKey": "ungültiger Authentifizierungsschlüssel",
|
||||
"err.AuthNotEnabled": "API-Authentifizierung ist nicht aktiviert",
|
||||
"err.APIServerDown": "API-Server antwortet nicht oder ist nicht erreichbar",
|
||||
"userinfo": "👤 <b>Nutzer</b> <code>{}</code>:\nAbonniert? {}\nGebannt? {}",
|
||||
"err.NoUser": "kein solcher Nutzer",
|
||||
"_cls_doc": "Modul zum Ihren miyahost beheren.",
|
||||
"_cmd_doc_mhinfo": "Zeigt Informationen über den miyahost-Benutzer an.",
|
||||
"_cmd_doc_mhstart": "Startet Ihren Container.",
|
||||
"_cmd_doc_mhstop": "Stoppt Ihren Container.",
|
||||
"_cmd_doc_mhrestart": "Startet Ihren Container neu.",
|
||||
"state.started": "gestarted",
|
||||
"state.stopped": "gestoppt",
|
||||
"state.restarted": "neugestartet"
|
||||
}
|
||||
|
||||
def __init__(self):
|
||||
self.config = loader.ModuleConfig(
|
||||
loader.ConfigValue(
|
||||
"auth_key",
|
||||
'NULL',
|
||||
lambda: "Basic auth key for miyahost API — get it via @miyahostbot using /hhttpauth",
|
||||
validator=loader.validators.Hidden(loader.validators.RegExp(r'[a-zA-Z0-9]+|NULL'))
|
||||
),
|
||||
loader.ConfigValue(
|
||||
"mock_id",
|
||||
'NULL',
|
||||
lambda: "Enter another person's ID to rule it's container having it's auth key",
|
||||
validator=loader.validators.RegExp(r'[0-9]+|NULL')
|
||||
)
|
||||
)
|
||||
|
||||
async def mhinfocmd(self, m: Message):
|
||||
"""Get info about miyahost user."""
|
||||
if not utils.get_args_raw(m) and not m.is_reply:
|
||||
user = m.from_id
|
||||
elif utils.get_args_raw(m) and not m.is_reply:
|
||||
user = utils.get_args_raw(m)
|
||||
else:
|
||||
user = (await m.get_reply_message()).from_id
|
||||
|
||||
try:
|
||||
import requests
|
||||
req = requests.get(f"http://129.151.220.181:41154/mhapi/{user}").json()
|
||||
except Exception as e:
|
||||
return await utils.answer(m, self.strings("error").format(500, self.strings('err.APIServerDown')))
|
||||
|
||||
if list(req.keys())[0] == "error":
|
||||
req = req["error"]
|
||||
if req[0] == 404:
|
||||
return await utils.answer(m, self.strings("error").format(404, self.strings("err.NoUser")))
|
||||
|
||||
else:
|
||||
req = req["OK"]
|
||||
useri = req[1]
|
||||
subscr = f"✅ ({useri['datumbis']})" if useri["activated"] else "❌"
|
||||
banned = "✅" if useri["banned"] else "❌"
|
||||
return await utils.answer(m, self.strings("userinfo").format(user, subscr, banned))
|
||||
|
||||
async def mhstartcmd(self, m: Message):
|
||||
"""Start miyahost container."""
|
||||
mock = False
|
||||
user = m.from_id
|
||||
if self.config["auth_key"] == 'NULL':
|
||||
return await utils.answer(m, self.strings("error").format(403, self.strings("err.NoAuthKeyProvided")))
|
||||
if self.config['mock_id'] != 'NULL':
|
||||
user = self.config['mock_id']
|
||||
mock = True
|
||||
|
||||
try:
|
||||
import requests
|
||||
req = requests.get(
|
||||
f"http://129.151.220.181:41154/mhapi/controls/start/{user}",
|
||||
params={"basic_key": self.config["auth_key"]}
|
||||
).json()
|
||||
except Exception as e:
|
||||
return await utils.answer(m, self.strings("error").format(500, self.strings('err.APIServerDown')))
|
||||
|
||||
if list(req.keys())[0] == "error":
|
||||
req = req["error"]
|
||||
if req[0] == 404:
|
||||
logging.error(f'Failed with request to http://129.151.220.181:41154/mhapi/controls/start/{user}?basic_key={self.config["auth_key"]}, got {req[0]}')
|
||||
return await utils.answer(m, self.strings("error").format(404, self.strings("err.NoDBRecord")))
|
||||
elif req[0] == 401:
|
||||
logging.error(f'Failed with request to http://129.151.220.181:41154/mhapi/controls/start/{user}?basic_key={self.config["auth_key"]}, got {req[0]}')
|
||||
return await utils.answer(m, self.strings("error").format(401, self.strings("err.InvalidAuthKey")))
|
||||
elif req[0] == 429:
|
||||
logging.error(f'Failed with request to http://129.151.220.181:41154/mhapi/controls/start/{user}?basic_key={self.config["auth_key"]}, got {req[0]}')
|
||||
return await utils.answer(m, self.strings("error").format(429, self.strings("err.Verlangsamt").format(req[2])))
|
||||
elif req[0] == 403 and "banned" in req[1]:
|
||||
logging.error(f'Failed with request to http://129.151.220.181:41154/mhapi/controls/start/{user}?basic_key={self.config["auth_key"]}, got {req[0]}')
|
||||
return await utils.answer(m, self.strings("error").format(403, self.strings("err.Banned")))
|
||||
elif req[0] == 403:
|
||||
logging.error(f'Failed with request to http://129.151.220.181:41154/mhapi/controls/start/{user}?basic_key={self.config["auth_key"]}, got {req[0]}')
|
||||
return await utils.answer(m, self.strings("error").format(403, self.strings("err.AuthNotEnabled")))
|
||||
|
||||
else:
|
||||
emoji = '(⚫) ▶' if mock else '▶'
|
||||
return await utils.answer(m, self.strings("success").format(emoji, self.strings("state.started"), user))
|
||||
|
||||
async def mhstopcmd(self, m: Message):
|
||||
"""Stop miyahost container."""
|
||||
user = m.from_id
|
||||
mock = False
|
||||
if self.config["auth_key"] == 'NULL':
|
||||
return await utils.answer(m, self.strings("error").format(403, self.strings("err.NoAuthKeyProvided")))
|
||||
if self.config['mock_id'] != 'NULL':
|
||||
user = self.config['mock_id']
|
||||
mock = True
|
||||
|
||||
emoji = '(⚫) ⏸' if mock else '⏸'
|
||||
await utils.answer(m, self.strings("success").format(emoji, self.strings("state.stopped"), user))
|
||||
|
||||
try:
|
||||
import requests
|
||||
req = requests.get(
|
||||
f"http://129.151.220.181:41154/mhapi/controls/stop/{user}",
|
||||
params={"basic_key": self.config["auth_key"]}
|
||||
).json()
|
||||
except Exception as e:
|
||||
return await utils.answer(m, self.strings("error").format(500, self.strings('err.APIServerDown')))
|
||||
|
||||
if list(req.keys())[0] == "error":
|
||||
req = req["error"]
|
||||
if req[0] == 404:
|
||||
logging.error(f'Failed with request to http://129.151.220.181:41154/mhapi/controls/start/{user}?basic_key={self.config["auth_key"]}, got {req[0]}')
|
||||
return await utils.answer(m, self.strings("error").format(404, self.strings("err.NoDBRecord")))
|
||||
elif req[0] == 401:
|
||||
logging.error(f'Failed with request to http://129.151.220.181:41154/mhapi/controls/start/{user}?basic_key={self.config["auth_key"]}, got {req[0]}')
|
||||
return await utils.answer(m, self.strings("error").format(401, self.strings("err.InvalidAuthKey")))
|
||||
elif req[0] == 429:
|
||||
logging.error(f'Failed with request to http://129.151.220.181:41154/mhapi/controls/start/{user}?basic_key={self.config["auth_key"]}, got {req[0]}')
|
||||
return await utils.answer(m, self.strings("error").format(429, self.strings("err.Verlangsamt").format(
|
||||
req[2])))
|
||||
elif req[0] == 403 and "banned" in req[1]:
|
||||
logging.error(f'Failed with request to http://129.151.220.181:41154/mhapi/controls/start/{user}?basic_key={self.config["auth_key"]}, got {req[0]}')
|
||||
return await utils.answer(m, self.strings("error").format(403, self.strings("err.Banned")))
|
||||
elif req[0] == 403:
|
||||
logging.error(f'Failed with request to http://129.151.220.181:41154/mhapi/controls/start/{user}?basic_key={self.config["auth_key"]}, got {req[0]}')
|
||||
return await utils.answer(m, self.strings("error").format(403, self.strings("err.AuthNotEnabled")))
|
||||
|
||||
else:
|
||||
return
|
||||
|
||||
async def mhrestartcmd(self, m: Message):
|
||||
"""Restart miyahost container."""
|
||||
user = m.from_id
|
||||
mock = False
|
||||
if self.config["auth_key"] == 'NULL':
|
||||
return await utils.answer(m, self.strings("error").format(403, self.strings("err.NoAuthKeyProvided")))
|
||||
if self.config['mock_id'] != 'NULL':
|
||||
user = self.config['mock_id']
|
||||
mock = True
|
||||
|
||||
emoji = '(⚫) 🔁' if mock else '🔁'
|
||||
await utils.answer(m, self.strings("success").format(emoji, self.strings("state.restarted"), user))
|
||||
|
||||
try:
|
||||
import requests
|
||||
req = requests.get(
|
||||
f"http://129.151.220.181:41154/mhapi/controls/restart/{user}",
|
||||
params={"basic_key": self.config["auth_key"]}
|
||||
).json()
|
||||
except Exception as e:
|
||||
return await utils.answer(m, self.strings("error").format(500, self.strings('err.APIServerDown')))
|
||||
|
||||
if list(req.keys())[0] == "error":
|
||||
req = req["error"]
|
||||
if req[0] == 404:
|
||||
logging.error(f'Failed with request to http://129.151.220.181:41154/mhapi/controls/start/{user}?basic_key={self.config["auth_key"]}, got {req[0]}')
|
||||
return await utils.answer(m, self.strings("error").format(404, self.strings("err.NoDBRecord")))
|
||||
elif req[0] == 401:
|
||||
logging.error(f'Failed with request to http://129.151.220.181:41154/mhapi/controls/start/{user}?basic_key={self.config["auth_key"]}, got {req[0]}')
|
||||
return await utils.answer(m, self.strings("error").format(401, self.strings("err.InvalidAuthKey")))
|
||||
elif req[0] == 429:
|
||||
logging.error(f'Failed with request to http://129.151.220.181:41154/mhapi/controls/start/{user}?basic_key={self.config["auth_key"]}, got {req[0]}')
|
||||
return await utils.answer(m, self.strings("error").format(429, self.strings("err.Verlangsamt").format(
|
||||
req[2])))
|
||||
elif req[0] == 403 and "banned" in req[1]:
|
||||
logging.error(f'Failed with request to http://129.151.220.181:41154/mhapi/controls/start/{user}?basic_key={self.config["auth_key"]}, got {req[0]}')
|
||||
return await utils.answer(m, self.strings("error").format(403, self.strings("err.Banned")))
|
||||
elif req[0] == 403:
|
||||
logging.error(f'Failed with request to http://129.151.220.181:41154/mhapi/controls/start/{user}?basic_key={self.config["auth_key"]}, got {req[0]}')
|
||||
return await utils.answer(m, self.strings("error").format(403, self.strings("err.AuthNotEnabled")))
|
||||
|
||||
else:
|
||||
return
|
||||
Reference in New Issue
Block a user