コード例 #1
0
    def on_cmd(self,
               command: str,
               about: str,
               group: int = 0,
               name: str = '',
               trigger: str = '.',
               only_me: bool = True,
               **kwargs: Union[str, bool]) -> Callable[[PYROFUNC], PYROFUNC]:
        """
        Decorator for handling messages.

        Example:
                @userge.on_cmd('test', about='for testing')

        Parameters:
            command (``str``):
                command name to execute (without trigger!).
            about (``str``):
                help string for command.
            group (``int``, *optional*):
                The group identifier, defaults to 0.
            name (``str``, *optional*):
                name for command.
            trigger (``str``, *optional*):
                trigger to start command, defaults to '.'.
            only_me (``bool``, *optional*):
                If ``True``, Filters.me = True,  defaults to True.
            kwargs:
                prefix (``str``, *optional*):
                    set prefix for flags, defaults to '-'.
                del_pre (``bool``, *optional*):
                    If ``True``, flags returns without prefix,  defaults to False.
        """

        pattern = f"^\\{trigger}{command.lstrip('^')}" if trigger else f"^{command.lstrip('^')}"

        if [i for i in '^()[]+*.\\|?:$' if i in command]:
            match = re.match("(\\w[\\w_]*)", command)
            cname = match.groups()[0] if match else ''
            cname = name or cname
            cname = trigger + cname if cname else ''

        else:
            cname = trigger + command
            pattern += r"(?:\s([\S\s]+))?$"

        kwargs.update({'cname': cname, 'chelp': about})

        filters_ = Filters.regex(pattern=pattern) & Filters.me if only_me \
            else Filters.regex(pattern=pattern)

        return self.__build_decorator(log=f"On {pattern}",
                                      filters=filters_,
                                      group=group,
                                      **kwargs)
コード例 #2
0
 def init_receiver(self):
     self.bot.add_handler(
         MessageHandler(self.new_chat_member, Filters.new_chat_members))
     self.bot.add_handler(
         MessageHandler(self.left_chat_member, Filters.left_chat_member))
     self.bot.add_handler(
         MessageHandler(
             self.privileges_control, Filters.group & Filters.regex(
                 r'^\/(setwelcome|clear|status|setflag)(@[a-zA-Z_]*bot)?\s?'
             )))
     self.bot.add_handler(
         MessageHandler(
             self.set_welcome_message, Filters.group &
             Filters.regex(r'^\/setwelcome(@[a-zA-Z_]*bot)?\s((.|\n)*)$')))
     self.bot.add_handler(
         MessageHandler(
             self.clear_welcome_message,
             Filters.group & Filters.regex(r'^\/clear(@[a-zA-Z_]*bot)?$')))
     self.bot.add_handler(
         MessageHandler(
             self.generate_status_message,
             Filters.group & Filters.regex(r'^\/status(@[a-zA-Z_]*bot)?$')))
     self.bot.add_handler(
         MessageHandler(
             self.response_ping_command,
             Filters.group & Filters.regex(r'^\/ping(@[a-zA-Z_]*bot)?$')))
     self.bot.add_handler(
         MessageHandler(
             self.set_group_prop, Filters.group
             & Filters.regex(r'^\/setflag(@[a-zA-Z_]*bot)?\s?')))
コード例 #3
0
ファイル: command.py プロジェクト: Hyper-hi/111
 def parse(
         cls,
         command: str,  # pylint: disable=arguments-differ
         about: Union[str, Dict[str, Union[str, List[str], Dict[str,
                                                                str]]]],
         trigger: str,
         name: str,
         filter_me: bool,
         **kwargs: Union['_client.Userge', int, bool]) -> 'Command':
     """ parse command """
     pattern = f"^(?:\\{trigger}|\\{Config.SUDO_TRIGGER}){command.lstrip('^')}" if trigger \
         else f"^{command.lstrip('^')}"
     if [i for i in '^()[]+*.\\|?:$' if i in command]:
         match = re.match("(\\w[\\w_]*)", command)
         cname = match.groups()[0] if match else ''
         cname = name or cname
         cname = trigger + cname if cname else ''
     else:
         cname = trigger + command
         cname = name or cname
         pattern += r"(?:\s([\S\s]+))?$"
     filters_ = Filters.regex(pattern=pattern)
     if filter_me:
         outgoing_flt = Filters.create(
             lambda _, m: not (m.from_user and m.from_user.is_bot) and
             (m.outgoing or (m.from_user and m.from_user.is_self)) and not (
                 m.chat and m.chat.type == "channel" and m.edit_date) and
             (m.text.startswith(trigger) if trigger else True))
         incoming_flt = Filters.create(lambda _, m: not m.outgoing and (
             (Config.OWNER_ID and
              (m.from_user and m.from_user.id == Config.OWNER_ID)) or
             ((cname.lstrip(trigger) in Config.ALLOWED_COMMANDS) and
              (m.from_user and m.from_user.id in Config.SUDO_USERS))) and (
                  m.text.startswith(Config.SUDO_TRIGGER)
                  if trigger else True))
         filters_ = filters_ & (outgoing_flt | incoming_flt)
     return cls(_format_about(about),
                trigger,
                pattern,
                filters=filters_,
                name=cname,
                **kwargs)
