Beispiel #1
0
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)
Beispiel #2
0
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)
Beispiel #3
0
# 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)
Beispiel #4
0
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)
Beispiel #5
0
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)
Beispiel #6
0
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)
Beispiel #7
0
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']])
Beispiel #8
0
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")
Beispiel #9
0
# 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)
Beispiel #10
0
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)
Beispiel #11
0
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)
Beispiel #12
0
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)
Beispiel #13
0
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)
Beispiel #14
0
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)
Beispiel #15
0
# 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)
Beispiel #16
0
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)
Beispiel #17
0
# 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__
Beispiel #18
0
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)
Beispiel #19
0
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)
Beispiel #20
0
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
Beispiel #21
0
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):"
Beispiel #22
0
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)
Beispiel #23
0
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)
Beispiel #24
0
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