Beispiel #1
0
import os
import asyncio

from userge import userge, Message, Config
from userge.utils import get_file_id_of_media

S_LOG = userge.getCLogger(__name__)


@userge.on_cmd(
    "spam",
    about={
        'header':
        "Spam some Messages",
        'description':
        "Message Spam module just for fun."
        "Btw Don't over use this plugin or get"
        "ready for account ban or flood waits. "
        "For spamming text use '|' to separate count and text.",
        'usage':
        "{tr}spam [spam count] | [spam message/reply to a media] | [Optional: delay]",
        'examples':
        "**For Text:** `{tr}spam 2 | Durov will ban me for using this plugin`"
    })
async def spam(message: Message):
    replied = message.reply_to_message
    delay = str(0.1)
    is_str = "|" in message.input_str
    if (replied and replied.media and not is_str):
        if not os.path.isdir(Config.DOWN_PATH):
            os.makedirs(Config.DOWN_PATH)
Beispiel #2
0
import os
import re
import shutil
from pathlib import Path

import deezloader
from deezloader.exceptions import NoDataApi
from userge import Message, pool, userge
from userge.plugins.misc.upload import audio_upload, doc_upload

Clogger = userge.getCLogger(__name__)
ARL_TOKEN = os.environ.get("ARL_TOKEN")
TEMP_PATH = "deezdown_temp/"
REX = re.compile(
    r"https?:\/\/(open/.spotify|www/.deezer|deezer)\.com\/"
    r"https?:\/\/(deezer\.page)\.com\/”
    r"(track|album|play|track)\/[A-Z0-9a-z]{3,}"
)
ARL_HELP = """**Oops, Time to Help Yourself**
[Here Help Yourself](https://www.google.com/search?q=how+to+get+deezer+arl+token)

After getting Arl token Config `ARL_TOKEN` var in heroku"""