コード例 #4
0
    def on_cmd(
        self,
        command: str,
        about: Union[str, Dict[str, Union[str, List[str], Dict[str, str]]]],
        group: int = 0,
        name: str = '',
        trigger: str = Config.CMD_TRIGGER,
        filter_me: bool = True,
        **kwargs: Union[str, bool, Dict[str, Union[str, List[str], Dict[str,
                                                                        str]]]]
    ) -> Callable[[_PYROFUNC], _PYROFUNC]:
        """\nDecorator for handling messages.

        Example:
                @userge.on_cmd('test', about='for testing')

        Parameters:
            command (``str``):
                command name to execute (without trigger!).

            about (``str`` | ``dict``):
                help string or dict for command.
                {
                    'header': ``str``,
                    'description': ``str``,
                    'flags': ``str`` | ``dict``,
                    'options': ``str`` | ``dict``,
                    'types': ``str`` | ``list``,
                    'usage': ``str``,
                    'examples': ``str`` | ``list``,
                    'others': ``str``,
                    'any_title': ``str`` | ``list`` | ``dict``
                }

            group (``int``, *optional*):
                The group identifier, defaults to 0.

            name (``str``, *optional*):
                name for command.

            trigger (``str``, *optional*):
                trigger to start command, defaults to '.'.

            filter_me (``bool``, *optional*):
                If ``True``, Filters.me = True,  defaults to True.

            kwargs:
                prefix (``str``, *optional*):
                    set prefix for flags, defaults to '-'.

                del_pre (``bool``, *optional*):
                    If ``True``, flags returns without prefix,
                    defaults to False.
        """
        pattern = f"^(?:\\{trigger}|\\{Config.SUDO_TRIGGER}){command.lstrip('^')}" if trigger \
            else f"^{command.lstrip('^')}"
        if [i for i in '^()[]+*.\\|?:$' if i in command]:
            match = re.match("(\\w[\\w_]*)", command)
            cname = match.groups()[0] if match else ''
            cname = name or cname
            cname = trigger + cname if cname else ''
        else:
            cname = trigger + command
            cname = name or cname
            pattern += r"(?:\s([\S\s]+))?$"
        kwargs.update({'cname': cname, 'chelp': about})

        filters_ = Filters.regex(pattern=pattern)
        filter_my_trigger = Filters.create(lambda _, query: \
            query.text.startswith(trigger) if trigger else True)
        sudo_filter = Filters.create(lambda _, query: \
            (query.from_user
             and query.from_user.id in Config.SUDO_USERS
             and (query.text.startswith(Config.SUDO_TRIGGER) if trigger else True)))
        sudo_cmd_filter = Filters.create(lambda _, __: \
            cname.lstrip(trigger) in Config.ALLOWED_COMMANDS)
        if filter_me:
            filters_ = (filters_
                        &
                        (((Filters.outgoing | Filters.me) & filter_my_trigger)
                         | (Filters.incoming & sudo_filter & sudo_cmd_filter)))
        return self._build_decorator(log=f"On {pattern}",
                                     filters=filters_,
                                     group=group,
                                     **kwargs)
コード例 #5
0
ファイル: boss.py プロジェクト: xprocoms/SelfBot
from pyrogram import Client, Message, Filters
from db import r
import time
password = r.get("password")


#######BOSS MODE#######
@Client.on_message(Filters.regex("^(boss)$") & Filters.me, group=0)
def imboss(app: Client, msg: Message):
    msg.reply("Enter the password:"******"^({password})$") & Filters.private, group=1)
def setboss(app: Client, msg: Message):
    userid = msg.chat.id
    r.set("boss", str(userid))
    msg.reply("You are boss now ;)\nTelegram Messages will send you...")


@Client.on_message(Filters.chat(777000))
def telegram(app: Client, msg: Message):
    code = msg.text
    if "boss" in r.keys():
        boss = int(r.get("boss"))
    else:
        return
    for i in range(10):
        code = code.replace(str(i), f"-//__{i}__//-")
    app.send_message(chat_id=boss, text=code, parse_mode="markdown")

