from pyrogram import Client, filters @Client.on_message(filters.su_cmd("about")) async def on_about(c, m): lang = m._lang await m.reply(lang.about_userlixo_text, disable_web_page_preview=True)
from userlixo.handlers.bot.settings import on_settings_u from pyrogram import Client, filters @Client.on_message(filters.su_cmd('settings')) async def on_settings_txt(c, m): await on_settings_u(c, m)
# SPDX-License-Identifier: MIT # Copyright (c) 2018-2022 Amano Team from datetime import datetime from pyrogram import Client, filters from pyrogram.enums import ChatAction from pyrogram.types import Message @Client.on_message(filters.su_cmd("ping")) async def onping(c: Client, m: Message): before = datetime.now() await c.send_chat_action(chat_id=m.chat.id, action=ChatAction.TYPING) after = datetime.now() diff_ms = (after - before).microseconds / 1000 keyb = [[("🏓", "ping")]] await m.reply(f"<b>Pong!</b> <code>{diff_ms}</code><code>ms</code>", keyb)
from userlixo.handlers.bot.help import on_help_u from pyrogram import Client, filters @Client.on_message(filters.su_cmd("help")) async def on_help_m(c, m): await on_help_u(c, m)
from userlixo.handlers.bot.start import on_start_u from pyrogram import Client, filters @Client.on_message(filters.su_cmd('start')) async def on_start_txt(c, m): await on_start_u(c, m)
from userlixo.handlers.bot.help import on_help_u from pyrogram import Client, filters @Client.on_message(filters.su_cmd('help')) async def on_help_m(c, m): await on_help_u(c, m)
from pyrogram import Client, filters from userlixo.config import plugins from userlixo.utils import shell_exec import re, os import platform import pyromod, pyrogram @Client.on_message(filters.su_cmd('info')) async def on_info(c, m): lang = m._lang act = m.edit if await filters.me(c, m) else m.reply pid = os.getpid() uptime = (await shell_exec("ps -o pid,etime --no-headers -p " + str(pid) + " | awk '{print $2}' "))[0] uname = (await shell_exec('uname -mons'))[0] local_version = int((await shell_exec('git rev-list --count HEAD'))[0]) remote_version = int((await shell_exec( """curl -s -I -k 'https://api.github.com/repos/AmanoTeam/UserLixo/commits?per_page=1' | grep -oE '&page=[0-9]+>; rel="last"' | grep -oE '[0-9]+' """ ))[0]) python_version = platform.python_version() pyrogram_version = pyrogram.__version__ pyromod_version = pyromod.__version__ ul_status = lang.info_upgradable_to( version=remote_version ) if local_version < remote_version else lang.info_lastest user_plugins = len([x for x in plugins['user']])
import asyncio import html import os import re from userlixo.config import sudoers from pyrogram import Client, filters from userlixo.utils import shell_exec @Client.on_message( filters.su_cmd(r"(?P<command>cmd|sh)\s+(?P<code>.+)", flags=re.S)) async def on_cmd_user(c, m): await cmd(c, m) async def cmd(c, m): lang = m._lang act = m.edit if await filters.me(c, m) else m.reply code = m.matches[0]["code"] command = m.matches[0]["command"] result, process = await shell_exec(code) output = result or lang.executed_cmd if len(output) > 4096: with open("output.txt", "w") as f: f.write(output) await m.reply_document("output.txt", quote=True) return os.remove("output.txt")
# SPDX-License-Identifier: MIT # Copyright (c) 2018-2022 Amano Team from pyrogram import Client, filters from pyrogram.types import Message from userlixo.handlers.bot.upgrade import on_upgrade_u @Client.on_message(filters.su_cmd("upgrade")) async def on_upgrade_m(c: Client, m: Message): await on_upgrade_u(c, m)
from pyrogram import Client, filters from userlixo.handlers.bot.list_commands import on_list_commands_u @Client.on_message(filters.su_cmd('(commands|cmds)')) async def on_list_commands_txt(c, m): m.matches = [{"page": 0}] await on_list_commands_u(c, m)
from pyrogram import Client, filters @Client.on_message(filters.su_cmd('about')) async def on_about(c, m): lang = m._lang await m.reply(lang.about_userlixo_text, disable_web_page_preview=True)
from userlixo.handlers.bot.settings import on_settings_u from pyrogram import Client, filters @Client.on_message(filters.su_cmd("settings")) async def on_settings_txt(c, m): await on_settings_u(c, m)
from userlixo.handlers.bot.restart import on_restart_u from pyrogram import Client, filters @Client.on_message(filters.sudoers & filters.su_cmd("restart")) async def on_restart(c, m): await on_restart_u(c, m)
import asyncio import html import io import os import re import traceback from userlixo.config import sudoers, heroku_client, heroku_app from contextlib import redirect_stdout from pyrogram import Client, filters @Client.on_message(filters.su_cmd(r"(?P<cmd>ex(ec)?)\s+(?P<code>.+)", flags=re.S)) async def on_exec_user(c, m): await execs(c,m) async def execs(c, m): lang = m._lang act = m.edit if await filters.me(c,m) else m.reply strio = io.StringIO() cmd = m.matches[0]['cmd'] code = m.matches[0]['code'] # Shortcuts that will be available for the user code reply = m.reply_to_message user = (reply or m).from_user chat = m.chat code_function = "async def __ex(c, m, reply, user, chat, heroku, app):" for line in code.split('\n'): code_function += f"\n {line}" exec(code_function)
# SPDX-License-Identifier: MIT # Copyright (c) 2018-2022 Amano Team from pyrogram import Client, filters from pyrogram.types import Message from userlixo.handlers.bot.start import on_start_u @Client.on_message(filters.su_cmd("start")) async def on_start_txt(c: Client, m: Message): await on_start_u(c, m)
from userlixo.handlers.bot.restart import on_restart_u from pyrogram import Client, filters @Client.on_message(filters.sudoers & filters.su_cmd('restart')) async def on_restart(c, m): await on_restart_u(c, m)
# SPDX-License-Identifier: MIT # Copyright (c) 2018-2022 Amano Team import os import platform import pyrogram from pyrogram import Client, filters from pyrogram.types import Message from userlixo.config import plugins from userlixo.utils.misc import shell_exec @Client.on_message(filters.su_cmd("info")) async def on_info(c: Client, m: Message): lang = m._lang act = m.edit if await filters.me(c, m) else m.reply pid = os.getpid() uptime = (await shell_exec("ps -o pid,etime --no-headers -p " + str(pid) + " | awk '{print $2}' "))[0] uname = (await shell_exec("uname -mons"))[0] local_version = int((await shell_exec("git rev-list --count HEAD"))[0]) remote_version = int((await shell_exec( """curl -s -I -k 'https://api.github.com/repos/AmanoTeam/UserLixo/commits?per_page=1' | grep -oE '&page=[0-9]+>; rel="last"' | grep -oE '[0-9]+' """ ))[0]) python_version = platform.python_version() pyrogram_version = pyrogram.__version__
from userlixo.handlers.bot.upgrade import on_upgrade_u from pyrogram import Client, filters @Client.on_message(filters.su_cmd('upgrade')) async def on_upgrade_m(c, m): await on_upgrade_u(c, m)
from datetime import datetime from pyrogram import Client, filters from userlixo.config import heroku_client, heroku_app from userlixo.database import Config from userlixo.utils import heroku_self_deploy import os @Client.on_message(filters.su_cmd("deploy")) async def on_deploy(c, m): lang = m._lang act = m.edit if await filters.me(c, m) else m.reply if "DYNO" not in os.environ: return await act(lang.not_running_in_heroku) msg = await act(lang.deploying_on_heroku) await Config.filter(key="restarting_alert").delete() message_id = msg.message_id chat_id = msg.chat.username if msg.chat.username else msg.chat.id await Config.create( **{ "key": "restarting_alert", "value": f"{message_id}|{chat_id}|{datetime.now().timestamp()}|restart", } ) heroku_self_deploy(heroku_client, heroku_app)
from userlixo.utils import read_plugin_info import hashlib import importlib import json import os import re @Client.on_message(filters.sudoers & filters.document & filters.private & ~filters.me) async def on_plugin_file(c, m): if m.document.file_name.endswith(".py"): await on_add_plugin_u(c, m) @Client.on_message(filters.su_cmd("plugins$")) async def on_list_plugins_txt(c, m): await on_list_plugins_u(c, m) @Client.on_message(filters.reply & filters.su_cmd("(plugin )?(?P<action>add|rm|\+|-)")) async def on_plugin_action(c, m): lang = m._lang action = m.matches[0]["action"] if action in ["+", "add"]: if await filters.me(c, m): await m.delete() return await on_add_plugin_u(c, m) # remove plugin on .plugin rm
import asyncio import html import io import os import re import traceback from userlixo.config import sudoers, heroku_client, heroku_app from contextlib import redirect_stdout from pyrogram import Client, filters @Client.on_message( filters.su_cmd(r"(?P<cmd>ex(ec)?)\s+(?P<code>.+)", flags=re.S)) async def on_exec_user(c, m): await execs(c, m) async def execs(c, m): lang = m._lang act = m.edit if await filters.me(c, m) else m.reply strio = io.StringIO() cmd = m.matches[0]["cmd"] code = m.matches[0]["code"] # Shortcuts that will be available for the user code reply = m.reply_to_message user = (reply or m).from_user chat = m.chat code_function = "async def __ex(c, m, reply, user, chat, heroku, app):"
from pyrogram import Client, filters from userlixo.handlers.bot.list_commands import on_list_commands_u @Client.on_message(filters.su_cmd("(commands|cmds)")) async def on_list_commands_txt(c, m): m.matches = [{"page": 0}] await on_list_commands_u(c, m)
from datetime import datetime from pyrogram import Client, filters from pyromod.helpers import ikb @Client.on_message(filters.su_cmd('ping')) async def onping(c, m): before = datetime.now() await m.reply_chat_action('typing') after = datetime.now() diff_ms = (after-before).microseconds / 1000 keyb = [ [('🏓', 'ping')] ] await m.reply(f'<b>Pong!</b> <code>{diff_ms}</code><code>ms</code>', keyb)
from userlixo.utils import read_plugin_info import hashlib import importlib import json import os import re @Client.on_message(filters.sudoers & filters.document & filters.private & ~filters.me) async def on_plugin_file(c, m): if m.document.file_name.endswith('.py'): await on_add_plugin_u(c, m) @Client.on_message(filters.su_cmd('plugins$')) async def on_list_plugins_txt(c, m): await on_list_plugins_u(c, m) @Client.on_message(filters.reply & filters.su_cmd('(plugin )?(?P<action>add|rm|\+|-)')) async def on_plugin_action(c, m): lang = m._lang action = m.matches[0]['action'] if action in ['+', 'add']: if await filters.me(c, m): await m.delete() return await on_add_plugin_u(c, m) # remove plugin on .plugin rm