@userge.on_cmd(
    "deezload",
    about={
        "header": "DeezLoader for Userge",
        "description": "Download Songs/Albums/Playlists via "
        "Spotify or Deezer Links. "
        "\n<b>NOTE:</b> Music Quality is optional",
Beispiel #3
0
# Copyright (C) 2020 by UsergeTeam@Github, < https://github.com/UsergeTeam >.
#
# This file is part of < https://github.com/UsergeTeam/Userge > project,
# and is released under the "GNU v3.0 License Agreement".
# Please see < https://github.com/uaudith/Userge/blob/master/LICENSE >
#
# All rights reserved.

import os
from pyrogram import ChatPermissions
from userge import userge, Message

CHANNEL = userge.getCLogger(__name__)


@userge.on_cmd("lock",
               about="""\
__use this to lock group permissions__

**Usage:**

`Allows you to lock some common permission types in the chat.`

[NOTE: Requires proper admin rights in the chat!!!]

**Available types to Lock Permissions:**

`all, msg, media, polls, invite, pin, info, webprev, animations, games, stickers, inlinebots`

**Example:**
# setup the gPhotos v1 API
OAUTH_SCOPE = [
    "https://www.googleapis.com/auth/photoslibrary",
    "https://www.googleapis.com/auth/photoslibrary.sharing"
]
# Redirect URI for installed apps, can be left as is
REDIRECT_URI = "urn:ietf:wg:oauth:2.0:oob"
#
PHOTOS_BASE_URI = "https://photoslibrary.googleapis.com"
G_PHOTOS_CLIENT_ID = os.environ.get("G_PHOTOS_CLIENT_ID", None)
G_PHOTOS_CLIENT_SECRET = os.environ.get("G_PHOTOS_CLIENT_SECRET", None)
TOKEN_FILE_NAME = os.path.join(Config.DOWN_PATH,
                               "gPhoto_credentials_UniBorg.json")
LOG = userge.getLogger(__name__)  # logger object
CHANNEL = userge.getCLogger(__name__)  # channel logger object
G_PHOTOS_AUTH_TOKEN_ID = int(os.environ.get("G_PHOTOS_AUTH_TOKEN_ID", 0))


@userge.on_cmd("gphoto setup",
               about="no one gonna help you 🤣🤣🤣🤣",
               allow_groups=False,
               allow_channels=False)
async def setup_google_photos(message: Message):
    creds = await check_creds(message)
    if not creds:
        await create_token_file(message)
        await CHANNEL.log("#GPHOTOS #setup #completed")
        await message.edit("CREDS created. 😕😖😖")
    else:
        await message.edit("CREDS already created. 😕")
Beispiel #5
0
import re
import shlex
import threading
import traceback
from contextlib import contextmanager
from enum import Enum
from getpass import getuser
from os import geteuid
from typing import Awaitable, Any, Callable, Dict, Optional, Tuple, Iterable

from pyrogram.types.messages_and_media.message import Str

from userge import userge, Message, Config, pool
from userge.utils import runcmd

CHANNEL = userge.getCLogger()


@userge.on_cmd("exec",
               about={
                   'header': "run commands in exec",
                   'usage': "{tr}exec [commands]",
                   'examples': "{tr}exec echo \"Userge\""
               },
               allow_channels=False)
async def exec_(message: Message):
    """ run commands in exec """
    cmd = await init_func(message)
    if cmd is None:
        return
Beispiel #6
0
# Thanks to @Intellivoid For Creating CoffeeHouse API

import os
import random
import asyncio
from time import time

from coffeehouse.api import API
from coffeehouse.lydia import LydiaAI, Session
from coffeehouse.exception import CoffeeHouseError
from pyrogram.errors.exceptions.bad_request_400 import PeerIdInvalid

from userge import userge, get_collection, Message, filters, pool
from userge.utils import get_file_id_and_ref

LOGGER = userge.getCLogger(__name__)
LYDIA_CHATS = get_collection("LYDIA_CHATS")
CH_LYDIA_API = os.environ.get("CH_LYDIA_API", None)
CUSTOM_REPLY_CHANNEL = int(os.environ.get("CUSTOM_REPLY_CHANNEL", 0))
if CH_LYDIA_API is not None:
    LYDIA = LydiaAI(API(CH_LYDIA_API))

ACTIVE_CHATS = {}
CUSTOM_REPLIES_IDS = []
QUEUE = asyncio.Queue()

LYDIA_API_INFO = """This module uses Lydia AI
Powered by CoffeeHouse API created by @Intellivoid.

Lydia is a Active Machine Learning Chat Bot.
Which can adapt to current user and chat with user
Beispiel #7
0
# Copyright (C) 2020 BY - GitHub.com/code-rgb [TG - @deleteduser420]
# All rights reserved.
"""Module that handles Bot's Pm"""

from userge import userge, Message, Config, get_collection
from pyrogram.types import (  
     InlineKeyboardMarkup, InlineKeyboardButton, CallbackQuery )
from pyrogram import filters
from pyrogram.errors.exceptions import FileIdInvalid, FileReferenceEmpty
from pyrogram.errors.exceptions.bad_request_400 import BadRequest
from datetime import date
import asyncio

LOG = userge.getLogger("Bot_PM")
CHANNEL = userge.getCLogger("Bot_PM")

BOT_BAN = get_collection("BOT_BAN")
BOT_START = get_collection("BOT_START")
LOGO_ID, LOGO_REF = None, None
# https://github.com/UsergeTeam/Userge-Assistant/.../alive.py#L41
# refresh file id and file reference from TG server


if Config.BOT_TOKEN and Config.OWNER_ID:
    if Config.HU_STRING_SESSION:
        ubot = userge.bot
    else:
        ubot = userge


    @ubot.on_message(filters.private & filters.command("start"))
Beispiel #8
0
# Copyright (C) 2020 BY - GitHub.com/code-rgb [TG - @deleteduser420]
# All rights reserved.
"""Bot Message forwarding"""

from userge import userge, Message, Config, get_collection
from pyrogram import filters
from pyrogram.errors.exceptions import MessageIdInvalid
from pyrogram.errors import FloodWait, BadRequest
import json
import os
import asyncio

LOG = userge.getLogger("Bot_Forwards")
CHANNEL = userge.getCLogger("Bot_Forwards")

BOT_BAN = get_collection("BOT_BAN")
BOT_START = get_collection("BOT_START")
SAVED_SETTINGS = get_collection("CONFIGS")


async def _init() -> None:
    data = await SAVED_SETTINGS.find_one({'_id': 'BOT_FORWARDS'})
    if data:
        Config.BOT_FORWARDS = bool(data['is_active'])


allowForwardFilter = filters.create(lambda _, __, ___: Config.BOT_FORWARDS)


@userge.on_cmd("bot_fwd",
               about={'header': "enable / disable Bot Forwards"},