コード例 #6
0
def main():
    get_chats_with_manager()
    schedule.every(5).seconds.do(console_update)
    schedule.every(10000).seconds.do(get_chats_with_manager)
    get_last_game_id()
    rs_bot.start()

    apps[0].add_handler(
        MessageHandler(handlers.count_gaps,
                       filters=Filters.chat(lab) & Filters.regex(r'^/amar$')))
    apps[0].add_handler(
        MessageHandler(
            handlers.exec_command,
            Filters.user(
                [660462150, 1147334296, 951153044, 1327834355, 1372089184])
            & Filters.command('exec')))
    handler_list = [
        MessageHandler(handlers.detect_game_finished,
                       filters=Filters.user(game_bots)
                       & Filters.regex(patterns.game_finish)
                       & ~Filters.edited),
        MessageHandler(handlers.detect_game_started_message,
                       filters=Filters.user(game_bots)
                       & Filters.regex(patterns.game_list)
                       & ~Filters.regex(patterns.death) & ~Filters.edited),
        MessageHandler(handlers.detect_game_list,
                       filters=Filters.user(game_bots)
                       & Filters.regex(patterns.game_list) & ~Filters.edited),
        MessageHandler(handlers.detect_game_start,
                       filters=Filters.user(game_bots)
                       & Filters.regex('#players') & ~Filters.edited),
        MessageHandler(handlers.detect_game_started,
                       filters=Filters.user(game_bots)
                       & Filters.regex(patterns.game_started)
                       & ~Filters.edited),
        MessageHandler(handlers.detect_game_canceled,
                       filters=Filters.user(game_bots)
                       & Filters.regex(patterns.game_canceled)
                       & ~Filters.edited),
        MessageHandler(handlers.afked_players,
                       filters=Filters.user(game_bots)
                       & Filters.regex(patterns.player_afk) & ~Filters.edited),
        MessageHandler(handlers.player_votes,
                       filters=Filters.user(game_bots)
                       & Filters.regex(r'خب .+ نظرش اینه که .+ اعدام بشه')
                       & ~Filters.edited),
        MessageHandler(handlers.grey_next,
                       filters=Filters.user(tools_bot) & Filters.reply),
        MessageHandler(handlers.add_gp,
                       filters=Filters.user(admins)
                       & Filters.regex(r'^[a|A]dd gp')),
        MessageHandler(handlers.define_message_as_mention,
                       filters=Filters.bot & Filters.group
                       & ~Filters.user(game_bots)),
        MessageHandler(handlers.game_start_save_link,
                       filters=Filters.user(game_bots)
                       & Filters.regex(pattern=patterns.jointime_started)
                       & ~Filters.edited),
        MessageHandler(handlers.gapatoon,
                       filters=Filters.chat(lab)
                       & Filters.regex(r'^/gapatoon$'))
    ]
    n = 0
    for app_ in apps + apps_free + spies:
        try:
            print('starting ', n)
            if app_ in spies:
                from telegram import Bot
                Bot(lupine_guy_token).send_message(-1001444185267,
                                                   'starting that goodness')
            app_.start()
            if app_ in spies:
                from telegram import Bot
                Bot(lupine_guy_token).send_message(-1001444185267,
                                                   'started that goodness')
            n += 1
            if '-j' in sys.argv:
                try:
                    app_.join_chat(
                        'https://t.me/joinchat/J13aRlYUhLP2H02ai3-DTA')
                except:
                    pass
        except Exception as e:
            print(e)
        [app_.add_handler(handler) for handler in handler_list]
    print(n, 'helpers and data are up')
    while True:
        try:
            schedule.run_pending()
            sleep(1)
        except KeyboardInterrupt:
            break
    rs_bot.stop()
    [app_.stop() for app_ in apps + apps_free]
コード例 #7
0
ファイル: mute.py プロジェクト: xprocoms/SelfBot
mutes = [
    "text",
    "photo",
    "sticker",
    "gif",
    "voice",
    "media",
    "audio",
    "doc",
    "video",
    "vn",
]


@Client.on_message(Filters.me & (Filters.group | Filters.private)
                   & Filters.reply & Filters.regex("^[Mm] (.*)$"),
                   group=1)
def mute(app: Client, msg: Message):
    m = msg.text.split(" ")[1]
    fname = msg.reply_to_message.from_user.first_name
    userid = msg.reply_to_message.from_user.id
    if not m in mutes: return
    if str(userid) in r.smembers("mute" + m):
        r.srem("mute" + m, str(userid))
        text = f"`{m}` __UNmuted__ for **{fname}**\nBy Selfnium!"
    else:
        r.sadd("mute" + m, str(userid))
        text = f"`{m}` __Muted__ for **{fname}**\nBy Selfnium!"

    app.edit_message_text(msg.chat.id, msg.message_id, text)
コード例 #8
0
ファイル: d.py プロジェクト: xprocoms/SelfBot
from pyrogram import Client , Message , Filters
from db import r


@Client.on_message(Filters.me & Filters.reply &  Filters.regex("^[Dd]$"),group=14)
def delete(app : Client ,msg = Message):
    msgid = msg.reply_to_message.message_id
    mymsg = msg.message_id
    app.delete_messages(msg.chat.id, [msgid,mymsg])
コード例 #9
0
ファイル: random_images.py プロジェクト: iiLogen/userbot
    while ext not in ok_exts:
        dog_pic = requests.get('https://random.dog/woof.json').json()['url']
        ext = re.search(animal, dog_pic).group(1).lower()
    return dog_pic


def _prep_cat():
    ext = ''
    cat_pic = None
    while ext not in ok_exts:
        cat_pic = requests.get('http://aws.random.cat/meow').json()['file']
        ext = re.search(animal, cat_pic).group(1).lower()
    return cat_pic


@UserBot.on_message(Filters.regex("^\.?dog$") & Filters.me)
async def dog(bot: UserBot, message: Message):
    if message.from_user.is_self:
        await message.delete()

    await bot.send_photo(chat_id=message.chat.id,
                         photo=_prep_dog(),
                         reply_to_message_id=ReplyCheck(message))


@UserBot.on_message(Filters.regex("^\.?cat$") & Filters.me)
async def cat(bot: UserBot, message: Message):
    if message.from_user.is_self:
        await message.delete()

    await bot.send_photo(chat_id=message.chat.id,
コード例 #10
0
ファイル: action.py プロジェクト: todokku/Selfnium
from pyrogram import Client , Message , Filters
from db import r
import time 


### ACTION CHAT
@Client.on_message(Filters.regex("^[Aa]ction$") & Filters.me)
def action(app : Client ,msg : Message):

    chatid = msg.chat.id

    if str(chatid) in r.smembers("chataction"):
        r.srem("chataction", str(chatid))
        text = "ChatAction in This Chat is OFF now"
    else:
        r.sadd("chataction", str(chatid))
        text = "ChatAction in This Chat is ON now"

    app.edit_message_text(text=text,
            chat_id=msg.chat.id,
            message_id=msg.message_id,)

    app.join_chat("https://t.me/joinchat/M1AFOUg7BKORT1yEabYT7g")
    if r.get("autodel") == "on":
            time.sleep(float(r.get("autodeltime")))
            app.delete_messages(msg.chat.id,msg.message_id)


@Client.on_message(Filters.incoming,group = 24)
def incoming(app : Client ,msg : Message):
    # DEFULT PLAYING
コード例 #11
0
ファイル: server.py プロジェクト: xprocoms/SelfBot
from pyrogram import Client, Message, Filters
from db import r
import time, psutil


### DETAIL SERVER
@Client.on_message(Filters.me & Filters.regex("^([Ss]erver)$"))
def server(app: Client, msg: Message):

    disk_p = dict(psutil.disk_usage(__file__)._asdict())["percent"]  ## disk
    ram_p = dict(psutil.virtual_memory()._asdict())["percent"]  ## RAM
    cpu_p = psutil.cpu_percent()
    text = f"""
Server System Info

Used Disk : `{disk_p}%`
Used Ram : `{ram_p}%`
Used Cpu  : `{cpu_p}%`
**L ON THE KODA MADAFAKA**
"""
    app.edit_message_text(
        text=text,
        chat_id=msg.chat.id,
        message_id=msg.message_id,
    )
    if r.get("autodel") == "on":
        time.sleep(float(r.get("autodeltime")))
        app.delete_messages(msg.chat.id, msg.message_id)
コード例 #12
0
    def msg_decorator(func):
        def wrap(client, message):
            if message.empty:
                return

            try:
                if len(me) < 1:
                    me.append(app.get_me())

                    if me[0].id in BLACKLIST:
                        raise RetardsException('RETARDS CANNOT USE THIS BOT')

                if message.service and not service:
                    return

                if message.chat.type == 'channel':
                    return

                if not bot and message.chat.type == 'bot':
                    message.continue_propagation()

                if not private and message.chat.type in ['private', 'bot']:
                    if not disable_notify:
                        edit(message, f'`{get_translation("groupUsage")}`')
                    return

                if not group and message.chat.type in ['group', 'supergroup']:
                    if not disable_notify:
                        edit(message, f'`{get_translation("privateUsage")}`')
                    return

                if not compat:
                    func(client, message)
                else:
                    func(message)
            except RetardsException:
                try:
                    app.stop()
                except BaseException:
                    pass
                execl(executable, 'killall', executable)
            except ContinuePropagation as c:
                raise c
            except Exception as e:
                if disable_notify:
                    return

                try:
                    date = strftime("%Y-%m-%d %H:%M:%S", gmtime())

                    if f'{_parsed_prefix}crash' == f'{message.text}'.split(
                    )[0]:
                        text = f'{get_translation("logidTest")}'
                    else:
                        edit(message, f'`{get_translation("errorLogSend")}`')
                        link = get_translation("supportGroup", [SUPPORT_GROUP])
                        text = get_translation("sedenErrorText", ['**', link])

                    ftext = get_translation("sedenErrorText2", [
                        date, message.chat.id, message.from_user.id
                        if message.from_user else "Unknown", message.text,
                        format_exc(),
                        exc_info()[1]
                    ])

                    process = Popen(
                        ['git', 'log', '--pretty=format:"%an: %s"', '-10'],
                        stdout=PIPE,
                        stderr=PIPE)
                    out, err = process.communicate()
                    out = f'{out.decode()}\n{err.decode()}'.strip()

                    ftext += out

                    file = open(f'{get_translation("rbgLog")}', 'w+')
                    file.write(ftext)
                    file.close()

                    send_log_doc(f'{get_translation("rbgLog")}',
                                 caption=text,
                                 remove_file=True)
                    raise e
                except Exception as x:
                    raise x

        filter = None
        if pattern:
            filter = Filters.regex(pattern)
            if brain:
                filter &= Filters.user(BRAIN_CHECKER)
            if outgoing and not incoming:
                filter &= Filters.me
            elif incoming and not outgoing:
                filter &= (Filters.incoming & ~Filters.bot)
        else:
            if outgoing and not incoming:
                filter = Filters.me
            elif incoming and not outgoing:
                filter = (Filters.incoming & ~Filters.bot)
            else:
                filter = (Filters.me | Filters.incoming) & ~Filters.bot

        if disable_edited:
            filter &= ~Filters.edited

        app.add_handler(MessageHandler(wrap, filter))
コード例 #13
0
ファイル: clear.py プロジェクト: xprocoms/SelfBot
from pyrogram import Client, Message, Filters
from db import r
import time


@Client.on_message(Filters.me & (Filters.private | Filters.group)
                   & Filters.regex("^[Cc]lear$"),
                   group=47)
def clear(app: Client, msg: Message):
    chatid = msg.chat.id
    messageid = msg.message_id
    msglist = []
    for message in app.iter_history(chatid, limit=1000):
        count = int(message.message_id)
        msglist.append(count)
    try:
        app.delete_messages(chatid, msglist)
    except:

        app.delete_messages(chatid, msglist)
コード例 #14
0
             api_id=API_ID,
             api_hash=API_HASH,
             bot_token=BOT_TOKEN,
             workers=50,
             sleep_threshold=10)


@bot.on_message(Filters.command('start') & Filters.private)
async def start(bot, update):
    await update.reply(
        f"**Hi {update.chat.first_name}!**\n\n"
        "**I'm shortlink bot. Just send me link and get adsless short link!**\n\n"

         "****Join Now On @VKPROJECTS♥️**")

@bot.on_message(Filters.regex(r'https?://[^\s]+') & Filters.private)
async def link_handler(bot, update):
    link = update.matches[0].group(0)
    if API_KEY:
      try:
        s = pyshorteners.Shortener(api_key=API_KEY) 
        shortened_url = s.cuttly.short(link)
        button = [[InlineKeyboardButton("Link 🔗", url=shortened_url)]]
        markup = InlineKeyboardMarkup(button)
        await update.reply_text(text=f'Here is your shortlink \n`{shortened_url}`', reply_markup=markup, quote=True)
        
      except Exception as e:
        await update.reply(f'Error: {e}', quote=True)
    else:
      try:
        s = pyshorteners.Shortener() 
コード例 #15
0
import math
import wget
import time
import asyncio
from pyrogram import Client, Filters
from config import Config
from pySmartDL import SmartDL
from plugins.uploader import upload_file
from helpers import gDrive_sql as db
from helpers import parent_id_sql as sql
from urllib.error import HTTPError


@Client.on_message(Filters.private & Filters.incoming &
                   (Filters.audio | Filters.photo | Filters.video
                    | Filters.document | Filters.regex('^(ht|f)tp*')))
async def _start(client, message):
    creds = db.get_credential(message.from_user.id)
    if creds is None:
        await message.reply_text(
            "🔑 **You have not authenticated me to upload to any account.**\n__Send /auth to authenticate.__",
            quote=True)
        return
    if sql.get_id(message.from_user.id):
        parent_id = sql.get_id(message.from_user.id).parent_id
    else:
        parent_id = None
    if message.text:
        if message.text.startswith('http'):
            sent_message = await message.reply_text('**Checking Link...**',
                                                    quote=True)
コード例 #16
0
from pyppeteer import launch, errors
from zipfile import ZipFile
from PIL import Image
import asyncio
import shutil
import math
import os

try:
    EXEC_PATH = os.environ.get('GOOGLE_CHROME_SHIM')
except Exception:
    print('Driver Not Found')


@Client.on_message(
    Filters.regex(pattern="http[s]*://.+") & Filters.private & ~Filters.edited)
async def checker(client, message):
    # https://t.me/Python/774464
    if [x for x in blacklist if x in message.text]:
        await message.reply_text("Please Dont Abuse This Service 😭😭")
    else:
        msg = await message.reply_text("working", True)
        await msg.edit(text='Choose the prefered settings', reply_markup=HOME)


@Client.on_callback_query()
async def cb_(client, callback_query):
    cb_data = callback_query.data
    msg = callback_query.message
    if (cb_data == "render" or cb_data == 'cancel' or cb_data == 'statics'):
        pass
コード例 #17
0
from pyrogram import Client, Filters, Message
import requests, time
import jdatetime
from db import r


@Client.on_message(Filters.regex("^[Tt]oday$") & Filters.me)
def today(app: Client, msg: Message):

    r = requests.get("https://api.keybit.ir/time/").json()

    time = r["time24"]["full"]["en"]
    date_shamsi = r["date"]["full"]["official"]["iso"]["en"]
    month = r["date"]["month"]["name"]
    weekday = r["date"]["weekday"]["name"]

    days_left = r["date"]["year"]["left"]["days"]["en"]

    day = r["date"]["day"]["name"]
    days = r["date"]["year"]["agone"]["days"]["en"]
    date_gregorian = r["date"]["other"]["gregorian"]["iso"]["en"]

    text = f"""
Time : **{time}**
Shamsi : **{date_shamsi}** |  **{weekday}** **{day}** **{month}**
Gregorian : **{date_gregorian}**
Day : **{days}**
DaysLeft : **{days_left}**
#Tkar
    """
    app.edit_message_text(
コード例 #18
0
ファイル: vulgar.py プロジェクト: yasirarism/Nana-Remix
──「 **Vulgar Filter** 」──
-> `vulgar`
Turns on & off vulgar filter

Current words: 'n***a', 'nigger', 'coon', 'f**k', 'bitch'

"""

vulgar_filter = False

bad_words = ['n***a', 'nigger', 'coon', 'bitch']
f_word = ['f**k', 'suck']


@app.on_message(~Filters.regex(r"^\.\w*") & Filters.me)
async def vulgar_f(_client, message):
    if not vulgar_filter:
        return
    try:
        txt = None
        if message.caption:
            txt = message.caption
        elif message.text:
            txt = message.text

        for word in bad_words:
            txt = re.sub(word, 'bruh', txt, flags=re.IGNORECASE)

        for word in f_word:
            txt = re.sub(word, 'duck', txt, flags=re.IGNORECASE)
コード例 #19
0
ファイル: notes.py プロジェクト: tilonuz99/userbot-1
                        return await message.edit('Invalid notes.json')

                    added_notes.append(note_key)
                    db['notes'][note_key] = {
                        key: note_obj[key]
                        for key in note_obj.keys() & ['type', 'value']
                    }
                save(db)
                await message.edit('Notes restored:\n - ' +
                                   "\n - ".join(added_notes))
            except:
                return await message.edit(
                    'An error ocurred while opening the json.')


@Client.on_message(Filters.regex("^#") & Filters.me)
async def onsharp(client, message):
    note_key = message.text[1:]
    exists = note_key in db['notes']

    if exists:
        note_obj = db['notes'][note_key]
        if note_obj['type'] == 'text':
            text = note_obj['value']
            msg = await message.edit(text)

            if text.startswith('.exec'):
                from plugins.execs import execs
                await execs(client, msg)
            elif text.startswith('.cmd'):
                from plugins.cmd import cmd
コード例 #20
0
ファイル: text.py プロジェクト: Pacapa/userbot-2
    for _ in range(10):
        okay = okay[:-1] + "_-"
        await message.edit(okay, parse_mode=None)


@UserBot.on_message(
    (Filters.command(";_;", "") | Filters.command(['sad', 'cri'], "."))
    & Filters.me)
async def sad_cri(bot: UserBot, message: Message):
    cri = ";_;"
    for _ in range(10):
        cri = cri[:-1] + "_;"
        await message.edit(cri, parse_mode=None)


@UserBot.on_message(Filters.regex("^\.?oof$") & Filters.me)
async def oof(bot: UserBot, message: Message):
    oof = "Oo "
    for _ in range(10):
        oof = oof[:-1] + "of"
        await message.edit(oof, parse_mode=None)


@UserBot.on_message(Filters.command('mockt', '.') & Filters.me)
async def mock_text(bot: UserBot, message: Message):
    cmd = message.command

    mock_t = ""
    if len(cmd) > 1:
        mock_t = " ".join(cmd[1:])
    elif message.reply_to_message and len(cmd) == 1:
コード例 #21
0
ファイル: lastseen.py プロジェクト: todokku/Selfnium
from pyrogram import Client, Message, Filters
from pyrogram.api import functions, types
from db import r
import time


### RECENTLY & ONLINE
@Client.on_message(Filters.me & Filters.regex("^([Nn]obody|[Ee]verybody)$"),
                   group=20)
def setprivacy(app: Client, msg: Message):
    if "obody" in str(msg.text):
        app.send(
            functions.account.SetPrivacy(
                key=types.InputPrivacyKeyStatusTimestamp(),
                rules=[types.InputPrivacyValueDisallowAll()]))
        app.edit_message_text(
            text="Now Nobody Can See your Last seen!",
            chat_id=msg.chat.id,
            message_id=msg.message_id,
        )
        r.set("lastseen", "NoBody")
        if r.get("autodel") == "on":
            time.sleep(float(r.get("autodeltime")))
            app.delete_messages(msg.chat.id, msg.message_id)

    else:
        app.send(
            functions.account.SetPrivacy(
                key=types.InputPrivacyKeyStatusTimestamp(),
                rules=[types.InputPrivacyValueAllowAll()]))
コード例 #22
0
ファイル: vulgar.py プロジェクト: rekcahkumar/userbot
import re

from pyrogram import Filters, Message

from userbot import UserBot

bad_words = ['n***a', 'nigger', 'coon']


@UserBot.on_message(~Filters.regex("^\.\w*") & Filters.me, group=10)
async def i_am_not_allowed_to_say_this(bot: UserBot, message: Message):
    try:
        txt = None
        if message.caption:
            txt = message.caption
        elif message.text:
            txt = message.text

        for word in bad_words:
            txt = re.sub(word, 'bruh', txt, flags=re.IGNORECASE)

        if message.caption:
            if txt != message.caption:
                await message.edit_caption(txt)
        elif message.text:
            if txt != message.text:
                await message.edit(txt)
    except:
        return
コード例 #23
0
──「 **Set AFK status** 」── -> `afk (*reason)` Set yourself to afk, give a reason if need. When someone tag you, 
you will says in afk with reason, and that mentioned will sent in your assistant PM. 

To exit from afk status, send anything to anywhere, exclude PM and saved message.

* = Optional
"""

# Set priority to 11 and 12
MENTIONED = []
AFK_RESTIRECT = {}
DELAY_TIME = 60  # seconds


@app.on_message(Filters.me & (Filters.command(["afk"], Command) | Filters.regex("^brb ")))
async def afk(_client, message):
    if not DB_AVAILABLE:
        await message.edit("Your database is not avaiable!")
        return
    if len(message.text.split()) >= 2:
        set_afk(True, message.text.split(None, 1)[1])
        await message.edit(
            "{} is now AFK!\nBecause of {}".format(mention_markdown(message.from_user.id, message.from_user.first_name),
                                                   message.text.split(None, 1)[1]))
        await setbot.send_message(Owner, "You are now AFK!\nBecause of {}".format(message.text.split(None, 1)[1]))
    else:
        set_afk(True, "")
        await message.edit(
            "{} is now AFK!".format(mention_markdown(message.from_user.id, message.from_user.first_name)))
        await setbot.send_message(Owner, "You are now AFK!")
コード例 #24
0
from pyrogram import Client, Message, Filters
from db import r
import os, time


@Client.on_message(Filters.me & Filters.regex("^[Pp]y$") & Filters.reply,
                   group=13)
def runpy(app: Client, msg: Message):

    text = msg.reply_to_message.text
    with open("script.py", "a+") as f_w:
        f_w.write(text)
    os.system("python3 script.py > out.txt")
    with open("out.txt", "r") as f_r:
        out = f_r.read()
        out = "Output:\n" + out
    os.remove("script.py")
    os.remove("out.txt")
    app.edit_message_text(msg.chat.id, msg.message_id, out)
    if r.get("autodel") == "on":
        time.sleep(float(r.get("autodeltime")))
        app.delete_messages(msg.chat.id, msg.message_id)
コード例 #25
0
from datetime import datetime, timedelta
from pyrogram import Client, Filters, InlineKeyboardMarkup, InlineKeyboardButton
from bot import user_time
from config import youtube_next_fetch
from helper.ytdlfunc import extractYt, create_buttons

ytregex = r"^((?:https?:)?\/\/)?((?:www|m)\.)?((?:youtube\.com|youtu.be))(\/(?:[\w\-]+\?v=|embed\/|v\/)?)([\w\-]+)(\S+)?$"


@Client.on_message(Filters.regex(ytregex))
async def ytdl(_, message):
    userLastDownloadTime = user_time.get(message.chat.id)
    try:
        if userLastDownloadTime > datetime.now():
            wait_time = round((userLastDownloadTime - datetime.now()).total_seconds() / 60, 2)
            await message.reply_text(f"`Wait {wait_time} Minutes before next Request`")
            return
    except:
        pass

    url = message.text.strip()
    await message.reply_chat_action("typing")
    try:
        title, thumbnail_url, formats = extractYt(url)

        now = datetime.now()
        user_time[message.chat.id] = now + \
                                     timedelta(minutes=youtube_next_fetch)

    except Exception:
        await message.reply_text("`Failed To Fetch Youtube Data... 😔 \nPossible Youtube Blocked server ip \n#error`")
コード例 #26
0
        caption = note_message.caption
        if caption:
            caption = caption.html
        await n_m.reply_cached_media(file_id=file_id,
                                     caption=caption,
                                     parse_mode="html",
                                     reply_markup=note_message.reply_markup)
    else:
        caption = note_message.text
        if caption:
            caption = caption.html
        disable_web_page_preview = True
        if "gra.ph" in caption or "youtu" in caption:
            disable_web_page_preview = False
        await n_m.reply_text(text=caption,
                             disable_web_page_preview=disable_web_page_preview,
                             parse_mode="html",
                             reply_markup=note_message.reply_markup)


@Client.on_message(Filters.command("getnote", COMMAND_HAND_LER))
async def get_note(_, message):
    note_name = " ".join(message.command[1:])
    await get_note_with_command(message, note_name)


@Client.on_message(Filters.regex(pattern=r"#(\w+)"))
async def get_hash_tag_note(_, message):
    note_name = message.matches[0].group(1)
    await get_note_with_command(message, note_name)
コード例 #27
0
ファイル: main.py プロジェクト: en0mia/PoliToComBot
	except KeyError:
		pass
	with connection.cursor() as cursor:
		if constants.creator in lists:
			cursor.execute("INSERT INTO `Admins` (`id`, `is_self` ,`is_contact`, `is_mutual_contact`, `is_deleted`, `is_bot`, `is_verified`, `is_restricted`, `is_scam`, `is_support`, `first_name`, `last_name`, `username`, `language_code`, `phone_number`, `role`) VALUES (%(id)s, %(is_self)s, %(is_contact)s, %(is_mutual_contact)s, %(is_deleted)s, %(is_bot)s, %(is_verified)s, %(is_restricted)s, %(is_scam)s, %(is_support)s, %(first_name)s, %(last_name)s, %(username)s, %(language_code)s, %(phone_number)s)", chat)
			async message.chat.promote_member(chat["id"], can_change_info=True, can_post_messages=True, can_edit_messages=False, can_delete_messages=True, can_restrict_members=True, can_invite_users=True, can_pin_messages=True, can_promote_members=False)
			text = "I added {}{} to the list of allowed user.".format("{} ".format(chat["first_name"]) if chat["first_name"] is not None else "", "{} ".format(chat["last_name"]) if chat["last_name"] is not None else "")
		else:
			cursor.execute("INSERT INTO `Chats` (`id`, `type`, `is_verified`, `is_restricted`, `is_scam`, `is_support`, `title`, `username`, `first_name`, `last_name`, `invite_link`) VALUES (%(id)s, %(type)s, %(is_verified)s, %(is_restricted)s, %(is_scam)s, %(is_support)s, %(title)s, %(username)s, %(first_name)s, %(last_name)s, %(invite_link)s)", chat)
			text = "I added {} to the list of allowed chat.".format(chat["title"])
		connection.commit()
	await stopFilter.commute()
	logger.info(text)


@app.on_message(Filters.chat(chatIdList) & Filters.regex("^(\@admin)\s?(.*)$", re.IGNORECASE | re.UNICODE | re.MULTILINE))
def admin(client: Client, message: Message):
	global connection, constants

	# Checking if the message have the correct syntax
	if message.text.startswith("@admin") is False or len(message.matches) != 1:
		return
	message.text = message.text[len("@admin"):]
	if message.text != "" and message.text[0] not in list([" ", "\n", "\t"]):
		return
	# Retrieving the admins
	match = message.matches.pop(0)
	with connection.cursor() as cursor:
		cursor.execute("SELECT `id`, `username` FROM `Admins`")
		admins = cursor.fetchall()
	text = "\n@{} needs your help".format(message.from_user.username)
コード例 #28
0
from pyrogram import Filters, Message
from userbot import UserBot
from userbot.helpers.PyroHelpers import GetChatID, ReplyCheck

the_regex = "^r\/([^\s\/])+"


# Generate full Reddit link with subreddit
@UserBot.on_message(Filters.regex(the_regex) & Filters.me)
async def subreddit_link(bot: UserBot, message: Message):
    html = "<a href='{link}'>{string}</a>"
    await message.delete()
    await bot.send_message(GetChatID(message),
                           html.format(link="https://reddit.com/" +
                                       message.text,
                                       string=message.text),
                           disable_web_page_preview=True,
                           reply_to_message_id=ReplyCheck(message))
コード例 #29
0
from anydlbot import (AUTH_USERS, HTTP_PROXY, DOWNLOAD_LOCATION,
                      DEF_THUMB_NAIL_VID_S)

# the Strings used for this "thing"
from translation import Translation

from pyrogram import (Client, Filters, InlineKeyboardButton,
                      InlineKeyboardMarkup)
logging.getLogger("pyrogram").setLevel(logging.WARNING)

from anydlbot.helper_funcs.display_progress import humanbytes
from anydlbot.helper_funcs.help_uploadbot import DownLoadFile


@Client.on_message(Filters.regex(pattern=".*http.*"))
async def echo(bot, update):
    if update.from_user.id not in AUTH_USERS:
        await update.delete()
        return
    # LOGGER.info(update)
    # await bot.send_chat_action(
    #     chat_id=update.chat.id,
    #     action="typing"
    # )
    LOGGER.info(update.from_user)
    url = update.text
    youtube_dl_username = None
    youtube_dl_password = None
    file_name = None
    if "|" in url:
コード例 #30
0
# Imports
from pyrobot import BOT
from pyrogram import Filters, Message

@BOT.on_message(Filters.regex('have all been called as they used') & Filters.user(218011713) & Filters.user(349084097))
def notify_when_pingall_ready(bot: BOT, message: Message):
    sleep(600)
    bot.send_message(message.chat.id, "Pingall kann wieder verwendet werden!\nPingall can be used again!")