├── plugins ├── fun │ ├── autopic │ │ ├── resources │ │ │ └── font.ttf │ │ ├── config.ini │ │ └── __init__.py │ ├── brain │ │ ├── config.ini │ │ ├── __init__.py │ │ └── __main__.py │ ├── hack │ │ ├── config.ini │ │ └── __init__.py │ ├── spam │ │ ├── config.ini │ │ └── __init__.py │ ├── type │ │ ├── config.ini │ │ ├── __init__.py │ │ └── __main__.py │ ├── convert │ │ ├── config.ini │ │ ├── __init__.py │ │ └── __main__.py │ ├── kill │ │ ├── config.ini │ │ ├── __init__.py │ │ └── __main__.py │ ├── poll │ │ ├── config.ini │ │ └── __init__.py │ ├── weebify │ │ ├── config.ini │ │ ├── __init__.py │ │ └── __main__.py │ ├── whois │ │ ├── config.ini │ │ └── __init__.py │ ├── animesticker │ │ ├── config.ini │ │ └── __init__.py │ ├── autobio │ │ ├── config.ini │ │ └── __init__.py │ ├── autoname │ │ ├── config.ini │ │ └── __init__.py │ ├── carb │ │ ├── config.ini │ │ └── __init__.py │ ├── figlet │ │ ├── config.ini │ │ ├── __init__.py │ │ └── __main__.py │ ├── gifify │ │ ├── config.ini │ │ ├── __init__.py │ │ └── __main__.py │ ├── memify │ │ ├── resources │ │ │ └── MutantAcademyStyle.ttf │ │ ├── config.ini │ │ └── __init__.py │ ├── pat │ │ ├── config.ini │ │ ├── __init__.py │ │ └── __main__.py │ ├── quote │ │ ├── config.ini │ │ ├── __init__.py │ │ └── __main__.py │ ├── belo_tips │ │ ├── config.ini │ │ ├── __init__.py │ │ └── __main__.py │ ├── word_counter │ │ ├── config.ini │ │ ├── __init__.py │ │ └── __main__.py │ ├── autofastly │ │ ├── config.ini │ │ ├── __init__.py │ │ └── __main__.py │ ├── meme │ │ ├── config.ini │ │ └── __init__.py │ ├── memes │ │ ├── config.ini │ │ └── __init__.py │ ├── rgb_sticklet │ │ ├── config.ini │ │ └── __init__.py │ ├── deepfry │ │ ├── config.ini │ │ └── __init__.py │ ├── kang │ │ ├── config.ini │ │ └── __init__.py │ ├── transform │ │ ├── config.ini │ │ └── __init__.py │ ├── carbon │ │ ├── config.ini │ │ └── __init__.py │ ├── glitch │ │ ├── config.ini │ │ └── __init__.py │ ├── tweet │ │ ├── config.ini │ │ └── __init__.py │ └── __init__.py ├── admin │ ├── antiflood │ │ ├── config.ini │ │ └── __init__.py │ ├── gmute │ │ ├── config.ini │ │ └── __init__.py │ ├── locks │ │ ├── config.ini │ │ └── __init__.py │ ├── purge │ │ ├── config.ini │ │ └── __init__.py │ ├── arsenal │ │ ├── config.ini │ │ └── __init__.py │ ├── gadmin │ │ ├── config.ini │ │ └── __init__.py │ ├── gban │ │ ├── config.ini │ │ └── __init__.py │ ├── night_mode │ │ ├── config.ini │ │ └── __init__.py │ ├── antispam │ │ ├── config.ini │ │ └── __init__.py │ └── __init__.py ├── misc │ ├── webupload │ │ ├── config.ini │ │ └── __init__.py │ ├── zippyshare │ │ ├── config.ini │ │ ├── __init__.py │ │ └── __main__.py │ ├── download │ │ ├── config.ini │ │ ├── __init__.py │ │ └── __main__.py │ ├── thumbnail │ │ ├── config.ini │ │ └── __init__.py │ ├── ff_mpeg │ │ ├── config.ini │ │ └── __init__.py │ ├── utube │ │ ├── config.ini │ │ └── __init__.py │ ├── parser │ │ ├── config.ini │ │ └── __init__.py │ ├── rss_feed │ │ ├── config.ini │ │ └── __init__.py │ ├── spotdl │ │ ├── config.ini │ │ ├── __init__.py │ │ └── __main__.py │ ├── telegraph │ │ ├── config.ini │ │ └── __init__.py │ ├── upload │ │ ├── config.ini │ │ └── __init__.py │ ├── deezloader │ │ ├── config.ini │ │ └── __init__.py │ ├── pathlib │ │ ├── config.ini │ │ └── __init__.py │ ├── gdrive │ │ ├── config.ini │ │ └── __init__.py │ ├── google_photos │ │ ├── config.ini │ │ └── __init__.py │ └── __init__.py ├── tools │ ├── delete │ │ ├── config.ini │ │ ├── __init__.py │ │ └── __main__.py │ ├── ids │ │ ├── config.ini │ │ ├── __init__.py │ │ └── __main__.py │ ├── repo │ │ ├── config.ini │ │ ├── __init__.py │ │ └── __main__.py │ ├── sd │ │ ├── config.ini │ │ └── __init__.py │ ├── alive │ │ ├── config.ini │ │ └── __init__.py │ ├── secret_msg │ │ ├── config.ini │ │ └── __init__.py │ ├── sysinfo │ │ ├── config.ini │ │ ├── __init__.py │ │ └── __main__.py │ ├── usage │ │ ├── config.ini │ │ ├── __init__.py │ │ └── __main__.py │ ├── speedtest │ │ ├── config.ini │ │ ├── __init__.py │ │ └── __main__.py │ └── __init__.py └── utils │ ├── admins │ ├── config.ini │ ├── __init__.py │ └── __main__.py │ ├── attach │ ├── config.ini │ ├── __init__.py │ └── __main__.py │ ├── calendar │ ├── config.ini │ ├── __init__.py │ └── __main__.py │ ├── chat │ ├── config.ini │ └── __init__.py │ ├── notes │ ├── config.ini │ └── __init__.py │ ├── afk │ ├── config.ini │ └── __init__.py │ ├── azan │ ├── config.ini │ ├── __init__.py │ └── __main__.py │ ├── cbutton │ ├── config.ini │ └── __init__.py │ ├── covid │ ├── config.ini │ ├── __init__.py │ └── __main__.py │ ├── create │ ├── config.ini │ ├── __init__.py │ └── __main__.py │ ├── dic │ ├── config.ini │ └── __init__.py │ ├── domain │ ├── config.ini │ └── __init__.py │ ├── filters │ ├── config.ini │ └── __init__.py │ ├── livesubs │ ├── config.ini │ ├── __init__.py │ └── __main__.py │ ├── profile │ ├── config.ini │ └── __init__.py │ ├── sangmata │ ├── config.ini │ ├── __init__.py │ └── __main__.py │ ├── time │ ├── config.ini │ └── __init__.py │ ├── welcome │ ├── config.ini │ └── __init__.py │ ├── app │ ├── config.ini │ └── __init__.py │ ├── bitly │ ├── config.ini │ ├── __init__.py │ └── __main__.py │ ├── botpm │ ├── config.ini │ └── __init__.py │ ├── botsz │ ├── config.ini │ ├── __init__.py │ └── __main__.py │ ├── cnf │ ├── config.ini │ ├── __init__.py │ └── __main__.py │ ├── github │ ├── config.ini │ ├── __init__.py │ └── __main__.py │ ├── header │ ├── config.ini │ ├── __init__.py │ └── __main__.py │ ├── iplookup │ ├── config.ini │ ├── __init__.py │ └── __main__.py │ ├── mentions │ ├── config.ini │ └── __init__.py │ ├── requote │ ├── config.ini │ ├── __init__.py │ └── __main__.py │ ├── tts │ ├── config.ini │ ├── __init__.py │ └── __main__.py │ ├── watch │ ├── config.ini │ └── __init__.py │ ├── articles │ ├── config.ini │ ├── __init__.py │ └── __main__.py │ ├── country │ ├── config.ini │ ├── __init__.py │ └── __main__.py │ ├── genss │ ├── config.ini │ └── __init__.py │ ├── paste │ ├── config.ini │ └── __init__.py │ ├── qr_code │ ├── config.ini │ └── __init__.py │ ├── wikipedia │ ├── config.ini │ ├── __init__.py │ └── __main__.py │ ├── labstack │ ├── config.ini │ └── __init__.py │ ├── lyrics │ ├── config.ini │ ├── __init__.py │ └── __main__.py │ ├── ud │ ├── config.ini │ └── __init__.py │ ├── logo_maker │ ├── config.ini │ └── __init__.py │ ├── ocr │ ├── config.ini │ ├── __init__.py │ └── __main__.py │ ├── pmpermit │ ├── config.ini │ └── __init__.py │ ├── virus_total │ ├── config.ini │ └── __init__.py │ ├── currency │ ├── config.ini │ ├── __init__.py │ └── __main__.py │ ├── direct_links │ ├── config.ini │ └── __init__.py │ ├── google │ ├── config.ini │ ├── __init__.py │ └── __main__.py │ ├── removebg │ ├── config.ini │ └── __init__.py │ ├── transcribe │ ├── config.ini │ └── __init__.py │ ├── translate │ ├── config.ini │ └── __init__.py │ ├── music │ ├── config.ini │ └── __init__.py │ ├── wallpaper │ ├── config.ini │ └── __init__.py │ ├── weather │ ├── config.ini │ └── __init__.py │ ├── yandex_reverse_search │ ├── config.ini │ ├── __init__.py │ └── __main__.py │ ├── google_reverse_search │ ├── config.ini │ └── __init__.py │ ├── info │ ├── config.ini │ └── __init__.py │ ├── lastfm │ ├── config.ini │ └── __init__.py │ ├── webss │ ├── config.ini │ └── __init__.py │ ├── google_img │ ├── config.ini │ └── __init__.py │ ├── hash │ ├── config.ini │ ├── __init__.py │ └── __main__.py │ ├── anilist │ ├── config.ini │ └── __init__.py │ ├── imdb │ ├── config.ini │ └── __init__.py │ ├── video_chat │ ├── config.ini │ ├── __init__.py │ └── resource.py │ └── __init__.py ├── .deepsource.toml ├── .pep8speaks.yml ├── config.env.sample └── .gitignore /plugins/fun/autopic/resources/font.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UsergeTeam/Userge-Plugins/HEAD/plugins/fun/autopic/resources/font.ttf -------------------------------------------------------------------------------- /plugins/admin/antiflood/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: -------------------------------------------------------------------------------- /plugins/fun/brain/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/hack/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/spam/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/type/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/admin/gmute/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/admin/locks/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/admin/purge/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/convert/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/kill/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/poll/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/weebify/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/whois/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/misc/webupload/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/tools/delete/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/tools/ids/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/tools/repo/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/tools/sd/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/admins/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/attach/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/calendar/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/chat/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/notes/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/admin/arsenal/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/animesticker/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/autobio/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: user 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/autoname/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: user 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/carb/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: requests 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/figlet/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: pyfiglet 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/gifify/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: lottie 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/memify/resources/MutantAcademyStyle.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UsergeTeam/Userge-Plugins/HEAD/plugins/fun/memify/resources/MutantAcademyStyle.ttf -------------------------------------------------------------------------------- /plugins/fun/pat/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: aiohttp 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/quote/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: user 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/tools/alive/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 789 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: wget 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/afk/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: user 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/azan/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: requests 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/cbutton/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: bot 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/covid/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: false 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: covid 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/create/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: user 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/dic/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: aiohttp 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/domain/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: user 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/filters/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/livesubs/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/profile/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/sangmata/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: user 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/time/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: pytz 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/welcome/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | bins: 7 | envs: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/belo_tips/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: user 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/word_counter/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: user 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/misc/zippyshare/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: requests 9 | depends: -------------------------------------------------------------------------------- /plugins/tools/secret_msg/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: bot 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/tools/sysinfo/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: psutil 9 | depends: -------------------------------------------------------------------------------- /plugins/tools/usage/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: requests 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/app/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: aiohttp, bs4 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/bitly/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: gdshortener 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/botpm/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: bot 6 | envs: 7 | bins: 8 | packages: wget 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/botsz/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: user 6 | envs: 7 | bins: 8 | packages: pytz 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/cnf/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: aiohttp, bs4 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/github/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: requests 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/header/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: requests 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/iplookup/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: aiohttp 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/mentions/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: user 6 | envs: 7 | bins: 8 | packages: 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/requote/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: requests 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/tts/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: hachoir, gtts 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/watch/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: justwatch 9 | depends: -------------------------------------------------------------------------------- /plugins/admin/gadmin/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: emoji==0.6.0 9 | depends: -------------------------------------------------------------------------------- /plugins/admin/gban/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: emoji==0.6.0 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/autofastly/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: user 6 | envs: 7 | bins: 8 | packages: 9 | depends: ocr -------------------------------------------------------------------------------- /plugins/fun/meme/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: user 6 | envs: 7 | bins: ffmpeg 8 | packages: lottie 9 | depends: -------------------------------------------------------------------------------- /plugins/misc/download/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: pySmartDL 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/articles/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: newspaper3k 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/country/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: countryinfo 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/genss/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: ffmpeg 8 | packages: hachoir 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/paste/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: aiohttp, aiofiles 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/qr_code/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: qrcode, bs4 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/wikipedia/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | bins: 7 | envs: 8 | packages: wikipedia 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/memes/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: requests, wget, cowpy 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/rgb_sticklet/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: Pillow==9.0.0 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/labstack/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: requests, pySmartDL 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/lyrics/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: aiohttp, bs4, google 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/ud/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: aiohttp 9 | depends: 10 | -------------------------------------------------------------------------------- /plugins/misc/thumbnail/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: pybase64, aiofiles 9 | depends: -------------------------------------------------------------------------------- /plugins/tools/speedtest/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: wget, speedtest-cli 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/logo_maker/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: aiohttp, aiofiles, bs4 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/ocr/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: OCR_SPACE_API_KEY 7 | bins: 8 | packages: requests 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/pmpermit/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: user 6 | envs: 7 | bins: 8 | packages: aiohttp, aiofiles 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/virus_total/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 799 4 | max_core: 0 5 | client_type: 6 | envs: VT_API_KEY 7 | bins: 8 | packages: requests 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/autopic/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: user 6 | envs: 7 | bins: 8 | packages: aiofiles, Pillow==9.0.0 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/deepfry/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: ffmpeg 8 | packages: Pillow==9.0.0, lottie 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/kang/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: ffmpeg 8 | packages: Pillow==9.0.0, hachoir 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/memify/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: ffmpeg 8 | packages: Pillow==9.0.0, lottie 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/transform/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: ffmpeg 8 | packages: Pillow==9.0.0, lottie 9 | depends: -------------------------------------------------------------------------------- /plugins/misc/ff_mpeg/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: ffmpeg 8 | packages: ffmpeg-python 9 | depends: download -------------------------------------------------------------------------------- /plugins/utils/currency/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: CURRENCY_API 7 | bins: 8 | packages: aiohttp, emoji 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/direct_links/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: requests, bs4, pybase64 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/google/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: search-engine-parser>=0.6.6 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/removebg/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: REMOVE_BG_API_KEY 7 | bins: 8 | packages: removebg 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/transcribe/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: aiohttp, pydub 9 | depends: download -------------------------------------------------------------------------------- /plugins/utils/translate/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: emoji, googletrans==4.0.0rc1 9 | depends: -------------------------------------------------------------------------------- /plugins/admin/night_mode/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: apscheduler, pytz 9 | depends: 10 | -------------------------------------------------------------------------------- /plugins/misc/utube/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: wget, yt-dlp 9 | depends: upload 10 | -------------------------------------------------------------------------------- /plugins/utils/music/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: false 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: ARQ_KEY 7 | bins: 8 | packages: aiohttp, python-arq 9 | depends: download -------------------------------------------------------------------------------- /plugins/utils/wallpaper/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: requests, wget, Pillow==9.0.0 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/weather/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | bins: 7 | envs: OPEN_WEATHER_MAP 8 | packages: pytz, aiohttp 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/yandex_reverse_search/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | bins: 7 | envs: 8 | packages: aiofiles, telegraph 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/carbon/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: aiofiles, selenium==4.2.0 9 | depends: 10 | -------------------------------------------------------------------------------- /plugins/fun/glitch/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: ffmpeg 8 | packages: glitch-this, Pillow==9.0.0, lottie 9 | depends: -------------------------------------------------------------------------------- /plugins/fun/tweet/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: Pillow==9.0.0, validators, requests, emoji 9 | depends: -------------------------------------------------------------------------------- /plugins/misc/parser/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: bs4, requests, pybase64 9 | depends: 10 | -------------------------------------------------------------------------------- /plugins/utils/google_reverse_search/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: ffmpeg 8 | packages: requests, bs4 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/info/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: aiohttp, spamwatch, UsergeAntiSpamApi==0.1.8 9 | depends: -------------------------------------------------------------------------------- /plugins/misc/rss_feed/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: wget, feedparser, python-dateutil 9 | depends: 10 | -------------------------------------------------------------------------------- /plugins/admin/antispam/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 799 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: UsergeAntiSpamApi==0.1.8, spamwatch, aiohttp 9 | depends: gban -------------------------------------------------------------------------------- /plugins/misc/spotdl/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: git+https://github.com/Phyco-Ninja/spotify-downloader 9 | depends: upload -------------------------------------------------------------------------------- /plugins/misc/telegraph/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | packages: aiofiles, Pillow==9.0.0, telegraph, html-telegraph-poster 9 | depends: -------------------------------------------------------------------------------- /plugins/misc/upload/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: ffmpeg 8 | packages: stagger, Pillow==9.0.0, hachoir 9 | depends: download, thumbnail -------------------------------------------------------------------------------- /plugins/misc/deezloader/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: false 3 | min_core: 799 4 | max_core: 0 5 | client_type: 6 | envs: ARL_TOKEN 7 | bins: 8 | packages: git+https://github.com/TomyPrs/deezloader 9 | depends: upload -------------------------------------------------------------------------------- /plugins/utils/lastfm/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: FM_API, FM_SECRET, FM_USERNAME, FM_PASSWORD 7 | bins: 8 | packages: pylast, aiohttp, wget 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/webss/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | bins: 7 | envs: GOOGLE_CHROME_BIN 8 | packages: aiofiles, selenium, fake-headers 9 | depends: 10 | -------------------------------------------------------------------------------- /plugins/utils/google_img/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 799 4 | max_core: 0 5 | client_type: 6 | envs: GCS_API_KEY, GCS_IMAGE_E_ID 7 | bins: 8 | packages: google-images-search==1.3.8, Pillow==9.0.0 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/hash/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | os: linux 4 | min_core: 0 5 | max_core: 0 6 | client_type: 7 | envs: 8 | bins: md5sum, sha1sum, sha256sum, sha512sum, rm 9 | packages: pybase64 10 | depends: -------------------------------------------------------------------------------- /plugins/utils/anilist/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 0 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: ffmpeg 8 | packages: emoji-country-flag, humanize, tracemoepy, aiohttp, html-telegraph-poster 9 | depends: -------------------------------------------------------------------------------- /plugins/utils/imdb/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: IMDB_API_ONE_URL, IMDB_API_TWO_URL, IMDB_API_THREE_URL 7 | bins: 8 | packages: requests 9 | depends: 10 | -------------------------------------------------------------------------------- /.deepsource.toml: -------------------------------------------------------------------------------- 1 | version = 1 2 | 3 | [[analyzers]] 4 | name = "python" 5 | enabled = true 6 | dependency_file_paths = ["requirements.txt"] 7 | 8 | [analyzers.meta] 9 | runtime_version = "3.x.x" 10 | max_line_length = 100 11 | -------------------------------------------------------------------------------- /plugins/misc/pathlib/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: 7 | bins: 8 | # rar: removed because its being used only in unpack cmd and most of users don't use it. 9 | packages: rarfile 10 | depends: -------------------------------------------------------------------------------- /plugins/misc/gdrive/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 799 4 | max_core: 0 5 | client_type: 6 | envs: G_DRIVE_CLIENT_ID, G_DRIVE_CLIENT_SECRET 7 | bins: 8 | packages: oauth2client, google-api-python-client, google-auth-httplib2, google-auth-oauthlib 9 | depends: download -------------------------------------------------------------------------------- /plugins/utils/video_chat/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | os: linux 4 | min_core: 827 5 | max_core: 0 6 | client_type: 7 | envs: SESSION_STRING | VC_SESSION_STRING 8 | bins: node, ffmpeg, ffprobe 9 | packages: requests, yt-dlp, py-tgcalls==0.9.1, youtube-search-python==1.4.9 10 | depends: -------------------------------------------------------------------------------- /plugins/misc/google_photos/config.ini: -------------------------------------------------------------------------------- 1 | [DEFAULT] 2 | available: true 3 | min_core: 827 4 | max_core: 0 5 | client_type: 6 | envs: G_PHOTOS_CLIENT_ID | G_DRIVE_CLIENT_ID, G_PHOTOS_CLIENT_SECRET | G_DRIVE_CLIENT_SECRET 7 | bins: 8 | packages: aiohttp, aiofiles, oauth2client, google-api-python-client, google-auth-httplib2, google-auth-oauthlib 9 | depends: download 10 | -------------------------------------------------------------------------------- /.pep8speaks.yml: -------------------------------------------------------------------------------- 1 | # File : .pep8speaks.yml 2 | 3 | scanner: 4 | linter: flake8 5 | 6 | flake8: 7 | max-line-length: 100 8 | ignore: 9 | - W503 # line break before binary operator 10 | 11 | message: 12 | opened: 13 | header: "@{name}, Thanks for opening this PR." 14 | updated: 15 | header: "@{name}, Thanks for updating this PR." 16 | -------------------------------------------------------------------------------- /plugins/fun/spam/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ spam """ 10 | -------------------------------------------------------------------------------- /plugins/fun/memify/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ memify """ 10 | -------------------------------------------------------------------------------- /plugins/tools/ids/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ get ids """ 10 | -------------------------------------------------------------------------------- /plugins/admin/gmute/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ setup gmute """ 10 | -------------------------------------------------------------------------------- /plugins/fun/carb/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ create carbon """ 10 | -------------------------------------------------------------------------------- /plugins/fun/glitch/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Glitch Media """ 10 | -------------------------------------------------------------------------------- /plugins/fun/hack/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Hack Animation """ 10 | -------------------------------------------------------------------------------- /plugins/fun/kill/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ kill animation """ 10 | -------------------------------------------------------------------------------- /plugins/fun/memes/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ enjoy memes """ 10 | -------------------------------------------------------------------------------- /plugins/fun/pat/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ give head pat """ 10 | -------------------------------------------------------------------------------- /plugins/fun/quote/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ create quote """ 10 | -------------------------------------------------------------------------------- /plugins/tools/usage/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ check usage """ 10 | -------------------------------------------------------------------------------- /plugins/utils/notes/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ setup notes """ 10 | -------------------------------------------------------------------------------- /plugins/admin/arsenal/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Ban/Kick all """ 10 | -------------------------------------------------------------------------------- /plugins/admin/purge/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ purge messages """ 10 | -------------------------------------------------------------------------------- /plugins/fun/autobio/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Auto Update Bio """ 10 | -------------------------------------------------------------------------------- /plugins/fun/autofastly/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ auto fastly """ 10 | -------------------------------------------------------------------------------- /plugins/fun/brain/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ brain Animation """ 10 | -------------------------------------------------------------------------------- /plugins/fun/convert/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ convert text """ 10 | -------------------------------------------------------------------------------- /plugins/fun/whois/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ get user details """ 10 | -------------------------------------------------------------------------------- /plugins/misc/ff_mpeg/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ fmmpeg module """ 10 | -------------------------------------------------------------------------------- /plugins/tools/delete/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ delete message """ 10 | -------------------------------------------------------------------------------- /plugins/tools/speedtest/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ speedtest """ 10 | -------------------------------------------------------------------------------- /plugins/utils/afk/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ setup AFK mode """ 10 | -------------------------------------------------------------------------------- /plugins/utils/anilist/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ setup AFK mode """ 10 | -------------------------------------------------------------------------------- /plugins/utils/bitly/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Url shortener """ 10 | -------------------------------------------------------------------------------- /plugins/utils/calendar/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ get calendar """ 10 | -------------------------------------------------------------------------------- /plugins/utils/country/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ country info """ 10 | -------------------------------------------------------------------------------- /plugins/utils/filters/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ setup filters """ 10 | -------------------------------------------------------------------------------- /plugins/utils/google/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ google search """ 10 | -------------------------------------------------------------------------------- /plugins/utils/requote/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Requote Text """ 10 | -------------------------------------------------------------------------------- /plugins/utils/tts/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ text to speech """ 10 | -------------------------------------------------------------------------------- /plugins/fun/autoname/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Auto Update Name """ 10 | -------------------------------------------------------------------------------- /plugins/fun/figlet/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ create figlet text """ 10 | -------------------------------------------------------------------------------- /plugins/fun/gifify/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Plugin for tgs to GiF """ 10 | -------------------------------------------------------------------------------- /plugins/fun/meme/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ write text on images """ 10 | -------------------------------------------------------------------------------- /plugins/fun/tweet/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Fun Stickers for Tweet """ 10 | -------------------------------------------------------------------------------- /plugins/fun/type/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ simulate a typewriter """ 10 | -------------------------------------------------------------------------------- /plugins/fun/word_counter/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Word Counter """ 10 | -------------------------------------------------------------------------------- /plugins/misc/spotdl/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ spotdl downloader """ 10 | -------------------------------------------------------------------------------- /plugins/misc/telegraph/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ telegraph uploader """ 10 | -------------------------------------------------------------------------------- /plugins/tools/sysinfo/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ get system info """ 10 | -------------------------------------------------------------------------------- /plugins/utils/articles/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ scrape articles """ 10 | -------------------------------------------------------------------------------- /plugins/utils/azan/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Islamic Prayers Time """ 10 | -------------------------------------------------------------------------------- /plugins/utils/covid/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ see covid details """ 10 | -------------------------------------------------------------------------------- /plugins/utils/create/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ create a channel """ 10 | -------------------------------------------------------------------------------- /plugins/utils/genss/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ generate screenshot """ 10 | -------------------------------------------------------------------------------- /plugins/utils/header/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ view headers in URL """ 10 | -------------------------------------------------------------------------------- /plugins/utils/iplookup/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Iplookup Plugin """ 10 | -------------------------------------------------------------------------------- /plugins/utils/labstack/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ labstack uploader """ 10 | -------------------------------------------------------------------------------- /plugins/utils/livesubs/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Live subs count """ 10 | -------------------------------------------------------------------------------- /plugins/utils/lyrics/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ lyrics genius module """ 10 | -------------------------------------------------------------------------------- /plugins/utils/paste/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ paste text to bin """ 10 | -------------------------------------------------------------------------------- /plugins/utils/transcribe/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ speech to text """ 10 | -------------------------------------------------------------------------------- /plugins/utils/wallpaper/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Wallpaper Module """ 10 | -------------------------------------------------------------------------------- /plugins/utils/wikipedia/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ wikipedia search """ 10 | -------------------------------------------------------------------------------- /plugins/admin/locks/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ set permissions to users """ 10 | -------------------------------------------------------------------------------- /plugins/misc/pathlib/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ work with paths or files """ 10 | -------------------------------------------------------------------------------- /plugins/misc/webupload/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ upload files to web """ 10 | -------------------------------------------------------------------------------- /plugins/tools/secret_msg/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ send a secret msg """ 10 | -------------------------------------------------------------------------------- /plugins/utils/admins/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ view or mentions admins """ 10 | -------------------------------------------------------------------------------- /plugins/utils/botsz/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Pings All Defined Bots """ 10 | -------------------------------------------------------------------------------- /plugins/utils/dic/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ English DIctionary telegram """ 10 | -------------------------------------------------------------------------------- /plugins/utils/hash/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ hash , encode and decode """ 10 | -------------------------------------------------------------------------------- /plugins/utils/mentions/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Mentions alerter Plugin """ 10 | -------------------------------------------------------------------------------- /plugins/admin/__init__.py: -------------------------------------------------------------------------------- 1 | # pylint: disable=missing-module-docstring 2 | # 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | -------------------------------------------------------------------------------- /plugins/fun/__init__.py: -------------------------------------------------------------------------------- 1 | # pylint: disable=missing-module-docstring 2 | # 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | -------------------------------------------------------------------------------- /plugins/fun/autopic/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ auto update profile picture """ 10 | -------------------------------------------------------------------------------- /plugins/fun/belo_tips/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Tips and Being Logical Quotes """ 10 | -------------------------------------------------------------------------------- /plugins/fun/rgb_sticklet/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ create random rgb sticker """ 10 | -------------------------------------------------------------------------------- /plugins/fun/transform/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Ghost, filp/mirror, rotate """ 10 | -------------------------------------------------------------------------------- /plugins/fun/weebify/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ create text using weeby font """ 10 | -------------------------------------------------------------------------------- /plugins/misc/__init__.py: -------------------------------------------------------------------------------- 1 | # pylint: disable=missing-module-docstring 2 | # 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | -------------------------------------------------------------------------------- /plugins/tools/__init__.py: -------------------------------------------------------------------------------- 1 | # pylint: disable=missing-module-docstring 2 | # 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | -------------------------------------------------------------------------------- /plugins/utils/__init__.py: -------------------------------------------------------------------------------- 1 | # pylint: disable=missing-module-docstring 2 | # 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | -------------------------------------------------------------------------------- /plugins/utils/app/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Fetch App Details from Playstore """ 10 | -------------------------------------------------------------------------------- /plugins/utils/attach/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ attach link preview to message """ 10 | -------------------------------------------------------------------------------- /plugins/utils/cbutton/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Create Buttons Through Bots """ 10 | -------------------------------------------------------------------------------- /plugins/utils/cnf/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ install any command on any OS """ 10 | -------------------------------------------------------------------------------- /plugins/utils/domain/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ see all group and channels """ 10 | -------------------------------------------------------------------------------- /plugins/utils/logo_maker/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ get logo from brandcrowd """ 10 | -------------------------------------------------------------------------------- /plugins/utils/profile/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ All Profile Settings for User """ 10 | -------------------------------------------------------------------------------- /plugins/fun/animesticker/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Creates random anime sticker """ 10 | -------------------------------------------------------------------------------- /plugins/fun/deepfry/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ deepfry and fry for frying any media """ 10 | -------------------------------------------------------------------------------- /plugins/tools/sd/__init__.py: -------------------------------------------------------------------------------- 1 | # pylint: disable=missing-module-docstring 2 | # 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | -------------------------------------------------------------------------------- /plugins/utils/direct_links/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ generate direct download link """ 10 | -------------------------------------------------------------------------------- /plugins/utils/welcome/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ auto welcome and left messages """ 10 | -------------------------------------------------------------------------------- /plugins/admin/antiflood/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Anti-Flood Module to control Spam """ 10 | -------------------------------------------------------------------------------- /plugins/misc/zippyshare/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ generate direct link of zippyshare """ 10 | -------------------------------------------------------------------------------- /plugins/utils/google_reverse_search/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ google reverse search """ 10 | -------------------------------------------------------------------------------- /plugins/utils/qr_code/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Generate QR code or get QR code data """ 10 | -------------------------------------------------------------------------------- /plugins/utils/sangmata/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ check user name or username history """ 10 | -------------------------------------------------------------------------------- /plugins/utils/yandex_reverse_search/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Yandex reverse search """ 10 | -------------------------------------------------------------------------------- /plugins/fun/poll/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ create poll, vote poll, stop poll, retract vote """ 10 | -------------------------------------------------------------------------------- /plugins/utils/chat/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Chat info, Join and leave chat, tagall and tag admins """ 10 | -------------------------------------------------------------------------------- /plugins/utils/github/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Plugin for getting information about an user on GitHub """ 10 | -------------------------------------------------------------------------------- /plugins/utils/ud/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ urban dictionary """ 10 | URBAN_API_URL = "https://api.urbandictionary.com/v0/define?term={Q}" 11 | -------------------------------------------------------------------------------- /plugins/utils/time/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ get date and time """ 10 | 11 | import os 12 | 13 | COUNTRY_CITY = os.environ.get("COUNTRY_CITY") 14 | -------------------------------------------------------------------------------- /plugins/utils/translate/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Translator """ 10 | 11 | import os 12 | 13 | LANG = os.environ.get("PREFERRED_LANGUAGE", "en") 14 | -------------------------------------------------------------------------------- /plugins/misc/utube/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ work with youtube """ 10 | 11 | import os 12 | 13 | YTDL_PYMOD = os.environ.get("YOUTUBE_DL_PATH", "yt_dlp") 14 | -------------------------------------------------------------------------------- /plugins/misc/deezloader/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ deezloader """ 10 | 11 | from userge.utils import secured_env 12 | 13 | ARL_TOKEN = secured_env("ARL_TOKEN") 14 | -------------------------------------------------------------------------------- /plugins/fun/kang/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """kang stickers or creates new ones""" 10 | 11 | import os 12 | 13 | CUSTOM_PACK_NAME = os.environ.get("CUSTOM_PACK_NAME") 14 | -------------------------------------------------------------------------------- /plugins/misc/download/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ downloader """ 10 | 11 | # skipcq 12 | from .downloader import handle_download, url_download, tg_download # noqa 13 | -------------------------------------------------------------------------------- /plugins/utils/currency/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ convert currency """ 10 | 11 | from userge.utils import secured_env 12 | 13 | CURRENCY_API = secured_env("CURRENCY_API") 14 | -------------------------------------------------------------------------------- /plugins/utils/watch/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ get stream link of movie/series """ 10 | 11 | import os 12 | 13 | WATCH_COUNTRY = os.environ.get("WATCH_COUNTRY", "IN") 14 | -------------------------------------------------------------------------------- /plugins/tools/repo/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ see repo """ 10 | 11 | import os 12 | 13 | UPSTREAM_REPO = os.environ.get("UPSTREAM_REPO", "https://github.com/UsergeTeam/Userge") 14 | -------------------------------------------------------------------------------- /plugins/utils/music/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Music , To Search and Download HQ Music From JioSaavn And Deezer""" 10 | 11 | import os 12 | 13 | ARQ_KEY = os.environ.get("ARQ_KEY") 14 | -------------------------------------------------------------------------------- /plugins/utils/removebg/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ remove background from image """ 10 | 11 | from userge.utils import secured_env 12 | 13 | REMOVE_BG_API_KEY = secured_env("REMOVE_BG_API_KEY") 14 | -------------------------------------------------------------------------------- /plugins/utils/virus_total/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Virus-Total module to check virus in files """ 10 | 11 | from userge.utils import secured_env 12 | 13 | API_KEY = secured_env("VT_API_KEY") 14 | -------------------------------------------------------------------------------- /plugins/misc/thumbnail/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ custom thumbnail """ 10 | 11 | from userge import config 12 | 13 | 14 | class Dynamic: 15 | THUMB_PATH = config.Dynamic.DOWN_PATH + "thumb_image.jpg" 16 | -------------------------------------------------------------------------------- /plugins/utils/weather/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ get weather details """ 10 | 11 | import os 12 | 13 | OPEN_WEATHER_MAP = os.environ.get("OPEN_WEATHER_MAP") 14 | WEATHER_DEFCITY = os.environ.get("WEATHER_DEFCITY") 15 | -------------------------------------------------------------------------------- /plugins/fun/carbon/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ create carbon """ 10 | 11 | import os 12 | 13 | GOOGLE_CHROME_DRIVER = os.environ.get("GOOGLE_CHROME_DRIVER") 14 | GOOGLE_CHROME_BIN = os.environ.get("GOOGLE_CHROME_BIN") 15 | -------------------------------------------------------------------------------- /plugins/utils/botpm/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Bot Pm """ 10 | 11 | import os 12 | 13 | START_MEDIA = os.environ.get("START_MEDIA") 14 | UPSTREAM_REPO = os.environ.get("UPSTREAM_REPO", "https://github.com/UsergeTeam/Userge") 15 | -------------------------------------------------------------------------------- /plugins/utils/webss/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ get snapshot of website """ 10 | 11 | import os 12 | 13 | GOOGLE_CHROME_DRIVER = os.environ.get("GOOGLE_CHROME_DRIVER") 14 | GOOGLE_CHROME_BIN = os.environ.get("GOOGLE_CHROME_BIN") 15 | -------------------------------------------------------------------------------- /plugins/utils/info/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ check user's info """ 10 | 11 | from userge.utils import secured_env 12 | 13 | 14 | USERGE_ANTISPAM_API = secured_env("USERGE_ANTISPAM_API") 15 | SPAM_WATCH_API = secured_env("SPAM_WATCH_API") 16 | -------------------------------------------------------------------------------- /plugins/tools/alive/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ check your userbot is alive """ 10 | 11 | import os 12 | 13 | ALIVE_MEDIA = os.environ.get("ALIVE_MEDIA") 14 | UPSTREAM_REPO = os.environ.get("UPSTREAM_REPO", "https://github.com/UsergeTeam/Userge") 15 | -------------------------------------------------------------------------------- /plugins/utils/pmpermit/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ setup auto pm message """ 10 | 11 | from pyrogram import filters 12 | 13 | ALLOWED_CHATS = filters.chat([]) 14 | 15 | 16 | class Dynamic: 17 | ALLOW_ALL_PMS = True 18 | IS_INLINE = True 19 | -------------------------------------------------------------------------------- /plugins/utils/google_img/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ google image search """ 10 | 11 | import os 12 | 13 | from userge.utils import secured_env 14 | 15 | GCS_API_KEY = secured_env("GCS_API_KEY") 16 | GCS_IMAGE_E_ID = os.environ.get("GCS_IMAGE_E_ID") 17 | -------------------------------------------------------------------------------- /plugins/misc/rss_feed/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Rss Feed Plugin to get regular updates from Feed """ 10 | 11 | from os import environ 12 | 13 | from userge import config 14 | 15 | RSS_CHAT_ID = [int(x) for x in environ.get("RSS_CHAT_ID", str(config.LOG_CHANNEL_ID)).split()] 16 | -------------------------------------------------------------------------------- /plugins/admin/antispam/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ setup antispam """ 10 | 11 | from userge.utils import secured_env 12 | 13 | USERGE_ANTISPAM_API = secured_env("USERGE_ANTISPAM_API") 14 | SPAM_WATCH_API = secured_env("SPAM_WATCH_API") 15 | 16 | 17 | class Dynamic: 18 | ANTISPAM_SENTRY = True 19 | -------------------------------------------------------------------------------- /plugins/admin/gban/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ setup gban """ 10 | 11 | from os import environ 12 | from typing import Dict 13 | 14 | WHITE_CACHE: Dict[int, str] = {} 15 | FBAN_CHAT_ID = int(environ.get("FBAN_CHAT_ID") or 0) 16 | 17 | 18 | async def is_whitelist(user_id: int) -> bool: 19 | return user_id in WHITE_CACHE 20 | -------------------------------------------------------------------------------- /plugins/admin/gadmin/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ manage your group """ 10 | 11 | from typing import Dict, List 12 | 13 | ENABLED_CHATS: List[int] = [] 14 | BAN_CHANNELS: List[int] = [] # list of chats which enabled ban_mode 15 | ALLOWED: Dict[int, List[int]] = {} # dict to store chat ids which are allowed to chat as channels 16 | -------------------------------------------------------------------------------- /plugins/utils/imdb/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ search movies/tv series in imdb """ 10 | 11 | import os 12 | 13 | API_ONE_URL = os.environ.get("IMDB_API_ONE_URL") 14 | API_TWO_URL = os.environ.get("IMDB_API_TWO_URL") 15 | API_THREE_URL = os.environ.get("IMDB_API_THREE_URL") 16 | WATCH_COUNTRY = os.environ.get("WATCH_COUNTRY", "en_IN") 17 | -------------------------------------------------------------------------------- /plugins/misc/parser/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ parse gdtot and appdrive links """ 10 | 11 | import os 12 | 13 | APPDRIVE_EMAIL = os.environ.get("APPDRIVE_EMAIL") 14 | APPDRIVE_PASS = os.environ.get("APPDRIVE_PASS") 15 | 16 | 17 | class Dynamic: 18 | CRYPT = os.environ.get("CRYPT") 19 | # Website User Account (NOT GOOGLE ACCOUNT) 20 | -------------------------------------------------------------------------------- /plugins/misc/upload/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ upload , rename and convert telegram files """ 10 | 11 | # skipcq 12 | from .uploader import (upload_path, # noqa 13 | upload, 14 | doc_upload, 15 | audio_upload, 16 | vid_upload, 17 | photo_upload) 18 | -------------------------------------------------------------------------------- /plugins/admin/night_mode/__init__.py: -------------------------------------------------------------------------------- 1 | """ Night Mode for groups """ 2 | import os 3 | 4 | from apscheduler.jobstores.mongodb import MongoDBJobStore 5 | from apscheduler.schedulers.asyncio import AsyncIOScheduler 6 | from pymongo import MongoClient 7 | 8 | from userge import config 9 | 10 | TZ = os.environ.get("TIME_ZONE", "UTC") 11 | 12 | monclient = MongoClient(config.DB_URI) 13 | jobstores = { 14 | 'default': MongoDBJobStore( 15 | client=monclient, 16 | database="Userge", 17 | collection='APSCHEDULER')} 18 | 19 | # you can also import this scheduler to other plugins and use. 20 | 21 | scheduler = AsyncIOScheduler( 22 | jobstores=jobstores, 23 | timezone=TZ) 24 | -------------------------------------------------------------------------------- /plugins/utils/lastfm/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ last.fm module """ 10 | 11 | import os 12 | 13 | import pylast 14 | 15 | from userge import config 16 | 17 | API_KEY = os.environ.get("FM_API") 18 | API_SECRET = os.environ.get("FM_SECRET") 19 | USERNAME = os.environ.get("FM_USERNAME") 20 | PASSWORD = pylast.md5(os.environ.get("FM_PASSWORD")) 21 | CHAT_IDS = [ 22 | int(x) for x in os.environ.get("LASTFM_CHAT_ID", str(config.LOG_CHANNEL_ID)).split() 23 | ] 24 | -------------------------------------------------------------------------------- /plugins/misc/google_photos/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ Google Photos """ 10 | 11 | import os 12 | 13 | from userge.utils import secured_env 14 | 15 | G_PHOTOS_CLIENT_ID = secured_env("G_PHOTOS_CLIENT_ID") or secured_env("G_DRIVE_CLIENT_ID") 16 | 17 | G_PHOTOS_CLIENT_SECRET = secured_env("G_PHOTOS_CLIENT_SECRET") or \ 18 | secured_env("G_DRIVE_CLIENT_SECRET") 19 | 20 | G_PHOTOS_AUTH_TOKEN_ID = int(os.environ.get("G_PHOTOS_AUTH_TOKEN_ID") or 0) 21 | -------------------------------------------------------------------------------- /plugins/misc/gdrive/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ manage your gdrive """ 10 | 11 | import logging 12 | import os 13 | 14 | from userge.utils import secured_env 15 | 16 | logging.getLogger('googleapiclient.discovery').setLevel(logging.WARNING) 17 | 18 | G_DRIVE_CLIENT_ID = secured_env("G_DRIVE_CLIENT_ID") 19 | G_DRIVE_CLIENT_SECRET = secured_env("G_DRIVE_CLIENT_SECRET") 20 | G_DRIVE_PARENT_ID = os.environ.get("G_DRIVE_PARENT_ID") 21 | G_DRIVE_INDEX_LINK = os.environ.get("G_DRIVE_INDEX_LINK") 22 | G_DRIVE_IS_TD = bool(os.environ.get("G_DRIVE_IS_TD")) 23 | -------------------------------------------------------------------------------- /plugins/utils/requote/__main__.py: -------------------------------------------------------------------------------- 1 | """ Requote Text """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | # Author: Fayas (https://github.com/FayasNoushad) (@FayasNoushad) 12 | 13 | from requests.utils import requote_uri 14 | 15 | from userge import userge, Message 16 | 17 | 18 | @userge.on_cmd("requote", about={ 19 | 'header': "Requote Text", 20 | 'description': "get requoted text from a normal text", 21 | 'usage': "{tr}requote [text]"}) 22 | async def requote(update: Message): 23 | if not update.input_str: 24 | text = "Add requote text too." 25 | else: 26 | text = requote_uri(update.input_str) 27 | await update.edit( 28 | text=text, 29 | disable_web_page_preview=True 30 | ) 31 | -------------------------------------------------------------------------------- /plugins/tools/repo/__main__.py: -------------------------------------------------------------------------------- 1 | """ see repo """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | from userge import userge, Message, versions 12 | 13 | from . import UPSTREAM_REPO 14 | 15 | 16 | @userge.on_cmd("repo", about={'header': "get repo link and details"}) 17 | async def see_repo(message: Message): 18 | """see repo""" 19 | output = f""" 20 | **Hey**, __I am using__ 🔥 **Userge** 🔥 21 | 22 | __Durable as a Serge__ 23 | 24 | • **userge version** : `{await versions.get_full_version()}` 25 | • **loader version** : `{versions.__loader_version__}` 26 | • **license** : {versions.__license__} 27 | • **copyright** : {versions.__copyright__} 28 | • **repo** : [Userge]({UPSTREAM_REPO}) 29 | """ 30 | await message.edit(output) 31 | -------------------------------------------------------------------------------- /plugins/utils/attach/__main__.py: -------------------------------------------------------------------------------- 1 | """ attach link preview to message """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | # Author: Fayas (https://github.com/FayasNoushad) (@FayasNoushad) 12 | 13 | from userge import userge, Message 14 | 15 | 16 | @userge.on_cmd("attach", about={ 17 | 'header': "Attach any link's preview in a message", 18 | 'usage': "{tr}attach [link] [reply to a message]"}) 19 | async def attach(update: Message): 20 | """Attach links in message""" 21 | link = update.text.split()[1] 22 | replied = update.reply_to_message 23 | if replied is None or not link: 24 | await update.reply_text( 25 | text="`Reply to a text for attachment and provide link as input...`" 26 | ) 27 | return 28 | text = replied.text 29 | await replied.edit_text(text=f"[\u2063]({link}){text}") 30 | await update.delete() 31 | -------------------------------------------------------------------------------- /plugins/fun/type/__main__.py: -------------------------------------------------------------------------------- 1 | """ simulate a typewriter """ 2 | 3 | # Copyright (C) 2020-2021 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | from userge import userge, Message 12 | 13 | 14 | @userge.on_cmd("type", about={ 15 | 'header': "Simulate a typewriter", 16 | 'usage': "{tr}type [text]"}) 17 | async def type_(message: Message): 18 | text = message.input_str 19 | if not text: 20 | await message.err("input not found") 21 | return 22 | typing_symbol = '|' 23 | old_text = '' 24 | await message.edit(typing_symbol) 25 | for character in text: 26 | if message.process_is_canceled: 27 | await message.edit("`process cancelled`") 28 | break 29 | old_text += character 30 | typing_text = old_text + typing_symbol 31 | await message.try_to_edit(typing_text, sudo=False) 32 | await message.try_to_edit(old_text, sudo=False) 33 | -------------------------------------------------------------------------------- /plugins/fun/kill/__main__.py: -------------------------------------------------------------------------------- 1 | """ kill animation """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | # by Harsh , inspired by brain.py 12 | 13 | import asyncio 14 | 15 | from pyrogram import enums 16 | 17 | from userge import userge 18 | 19 | 20 | @userge.on_cmd("kill$", about={'header': "Kill anybody With Full Power ;-)"}) 21 | async def kill_func(message): 22 | animation_chars = [ 23 | "killing...", 24 | "Fiiiiire", 25 | "( ・ิω・ิ)︻デ═一-->", 26 | "------>_____________", 27 | "--------->___⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠_______", 28 | "-------------->_____", 29 | "------------------->", 30 | "------>;(^。^)ノ", 31 | "( ̄ー ̄) DED", 32 | "Target killed successfully (´°̥̥̥̥̥̥̥̥ω°̥̥̥̥̥̥̥̥`)", 33 | ] 34 | for i in range(10): 35 | await asyncio.sleep(0.6) 36 | await message.edit(animation_chars[i % 10], parse_mode=enums.ParseMode.HTML) 37 | -------------------------------------------------------------------------------- /config.env.sample: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/uaudith/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | # music.py 10 | ARQ_KEY = "" 11 | # To Generate ARQ key, send /get_key to @arqrobot 12 | 13 | # deezloader.py 14 | ARL_TOKEN = "" 15 | 16 | 17 | # google_img.py 18 | GCS_API_KEY = "" 19 | GCS_IMAGE_E_ID = "" 20 | 21 | 22 | # google_photos.py 23 | G_PHOTOS_CLIENT_ID = "" 24 | G_PHOTOS_CLIENT_SECRET = "" 25 | G_PHOTOS_AUTH_TOKEN_ID = "" 26 | 27 | 28 | # parser.py 29 | # get these by reading https://t.me/UsergePlugins/129 30 | CRYPT = "" 31 | APPDRIVE_EMAIL = "" # Website User Account (NOT GOOGLE ACCOUNT) 32 | APPDRIVE_PASS = "" # Website User Account (NOT GOOGLE ACCOUNT) 33 | 34 | 35 | # time.py 36 | COUNTRY_CITY = "" 37 | 38 | 39 | # transcribe.py 40 | # Add more API keys for more languages 41 | WIT_AI_API_EN = "" 42 | 43 | 44 | # watch.py 45 | WATCH_COUNTRY = "" 46 | 47 | 48 | # virus_total.py 49 | VT_API_KEY = "" 50 | 51 | 52 | # lastfm.py 53 | FM_API = "" 54 | FM_SECRET = "" 55 | FM_USERNAME = "" 56 | FM_PASSWORD = "" 57 | -------------------------------------------------------------------------------- /plugins/utils/create/__main__.py: -------------------------------------------------------------------------------- 1 | """ create a channel """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | from userge import userge, Message 12 | 13 | 14 | @userge.on_cmd( 15 | "channel", 16 | about={ 17 | 'header': "Creates a channel", 18 | 'usage': "{tr}channel TheUserge | Hello" 19 | }, 20 | allow_channels=False, 21 | allow_via_bots=False 22 | ) 23 | async def create_channel(message: Message): 24 | try: 25 | args = message.input_str 26 | if not args: 27 | return await message.err("title not found!") 28 | 29 | if '|' in args: 30 | title, des = args.split('|', maxsplit=1) 31 | else: 32 | title, des = args, "This channel is created using @TheUserge" 33 | if len(des) > 256: 34 | des = des.strip()[:253] + "..." 35 | await userge.create_channel(title.strip(), des.strip()) 36 | await message.edit(f"Successfully made a new channel **{title.strip()}**") 37 | except Exception as e: 38 | await message.err(str(e)) 39 | -------------------------------------------------------------------------------- /plugins/fun/belo_tips/__main__.py: -------------------------------------------------------------------------------- 1 | """ Tips and Being Logical Quotes """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | import random 12 | 13 | from userge import userge, Message 14 | 15 | 16 | @userge.on_cmd("belo", about={ 17 | 'header': "Get a Logical Quote", 18 | 'usage': "{tr}belo"}, allow_via_bot=False) 19 | async def being_logical(message: Message): 20 | raw_list = [msg async for msg in userge.get_chat_history("@BeingLogical")] 21 | raw_message = random.choice(raw_list) 22 | await message.edit(raw_message.text) 23 | 24 | 25 | @userge.on_cmd("tips", about={ 26 | 'header': "Get a Pro Tip", 27 | 'usage': "{tr}tips"}, allow_via_bot=False) 28 | async def pro_tips(message: Message): 29 | raw_list = [msg async for msg in userge.get_chat_history("Knowledge_Facts_Quotes_Reddit")] 30 | try: 31 | raw_message = random.choice(raw_list) 32 | pru_text = raw_message.text 33 | while "Pro Tip" not in pru_text: 34 | raw_message = random.choice(raw_list) 35 | pru_text = raw_message.text 36 | await message.edit(pru_text) 37 | # None Type Error 😴🙃 38 | except Exception: 39 | await message.edit("I Ran Out of Tips.") 40 | -------------------------------------------------------------------------------- /plugins/fun/brain/__main__.py: -------------------------------------------------------------------------------- 1 | """ brain Animation """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | # by Alone 12 | 13 | import asyncio 14 | 15 | from userge import userge 16 | 17 | 18 | @userge.on_cmd("brain$", about={'header': "Dump your Brain into Trash"}) 19 | async def brain_func(message): 20 | animation_chars = [ 21 | "YOᑌᖇ ᗷᖇᗩIᑎ ➡️ 🧠\n\n🧠 <(^_^ <)🗑", 22 | "YOᑌᖇ ᗷᖇᗩIᑎ ➡️ 🧠\n\n🧠 <(^_^ <) 🗑", 23 | "YOᑌᖇ ᗷᖇᗩIᑎ ➡️ 🧠\n\n🧠 <(^_^ <) 🗑", 24 | "YOᑌᖇ ᗷᖇᗩIᑎ ➡️ 🧠\n\n🧠 <(^_^ <) 🗑", 25 | "YOᑌᖇ ᗷᖇᗩIᑎ ➡️ 🧠\n\n🧠 <(^_^ <) 🗑", 26 | "YOᑌᖇ ᗷᖇᗩIᑎ ➡️ 🧠\n\n🧠<(^_^ <) 🗑", 27 | "YOᑌᖇ ᗷᖇᗩIᑎ ➡️ 🧠\n\n(> ^_^)>🧠 🗑", 28 | "YOᑌᖇ ᗷᖇᗩIᑎ ➡️ 🧠\n\n (> ^_^)>🧠 🗑", 29 | "YOᑌᖇ ᗷᖇᗩIᑎ ➡️ 🧠\n\n (> ^_^)>🧠 🗑", 30 | "YOᑌᖇ ᗷᖇᗩIᑎ ➡️ 🧠\n\n (> ^_^)>🧠 🗑", 31 | "YOᑌᖇ ᗷᖇᗩIᑎ ➡️ 🧠\n\n (> ^_^)>🧠 🗑", 32 | "YOᑌᖇ ᗷᖇᗩIᑎ ➡️ 🧠\n\n (> ^_^)>🧠🗑", 33 | "YOᑌᖇ ᗷᖇᗩIᑎ ➡️ 🧠\n\n (> ^_^)>🗑", 34 | "YOᑌᖇ ᗷᖇᗩIᑎ ➡️ 🧠\n\n <(^_^ <)🗑", 35 | ] 36 | for i in range(14): 37 | await asyncio.sleep(0.3) 38 | await message.edit(animation_chars[i % 14]) 39 | -------------------------------------------------------------------------------- /plugins/misc/download/__main__.py: -------------------------------------------------------------------------------- 1 | """ downloader """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | from userge import userge, Message 12 | from userge.utils.exceptions import ProcessCanceled 13 | 14 | from .. import download 15 | 16 | LOGGER = userge.getLogger(__name__) 17 | 18 | 19 | @userge.on_cmd("download", about={ 20 | 'header': "Download files to server", 21 | 'usage': "{tr}download [url | reply to telegram media]", 22 | 'examples': "{tr}download https://speed.hetzner.de/100MB.bin | testing upload.bin"}, 23 | check_downpath=True) 24 | async def down_load_media(message: Message): 25 | """ download from tg and url """ 26 | if message.reply_to_message: 27 | resource = message.reply_to_message 28 | elif message.input_str: 29 | resource = message.input_str 30 | else: 31 | await message.err("nothing found to download") 32 | return 33 | try: 34 | dl_loc, d_in = await download.handle_download(message, resource) 35 | except ProcessCanceled: 36 | await message.canceled() 37 | except Exception as e_e: # pylint: disable=broad-except 38 | await message.err(str(e_e)) 39 | else: 40 | await message.edit(f"Downloaded to `{dl_loc}` in {d_in} seconds") 41 | -------------------------------------------------------------------------------- /plugins/fun/weebify/__main__.py: -------------------------------------------------------------------------------- 1 | """ create text using weeby font """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | from userge import userge, Message 12 | 13 | normal_char = [ 14 | 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 15 | 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 16 | 'v', 'w', 'x', 'y', 'z' 17 | ] 18 | 19 | weeby_char = [ 20 | '卂', '乃', '匚', '刀', '乇', '下', '厶', '卄', '工', '丁', 21 | '长', '乚', '从', '𠘨', '口', '尸', '㔿', '尺', '丂', '丅', '凵', 22 | 'リ', '山', '乂', '丫', '乙' 23 | ] 24 | 25 | 26 | @userge.on_cmd("weebify", about={ 27 | 'header': "Weebify", 28 | 'description': "create text in a weeb style", 29 | 'usage': "{tr}weebify [text | reply]"}) 30 | async def _weeb_text(message: Message): 31 | args = message.input_or_reply_str 32 | if not args: 33 | await message.edit( 34 | "try:\n weebify\nexcept **Exception** as **Intelligence**:" 35 | f"\n print({message.from_user.first_name})" 36 | ) 37 | return 38 | str_ = ' '.join(args).lower() 39 | for nor_c in str_: 40 | if nor_c in normal_char: 41 | weeb_c = weeby_char[normal_char.index(nor_c)] 42 | str_ = str_.replace(nor_c, weeb_c) 43 | await message.edit(str_) 44 | -------------------------------------------------------------------------------- /plugins/utils/calendar/__main__.py: -------------------------------------------------------------------------------- 1 | """ get calendar """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | import calendar # pylint: disable=W0406 12 | from datetime import datetime 13 | 14 | from userge import userge, Message 15 | 16 | 17 | @userge.on_cmd("calendar", about={ 18 | 'header': "Print calendar of any month of any year.", 19 | 'usage': "{tr}calendar\n{tr}calendar [ year | month]", 20 | 'examples': "{tr}calendar 2020 | 6"}) 21 | async def _calendar(message: Message): 22 | 23 | if not message.input_str: 24 | await message.edit("`Searching...`") 25 | try: 26 | today = datetime.today() 27 | input_ = calendar.month(today.year, today.month) 28 | await message.edit(f"```\n{input_}```") 29 | except Exception as e: 30 | await message.err(e) 31 | return 32 | if '|' not in message.input_str: 33 | await message.err("both year and month required!") 34 | return 35 | await message.edit("`Searching...`") 36 | year, month = message.input_str.split('|', maxsplit=1) 37 | try: 38 | input_ = calendar.month(int(year.strip()), int(month.strip())) 39 | await message.edit(f"```\n{input_}```") 40 | except Exception as e: 41 | await message.err(e) 42 | -------------------------------------------------------------------------------- /plugins/fun/figlet/__main__.py: -------------------------------------------------------------------------------- 1 | """ create figlet text """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | # by Alone and krishna 12 | 13 | from pyfiglet import Figlet 14 | 15 | from userge import userge, Message 16 | 17 | 18 | @userge.on_cmd("figlet", about={ 19 | 'header': "Figlet", 20 | 'description': "Make Fancy Style text using Figlet", 21 | 'usage': "{tr}figlet font_name | [text | reply]", 22 | 'Fonts': "Check this " 23 | "link" 24 | " to know available fonts"}) 25 | async def figlet_(message: Message): 26 | args = message.input_or_reply_str 27 | if not args: 28 | await message.edit( 29 | "**Do You think this is Funny?**\n\n" 30 | "__Try this Blek Mejik:__\n\n" 31 | "```\n.help .figlet```") 32 | await message.reply_sticker(sticker="CAADBAAD1AIAAnV4kzMWpUTkTJ9JwRYE") 33 | return 34 | if "|" in message.input_or_reply_str: 35 | style, text = message.input_str.split('|') 36 | custom_fig = Figlet(font=style.strip()) 37 | await message.edit(f"```\n{custom_fig.renderText(text.strip())}```") 38 | return 39 | str_ = ' '.join(args) 40 | custom_fig = Figlet(font='xsans') 41 | await message.edit(f"```\n{custom_fig.renderText(str_)}```") 42 | -------------------------------------------------------------------------------- /plugins/fun/word_counter/__main__.py: -------------------------------------------------------------------------------- 1 | """ Word Counter """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | import asyncio 12 | 13 | from userge import userge, Message 14 | 15 | 16 | @userge.on_cmd("wordcount", about={ 17 | 'header': "Finds most 25 words used in last 1000 messages", 18 | 'usage': "{tr}wordcount"}, 19 | allow_private=False, allow_via_bot=False) 20 | async def word_count(message: Message): 21 | """ Finds most words used """ 22 | words = custom() 23 | await message.edit("```\nProcessed 0 messages...```") 24 | total = 0 25 | async for msg in userge.get_chat_history(message.chat.id, 1000): 26 | total += 1 27 | if total % 200 == 0: 28 | await message.edit(f"```\nProcessed {total} messages...```") 29 | await asyncio.sleep(0.5) 30 | if msg.text: 31 | for word in msg.text.split(): 32 | words[word.lower()] += 1 33 | if msg.caption: 34 | for word in msg.caption.split(): 35 | words[word.lower()] += 1 36 | freq = sorted(words, key=words.get, reverse=True) 37 | out = "`Word Counter of last 1000 messages.`\n" 38 | for i in range(25): 39 | out += f"{i + 1}. **{words[freq[i]]}**: `{freq[i]}`\n" 40 | await message.edit(out) 41 | 42 | 43 | class custom(dict): 44 | def __missing__(self, key): 45 | return 0 46 | -------------------------------------------------------------------------------- /plugins/utils/ocr/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ ocr reader """ 10 | 11 | import requests 12 | 13 | from userge import pool 14 | from userge.utils import secured_env 15 | 16 | OCR_SPACE_API_KEY = secured_env("OCR_SPACE_API_KEY") 17 | 18 | 19 | @pool.run_in_thread 20 | def ocr_space_file(filename, 21 | language='eng', 22 | overlay=False, 23 | api_key=OCR_SPACE_API_KEY): 24 | """ 25 | OCR.space API request with local file. 26 | Python3.5 - not tested on 2.7 27 | :param filename: Your file path & name. 28 | :param overlay: Is OCR.space overlay required in your response. 29 | Defaults to False. 30 | :param api_key: OCR.space API key. 31 | Defaults to 'helloworld'. 32 | :param language: Language code to be used in OCR. 33 | List of available language codes can be found on https://ocr.space/OCRAPI 34 | Defaults to 'en'. 35 | :return: Result in JSON format. 36 | """ 37 | payload = { 38 | 'isOverlayRequired': overlay, 39 | 'apikey': api_key, 40 | 'language': language, 41 | } 42 | with open(filename, 'rb') as f: 43 | r = requests.post( 44 | 'https://api.ocr.space/parse/image', 45 | files={filename: f}, 46 | data=payload, 47 | ) 48 | return r.json() 49 | -------------------------------------------------------------------------------- /plugins/utils/country/__main__.py: -------------------------------------------------------------------------------- 1 | """ country info """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | # Author: Fayas (https://github.com/FayasNoushad) (@FayasNoushad) 12 | 13 | from countryinfo import CountryInfo 14 | 15 | from userge import userge, Message 16 | 17 | PREVIEW = False # False for instant view 18 | 19 | 20 | @userge.on_cmd("country", about={ 21 | 'header': "Country Info", 22 | 'description': "get information of a country", 23 | 'usage': "{tr}country [name]"}) 24 | async def countryinfo(update: Message): 25 | if " " not in update.text: 26 | await update.edit_text("Send with country name") 27 | return 28 | country = CountryInfo(update.text.split(" ", 1)[1]) 29 | info = f"""**Country Information** 30 | 31 | Name : `{country.name()}` 32 | Native Name : `{country.native_name()}` 33 | Capital : `{country.capital()}` 34 | Population : `{country.population()}` 35 | Region : `{country.region()}` 36 | Sub Region : `{country.subregion()}` 37 | Top Level Domains : `{country.tld()}` 38 | Calling Codes : `{country.calling_codes()}` 39 | Currencies : `{country.currencies()}` 40 | Residence : `{country.demonym()}` 41 | Timezone : `{country.timezones()}` 42 | Wiki : {country.wiki()}""" 43 | try: 44 | await update.edit_text(text=info, disable_web_page_preview=PREVIEW) 45 | except Exception as error: 46 | await update.edit_text(text=error, disable_web_page_preview=True) 47 | -------------------------------------------------------------------------------- /plugins/utils/header/__main__.py: -------------------------------------------------------------------------------- 1 | """ view headers in URL """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | import requests 12 | 13 | from userge import userge, Message 14 | 15 | 16 | @userge.on_cmd("head", about={ 17 | 'header': "View headers in URL", 18 | 'flags': { 19 | '-r': "allow redirects", 20 | '-s': "allow streams", 21 | '-t': "request timeout"}, 22 | 'usage': "{tr}head [flags] [url]", 23 | 'examples': "{tr}head -r -s -t5 https://www.google.com"}) 24 | async def req_head(message: Message): 25 | await message.edit("Processing ...") 26 | link = message.filtered_input_str 27 | flags = message.flags 28 | red = '-r' in flags 29 | stm = '-s' in flags 30 | tout = int(flags.get('-t', 3)) 31 | if not link: 32 | await message.err("Please give me a link link!") 33 | return 34 | try: 35 | cd = requests.head(url=link, 36 | stream=stm, 37 | allow_redirects=red, 38 | timeout=tout) 39 | except Exception as i_e: 40 | await message.err(i_e) 41 | return 42 | output = f"**URL**: `{link}`\n\n**STATUS CODE**: __{cd.status_code}__\n\n**HEADERS**:\n\n" 43 | for k, v in cd.headers.items(): 44 | output += f" 🏷 __{k.lower()}__ : `{v}`\n\n" 45 | await message.edit_or_send_as_file(text=output, caption=link, 46 | disable_web_page_preview=True) 47 | -------------------------------------------------------------------------------- /plugins/utils/wikipedia/__main__.py: -------------------------------------------------------------------------------- 1 | """ wikipedia search """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | import wikipedia 12 | 13 | from userge import userge, Message 14 | 15 | 16 | @userge.on_cmd("wiki", about={ 17 | 'header': "do a Wikipedia search", 18 | 'flags': {'-l': "limit the number of returned results (defaults to 5)"}, 19 | 'usage': "{tr}wiki [flags] [query | reply to msg]", 20 | 'examples': "{tr}wiki -l5 userge"}) 21 | async def wiki_pedia(message: Message): 22 | await message.edit("Processing ...") 23 | query = message.filtered_input_str 24 | flags = message.flags 25 | limit = int(flags.get('-l', 5)) 26 | if message.reply_to_message: 27 | query = message.reply_to_message.text 28 | if not query: 29 | await message.err(text="Give a query or reply to a message to wikipedia!") 30 | return 31 | try: 32 | wikipedia.set_lang("en") 33 | results = wikipedia.search(query) 34 | except Exception as e: 35 | await message.err(e) 36 | return 37 | output = "" 38 | for i, s in enumerate(results, start=1): 39 | page = wikipedia.page(s) 40 | url = page.url 41 | output += f"🌏 [{s}]({url})\n" 42 | if i == limit: 43 | break 44 | output = f"**Wikipedia Search:**\n`{query}`\n\n**Results:**\n{output}" 45 | await message.edit_or_send_as_file(text=output, caption=query, 46 | disable_web_page_preview=True) 47 | -------------------------------------------------------------------------------- /plugins/tools/delete/__main__.py: -------------------------------------------------------------------------------- 1 | """ delete message """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | from pyrogram.errors import MessageDeleteForbidden 12 | 13 | from userge import userge, Message 14 | 15 | 16 | @userge.on_cmd("del", about={'header': "delete replied message"}) 17 | async def del_msg(message: Message): 18 | if userge.dual_mode: 19 | u_msg_ids = [] 20 | b_msg_ids = [] 21 | o_msg_ids = [] 22 | for m in filter(lambda _: _, (message, message.reply_to_message)): 23 | if m.from_user and m.from_user.id == userge.id: 24 | u_msg_ids.append(m.id) 25 | elif m.from_user and m.from_user.id == userge.bot.id: 26 | b_msg_ids.append(m.id) 27 | else: 28 | o_msg_ids.append(m.id) 29 | if u_msg_ids: 30 | await userge.delete_messages(message.chat.id, u_msg_ids) 31 | if b_msg_ids: 32 | await userge.bot.delete_messages(message.chat.id, b_msg_ids) 33 | for o_msg_id in o_msg_ids: 34 | try: 35 | await userge.delete_messages(message.chat.id, o_msg_id) 36 | except MessageDeleteForbidden: 37 | try: 38 | await userge.bot.delete_messages(message.chat.id, o_msg_id) 39 | except MessageDeleteForbidden: 40 | pass 41 | else: 42 | await message.delete() 43 | replied = message.reply_to_message 44 | if replied: 45 | await replied.delete() 46 | -------------------------------------------------------------------------------- /plugins/fun/pat/__main__.py: -------------------------------------------------------------------------------- 1 | """ give head pat """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | from random import choice 12 | from urllib import parse 13 | 14 | import aiohttp 15 | 16 | from userge import userge, Message 17 | 18 | 19 | @userge.on_cmd("pat", about={ 20 | 'header': "Give head Pat xD", 21 | 'flags': {'-g': "For Pat Gifs"}, 22 | 'usage': "{tr}pat [reply | username]\n{tr}pat -g [reply]"}) 23 | async def pat(message: Message): 24 | username = message.filtered_input_str 25 | reply = message.reply_to_message 26 | reply_id = reply.id if reply else message.id 27 | if not username and not reply: 28 | await message.edit("**Bruh** ~`Reply to a message or provide username`", del_in=3) 29 | return 30 | kwargs = {"reply_to_message_id": reply_id, "caption": username} 31 | 32 | if "-g" in message.flags: 33 | async with aiohttp.ClientSession() as session, session.get( 34 | "https://nekos.life/api/pat" 35 | ) as request: 36 | result = await request.json() 37 | link = result.get("url") 38 | await message.client.send_animation( 39 | message.chat.id, animation=link, **kwargs 40 | ) 41 | else: 42 | async with aiohttp.ClientSession() as session: 43 | chi_c = await session.get("https://headp.at/js/pats.json") 44 | uri = f"https://headp.at/pats/{parse.quote(choice(await chi_c.json()))}" 45 | await message.reply_photo(uri, **kwargs) 46 | 47 | await message.delete() # hmm 48 | -------------------------------------------------------------------------------- /plugins/fun/quote/__main__.py: -------------------------------------------------------------------------------- 1 | """ create quote """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | import asyncio 12 | 13 | from pyrogram.errors.exceptions.bad_request_400 import YouBlockedUser 14 | 15 | from userge import userge, Message 16 | 17 | 18 | @userge.on_cmd("quote", about={ 19 | 'header': "Quote a message", 20 | 'usage': "{tr}quote [text or reply to msg]"}, allow_via_bot=False) 21 | async def quotecmd(message: Message): 22 | """quotecmd""" 23 | asyncio.get_event_loop().create_task(message.delete()) 24 | args = message.input_str 25 | replied = message.reply_to_message 26 | async with userge.conversation('QuotLyBot') as conv: 27 | try: 28 | if replied and not args: 29 | await conv.forward_message(replied) 30 | else: 31 | if not args: 32 | await message.err('input not found!') 33 | return 34 | await conv.send_message(args) 35 | except YouBlockedUser: 36 | await message.edit('first **unblock** @QuotLyBot') 37 | return 38 | quote = await conv.get_response(mark_read=True) 39 | if not quote.sticker: 40 | await message.edit('something went wrong!, see here: @QuotlyBot') 41 | else: 42 | message_id = replied.id if replied else None 43 | await userge.send_sticker(chat_id=message.chat.id, 44 | sticker=quote.sticker.file_id, 45 | reply_to_message_id=message_id) 46 | -------------------------------------------------------------------------------- /plugins/misc/spotdl/__main__.py: -------------------------------------------------------------------------------- 1 | """ spotdl downloader """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | from pathlib import Path 12 | from typing import Union 13 | 14 | from spotdl.download.downloader import DownloadManager 15 | from spotdl.search import spotifyClient 16 | from spotdl.search.songObj import SongObj 17 | 18 | from userge import userge, Message, pool 19 | from ..upload import audio_upload 20 | 21 | 22 | def init_client() -> None: 23 | try: 24 | spotifyClient.initialize( 25 | clientId='4fe3fecfe5334023a1472516cc99d805', 26 | clientSecret='0f02b7c483c04257984695007a4a8d5c' 27 | ) 28 | except Exception: 29 | pass 30 | 31 | 32 | async def download_track(url: Union[str, SongObj]) -> Path: 33 | init_client() 34 | song = url 35 | if not isinstance(url, SongObj): 36 | song = await pool.run_in_thread(SongObj.from_url)(song) 37 | return await DownloadManager().download_song(song) 38 | 39 | 40 | @userge.on_cmd("stdl", about={ 41 | 'header': "Spotify Track Downloader", 42 | 'description': "Download Songs via Spotify Links", 43 | 'usage': "{tr}stdl [Spotify Link]", 44 | 'examples': "{tr}stdl https://open.spotify.com/track/0Cy7wt6IlRfBPHXXjmZbcP"}) 45 | async def spotify_dl(message: Message) -> None: 46 | link = message.input_str 47 | await message.edit(f"`Downloading: {link} ...`") 48 | try: 49 | track = await download_track(link) 50 | except Exception as e: 51 | return await message.err(str(e)) 52 | await audio_upload(message, track, True) 53 | -------------------------------------------------------------------------------- /plugins/utils/livesubs/__main__.py: -------------------------------------------------------------------------------- 1 | """ Live subs count """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | # By @Krishna_Singhal 12 | 13 | import asyncio 14 | 15 | from pyrogram.errors import FloodWait 16 | from pyrogram import enums 17 | 18 | from userge import userge, Message 19 | 20 | 21 | @userge.on_cmd("livesubs", about={ 22 | 'header': "Live Subscriber count for Public Groups and Channels", 23 | 'usage': "{tr}livesubs [chat id]"}) 24 | async def live_subs(msg: Message): 25 | input_ = msg.input_str 26 | chat = msg.chat if msg.chat.type != enums.ChatType.PRIVATE else None 27 | if input_: 28 | try: 29 | chat = await msg.client.get_chat(input_) 30 | except Exception: 31 | await msg.err("Chat Id Invalid") 32 | if chat: 33 | username = f"@{chat.username}" if chat.username else chat.title 34 | with msg.cancel_callback(): 35 | while True: 36 | if msg.process_is_canceled: 37 | await msg.edit("`Live subs request Cancelled`") 38 | break 39 | try: 40 | subs = await msg.client.get_chat_members_count(chat.id) 41 | await msg.edit( 42 | f"**Live Members Count of {username}**\n\n" 43 | f"Members = `{subs}`" 44 | ) 45 | await asyncio.sleep(3) 46 | except FloodWait as fw: 47 | await asyncio.sleep(fw.value) 48 | else: 49 | await msg.err("chat id required") 50 | -------------------------------------------------------------------------------- /plugins/utils/yandex_reverse_search/__main__.py: -------------------------------------------------------------------------------- 1 | """ Yandex reverse search """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | # Userge Plugin for Labstack Uploads (https://up.labstack.com) 12 | # Author: Sumanjay (https://github.com/cyberboysumanjay) (@cyberboysumanjay) 13 | 14 | from aiofiles import os 15 | from telegraph import upload_file 16 | 17 | from userge import userge, config, Message, pool 18 | 19 | 20 | @userge.on_cmd("yrs", about={ 21 | 'header': "Yandex Reverse Search", 22 | 'description': "Reverse Search any Image/sticker", 23 | 'usage': "{tr}yrs [Reply to image | sticker]", 24 | 'note': "Gif & Animated Stickers won't work!"}, check_downpath=True) 25 | async def labstack(message: Message): 26 | replied = message.reply_to_message 27 | if replied and (replied.sticker or replied.photo): 28 | await message.edit("`processing ...`") 29 | dl_loc = await message.client.download_media( 30 | message=message.reply_to_message, 31 | file_name=config.Dynamic.DOWN_PATH, 32 | ) 33 | else: 34 | return await message.err("Media not found!") 35 | 36 | try: 37 | response = await pool.run_in_thread(upload_file)(dl_loc) 38 | except Exception as t_e: 39 | await message.err(str(t_e)) 40 | else: 41 | media_link = f"https://telegra.ph{response[0]}" 42 | yandex_link = f"https://yandex.com/images/search?rpt=imageview&url={media_link}" 43 | await message.edit(f"**[Yandex Search Results]({yandex_link})**") 44 | finally: 45 | await os.remove(dl_loc) 46 | -------------------------------------------------------------------------------- /plugins/utils/video_chat/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 2 | # 3 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 4 | # and is released under the "GNU v3.0 License Agreement". 5 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 6 | # 7 | # All rights reserved. 8 | 9 | """ manage video chats """ 10 | 11 | import os 12 | import logging 13 | from typing import List, Union 14 | 15 | from pyrogram import Client 16 | from pyrogram.types import Message as RawMessage 17 | from pytgcalls import PyTgCalls 18 | 19 | from userge import userge, config 20 | from userge.utils import secured_env 21 | from .resource import TgResource, UrlResource 22 | 23 | logging.getLogger("pytgcalls").setLevel(logging.WARNING) 24 | 25 | YTDL_PATH = os.environ.get("YOUTUBE_DL_PATH", "yt_dlp") 26 | MAX_DURATION = int(os.environ.get("MAX_DURATION", 900)) 27 | VC_SESSION = secured_env("VC_SESSION_STRING") 28 | 29 | if VC_SESSION: 30 | VC_CLIENT = Client( 31 | "usergeMusic", 32 | config.API_ID, 33 | config.API_HASH, 34 | session_string=VC_SESSION) 35 | VC_CLIENT.storage.session_string = VC_SESSION 36 | else: 37 | userge.__class__.__module__ = 'pyrogram.client' 38 | VC_CLIENT = userge 39 | 40 | call = PyTgCalls(VC_CLIENT, overload_quiet_mode=True) 41 | call._env_checker.check_environment() # pylint: disable=protected-access 42 | 43 | CHANNEL = userge.getCLogger(__name__) 44 | LOG = userge.getLogger() 45 | 46 | CURRENT_SONG = {} 47 | CONTROL_CHAT_IDS: List[int] = [] 48 | CQ_MSG: List[RawMessage] = [] 49 | QUEUE: List[Union[TgResource, UrlResource]] = [] 50 | GROUP_CALL_PARTICIPANTS: List[int] = [] 51 | 52 | 53 | class Vars: 54 | CHAT_NAME = "" 55 | CHAT_ID = 0 56 | CLIENT = userge 57 | BACK_BUTTON_TEXT = "" 58 | 59 | 60 | class Dynamic: 61 | PLAYING = False 62 | CMDS_FOR_ALL = False 63 | -------------------------------------------------------------------------------- /plugins/fun/convert/__main__.py: -------------------------------------------------------------------------------- 1 | """ convert text """ 2 | 3 | # Copyright (C) 2020-2021 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | from userge import userge, Message 12 | 13 | 14 | @userge.on_cmd("small", about={ 15 | 'header': "Make caps smaller", 16 | 'usage': "{tr}small [text | reply to msg]"}) 17 | async def small_(message: Message): 18 | """ text to small """ 19 | text = message.input_str 20 | if message.reply_to_message: 21 | text = message.reply_to_message.text 22 | if not text: 23 | await message.err("input not found") 24 | return 25 | await message.edit(text.translate(str.maketrans("ABCDEFGHIJKLMNOPQRSTUVWXYZ", 26 | "ᴀʙᴄᴅᴇꜰɢʜɪᴊᴋʟᴍɴᴏᴘqʀꜱᴛᴜᴠᴡxʏᴢ"))) 27 | 28 | 29 | @userge.on_cmd("lower", about={ 30 | 'header': "Convert text to lowwer", 31 | 'usage': "{tr}lower [text | reply to msg]"}) 32 | async def lower_(message: Message): 33 | """ text to lower """ 34 | text = message.input_str 35 | if message.reply_to_message: 36 | text = message.reply_to_message.text 37 | if not text: 38 | await message.err("input not found") 39 | return 40 | await message.edit(text.lower()) 41 | 42 | 43 | @userge.on_cmd("upper", about={ 44 | 'header': "Convert text to upper", 45 | 'usage': "{tr}upper [text | reply to msg]"}) 46 | async def upper_(message: Message): 47 | """ text to upper """ 48 | text = message.input_str 49 | if message.reply_to_message: 50 | text = message.reply_to_message.text 51 | if not text: 52 | await message.err("input not found") 53 | return 54 | await message.edit(text.upper()) 55 | -------------------------------------------------------------------------------- /plugins/tools/ids/__main__.py: -------------------------------------------------------------------------------- 1 | """ get ids """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | from userge import userge, Message 12 | 13 | 14 | @userge.on_cmd("ids", about={ 15 | 'header': "display ids", 16 | 'usage': "reply {tr}ids any message, file or just send this command"}) 17 | async def getids(message: Message): 18 | msg = message.reply_to_message or message 19 | out_str = f"👥 **Chat ID** : `{(msg.forward_from_chat or msg.chat).id}`\n" 20 | out_str += f"💬 **Message ID** : `{msg.forward_from_message_id or msg.id}`\n" 21 | if msg.from_user: 22 | out_str += f"🙋‍♂️ **From User ID** : `{msg.from_user.id}`\n" 23 | if msg.sender_chat: 24 | out_str += f"👥 **Channel ID** : `{msg.sender_chat.id}`\n" 25 | file_id = None 26 | if msg.audio: 27 | type_ = "audio" 28 | file_id = msg.audio.file_id 29 | elif msg.animation: 30 | type_ = "animation" 31 | file_id = msg.animation.file_id 32 | elif msg.document: 33 | type_ = "document" 34 | file_id = msg.document.file_id 35 | elif msg.photo: 36 | type_ = "photo" 37 | file_id = msg.photo.file_id 38 | elif msg.sticker: 39 | type_ = "sticker" 40 | file_id = msg.sticker.file_id 41 | elif msg.voice: 42 | type_ = "voice" 43 | file_id = msg.voice.file_id 44 | elif msg.video_note: 45 | type_ = "video_note" 46 | file_id = msg.video_note.file_id 47 | elif msg.video: 48 | type_ = "video" 49 | file_id = msg.video.file_id 50 | if file_id is not None: 51 | out_str += f"📄 **Media Type:** `{type_}`\n" 52 | out_str += f"📄 **File ID:** `{file_id}`" 53 | await message.edit(out_str) 54 | -------------------------------------------------------------------------------- /plugins/utils/articles/__main__.py: -------------------------------------------------------------------------------- 1 | """ scrape articles """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | import re 12 | from asyncio import sleep 13 | 14 | from newspaper import Article, ArticleException 15 | 16 | from userge import userge, Message 17 | 18 | regex: str = r'(https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.' \ 19 | r'[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&\/\/=]*))' 20 | max_chars = 3900 21 | 22 | 23 | @userge.on_cmd("con", about={ 24 | 'header': "Scrape article content", 25 | 'usage': "{tr}con [link | reply to msg]"}) 26 | async def con_(message: Message): 27 | """ Articles Scraper """ 28 | text = message.input_str 29 | if message.reply_to_message: 30 | text = message.reply_to_message.text 31 | if not text: 32 | await message.err("Input not found") 33 | return 34 | try: 35 | url: str = re.search(regex, text).group(1) 36 | article: Article = Article(url) 37 | article.download() 38 | article.parse() 39 | # split article content into chunks 40 | # credits to https://github.com/eternnoir/pyTelegramBotAPI/blob/ 41 | # 2dec4f1ffc3f7842844e747b388edf0d6560a5b6/telebot/util.py#L224 42 | chunks = [article.text[i:i + max_chars] for i in range(0, len(article.text), max_chars)] 43 | header = f"**{article.title}**\n{article.publish_date}\n\n" 44 | if len(chunks) == 1: 45 | await message.edit(header + article.text) 46 | else: 47 | await message.edit(header + chunks[0]) 48 | for chunk in chunks[1:]: 49 | await message.reply(chunk) 50 | await sleep(2) 51 | except AttributeError: 52 | await message.edit("`Can't find a valid URL!`") 53 | except ArticleException: 54 | await message.edit("`Failed to scrape the article!`") 55 | -------------------------------------------------------------------------------- /plugins/utils/azan/__main__.py: -------------------------------------------------------------------------------- 1 | """ Islamic Prayers Time """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | # 11 | # Azan Module 12 | # By: Safone (https://github.com/AsmSafone) 13 | 14 | import os 15 | from json import dumps 16 | 17 | import aiohttp 18 | 19 | from userge import userge, Message 20 | 21 | 22 | @userge.on_cmd( 23 | "azan", 24 | about={ 25 | "header": "Islamic Prayers Time", 26 | "description": "Shows the Islamic prayer times of the given city.", 27 | "usage": "{tr}azan [city_name]", 28 | }, 29 | ) 30 | async def azan(msg: Message): 31 | """Azan handler, get an time for Islamic prayer.""" 32 | city = msg.input_str or os.environ.get("COUNTRY_CITY") 33 | if not city: 34 | return await msg.err("Please input Country, or set datetime env") 35 | async with aiohttp.ClientSession() as ses: 36 | url = f"https://muslimsalat.com/{city}.json?key=bd099c5825cbedb9aa934e255a81a5fc" 37 | async with ses.get(url) as resp: 38 | if resp.status != 200: 39 | return await msg.err("Unable to process your request") 40 | res = await resp.json() 41 | if res['status_code'] == 0: 42 | return await msg.err(dumps(res['status_error'])) 43 | timefor = f"__{res['query']}, {res['country']}, {res['items'][0]['date_for']}.__\n" 44 | out_str = ( 45 | "**Islamic prayer times**" 46 | f"\n{timefor}" 47 | f"\n**Fajr :** __{res['items'][0]['fajr']}__" 48 | f"\n**Shurooq :** __{res['items'][0]['shurooq']}__" 49 | f"\n**Dhuhr :** __{res['items'][0]['dhuhr']}__" 50 | f"\n**Asr :** __{res['items'][0]['asr']}__" 51 | f"\n**Maghrib :** __{res['items'][0]['maghrib']}__" 52 | f"\n**Isha :** __{res['items'][0]['isha']}__" 53 | ) 54 | await msg.edit(out_str) 55 | -------------------------------------------------------------------------------- /plugins/utils/google/__main__.py: -------------------------------------------------------------------------------- 1 | """ google search """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | from search_engine_parser import GoogleSearch 12 | 13 | from userge import userge, Message 14 | 15 | GoogleSearch.parse_soup = lambda __, _: _.find_all("div", class_="Gx5Zad fP1Qef xpd EtOod pkphOe") 16 | 17 | 18 | @userge.on_cmd("google", about={ 19 | 'header': "do a Google search", 20 | 'flags': { 21 | '-p': "page of results to return (default to 1)", 22 | '-l': "limit the number of returned results (defaults to 5)(max 10)"}, 23 | 'usage': "{tr}google [flags] [query | reply to msg]", 24 | 'examples': "{tr}google -p4 -l10 github-userge"}) 25 | async def gsearch(message: Message): 26 | query = message.filtered_input_str 27 | await message.edit(f"**Googling** for `{query}` ...") 28 | flags = message.flags 29 | page = int(flags.get('-p', 1)) 30 | limit = int(flags.get('-l', 5)) 31 | if message.reply_to_message: 32 | query = message.reply_to_message.text 33 | if not query: 34 | await message.err("Give a query or reply to a message to google!") 35 | return 36 | try: 37 | g_search = GoogleSearch() 38 | gresults = await g_search.async_search(query, page) 39 | except Exception as e: 40 | await message.err(e) 41 | return 42 | output = "" 43 | for i in range(limit): 44 | try: 45 | title = gresults["titles"][i].replace("\n", " ") 46 | link = gresults["links"][i] 47 | desc = gresults["descriptions"][i] 48 | output += f"[{title}]({link})\n" 49 | output += f"`{desc}`\n\n" 50 | except (IndexError, KeyError): 51 | break 52 | output = f"**Google Search:**\n`{query}`\n\n**Results:**\n{output}" 53 | await message.edit_or_send_as_file(text=output, caption=query, 54 | disable_web_page_preview=True) 55 | -------------------------------------------------------------------------------- /plugins/utils/tts/__main__.py: -------------------------------------------------------------------------------- 1 | """ text to speech """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | import os 12 | 13 | from gtts import gTTS 14 | from hachoir.metadata import extractMetadata as XMan 15 | from hachoir.parser import createParser as CPR 16 | 17 | from userge import userge, Message 18 | 19 | 20 | @userge.on_cmd("tts", about={ 21 | 'header': "Text To Speech", 22 | 'examples': [ 23 | "{tr}tts Userge", "{tr}tts en | Userge", "{tr}tts [reply to message]" 24 | ] 25 | }) 26 | async def text_to_speech(message: Message): 27 | req_file_name = "gtts.mp3" 28 | replied = message.reply_to_message 29 | def_lang = "en" 30 | if replied and replied.text: 31 | text = replied.text 32 | if message.input_str: 33 | def_lang = message.input_str 34 | elif message.input_str: 35 | if '|' in message.input_str: 36 | def_lang, text = message.input_str.split("|", maxsplit=1) 37 | else: 38 | text = message.input_str 39 | else: 40 | return await message.err("Input not found!") 41 | await message.edit("Processing.") 42 | try: 43 | await message.edit("Processing..") 44 | speeched = gTTS(text.strip(), lang=def_lang.strip()) 45 | speeched.save(req_file_name) 46 | await message.edit("Processing...") 47 | meta = XMan(CPR(req_file_name)) 48 | a_len = 0 49 | a_title = "Text To Speech" 50 | a_perf = "Google" 51 | a_cap = f"Language Code: {def_lang}" 52 | if meta and meta.has("duration"): 53 | a_len = meta.get("duration").seconds 54 | await message.edit("Uploading...") 55 | await message.reply_audio( 56 | audio=req_file_name, 57 | caption=a_cap, 58 | duration=a_len, 59 | performer=a_perf, 60 | title=a_title 61 | ) 62 | os.remove(req_file_name) 63 | await message.delete() 64 | except Exception as err: 65 | await message.edit(err) 66 | -------------------------------------------------------------------------------- /plugins/tools/speedtest/__main__.py: -------------------------------------------------------------------------------- 1 | """ speedtest """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | import speedtest 12 | 13 | from userge import userge, Message 14 | from userge.utils import humanbytes 15 | 16 | CHANNEL = userge.getCLogger(__name__) 17 | 18 | 19 | @userge.on_cmd("speedtest", about={'header': "test your server speed"}) 20 | async def speedtst(message: Message): 21 | await message.edit("`Running speed test . . .`") 22 | try: 23 | test = speedtest.Speedtest() 24 | test.get_best_server() 25 | await message.try_to_edit("`Performing download test . . .`") 26 | test.download() 27 | await message.try_to_edit("`Performing upload test . . .`") 28 | test.upload() 29 | try: 30 | test.results.share() 31 | except speedtest.ShareResultsConnectFailure: 32 | pass 33 | result = test.results.dict() 34 | except Exception as e: 35 | await message.err(e) 36 | return 37 | output = f"""**--Started at {result['timestamp']}-- 38 | 39 | Client: 40 | 41 | ISP: `{result['client']['isp']}` 42 | Country: `{result['client']['country']}` 43 | 44 | Server: 45 | 46 | Name: `{result['server']['name']}` 47 | Country: `{result['server']['country']}, {result['server']['cc']}` 48 | Sponsor: `{result['server']['sponsor']}` 49 | Latency: `{result['server']['latency']}` 50 | 51 | Ping: `{result['ping']}` 52 | Sent: `{humanbytes(result['bytes_sent'])}` 53 | Received: `{humanbytes(result['bytes_received'])}` 54 | Download: `{humanbytes(result['download'] / 8)}/s` 55 | Upload: `{humanbytes(result['upload'] / 8)}/s`**""" 56 | if result['share']: 57 | msg = await message.client.send_photo(chat_id=message.chat.id, 58 | photo=result['share'], 59 | caption=output) 60 | else: 61 | msg = await message.client.send_message(chat_id=message.chat.id, text=output) 62 | await CHANNEL.fwd_msg(msg) 63 | await message.delete() 64 | -------------------------------------------------------------------------------- /plugins/utils/botsz/__main__.py: -------------------------------------------------------------------------------- 1 | """ Pings All Defined Bots """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | 12 | # Professor | Albert Einstein 13 | # @TheUnusualPsychopath | @Albert_Einetin_TG 14 | # @TrojanzHEX | @CrazyBotsz 15 | 16 | import time 17 | from datetime import datetime 18 | 19 | import pytz 20 | 21 | from userge import userge, Message 22 | from pyrogram import enums 23 | 24 | 25 | @userge.on_cmd( 26 | "balive", about={ 27 | 'header': "Pings All Defined Bots", 28 | 'description': "Pings All bots you mention and check their status.\n\n" 29 | "[NOTE]: you can pass multiple ids, seprate them via new line", 30 | 'usage': "{tr}balive [bot id/username]"}, allow_via_bot=False) 31 | async def bots(message: Message): 32 | _msg = "Bots Status\n°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n" 33 | await message.edit(_msg, parse_mode=enums.ParseMode.HTML) 34 | if not message.input_str: 35 | return await message.edit("Bots not found!") 36 | Bot_List = [bot.strip() for bot in message.input_str.split('\n') if bot.strip()] 37 | for bot in Bot_List: 38 | checking = f"⚡ {bot} Status : Checking...⌛\n\n" 39 | _msg += checking 40 | await message.edit(_msg, parse_mode=enums.ParseMode.HTML) 41 | snt = await userge.send_message(bot, '/start') 42 | time.sleep(5) 43 | msg = [msg async for msg in userge.get_chat_history(bot, 1)] 44 | if snt.id == msg[0].id: 45 | nice = f"⚡ {bot} Status : ❎\n\n" 46 | else: 47 | nice = f"⚡ {bot} Status : ✅\n\n" 48 | _msg = _msg.replace(checking, nice) 49 | await message.edit(_msg, parse_mode=enums.ParseMode.HTML) 50 | await userge.read_chat_history(bot) 51 | tz = pytz.timezone('Asia/Kolkata') 52 | time_now = datetime.utcnow().astimezone(tz=tz).strftime("%I:%M %p - %d %B %Y") 53 | _msg += f"[Updated on : {time_now}]" 54 | await message.edit(_msg, parse_mode=enums.ParseMode.HTML) 55 | -------------------------------------------------------------------------------- /plugins/utils/ocr/__main__.py: -------------------------------------------------------------------------------- 1 | """ ocr reader """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | import os 12 | 13 | from pyrogram import enums 14 | 15 | from userge import userge, Message, config 16 | from .. import ocr 17 | 18 | CHANNEL = userge.getCLogger(__name__) 19 | 20 | 21 | @userge.on_cmd("ocr", about={ 22 | 'header': "use this to run ocr reader", 23 | 'description': "get ocr result for images (file size limit = 1MB)", 24 | 'examples': [ 25 | "{tr}ocr [reply to image]", 26 | "{tr}ocr eng [reply to image] (get lang codes from 'https://ocr.space/ocrapi')"]}) 27 | async def ocr_gen(message: Message): 28 | """ 29 | this function can generate ocr output for a image file 30 | """ 31 | if ocr.OCR_SPACE_API_KEY is None: 32 | await message.edit( 33 | "Oops!!get the OCR API from " 34 | "HERE " 35 | "& add it to Heroku config vars (OCR_SPACE_API_KEY)", 36 | disable_web_page_preview=True, 37 | parse_mode=enums.ParseMode.HTML, del_in=0) 38 | return 39 | 40 | if not message.reply_to_message: 41 | return await message.err(r"i can't read nothing (°ー°〃)") 42 | lang_code = message.input_str or "eng" 43 | await message.edit(r"`Trying to Read.. 📖") 44 | file_name = await message.reply_to_message.download(config.Dynamic.DOWN_PATH) 45 | test_file = await ocr.ocr_space_file(file_name, lang_code) 46 | try: 47 | ParsedText = test_file["ParsedResults"][0]["ParsedText"] 48 | except Exception as e_f: 49 | await message.edit( 50 | r"`Couldn't read it.. (╯‵□′)╯︵┻━┻`" 51 | "\n`I guess I need new glasses.. 👓`" 52 | f"\n\n**ERROR**: `{e_f}`", del_in=0) 53 | os.remove(file_name) 54 | return 55 | else: 56 | await message.edit( 57 | "**Here's what I could read from it:**" 58 | f"\n\n`{ParsedText}`") 59 | os.remove(file_name) 60 | return await CHANNEL.log("`ocr` command succefully executed") 61 | -------------------------------------------------------------------------------- /plugins/utils/hash/__main__.py: -------------------------------------------------------------------------------- 1 | """ hash , encode and decode """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | import pybase64 12 | 13 | from userge import userge, Message 14 | from userge.utils import runcmd 15 | 16 | 17 | @userge.on_cmd("hash", about={ 18 | 'header': "find hash of text", 19 | 'description': "Find the md5, sha1, sha256, sha512 of the string when written into a txt file", 20 | 'usage': "{tr}hash [text or reply to msg]"}) 21 | async def gethash(message: Message): 22 | """ find hash of text """ 23 | input_ = message.input_or_reply_str 24 | if not input_: 25 | await message.err("input not found!") 26 | return 27 | with open("hash.txt", "w+") as hashtxt: 28 | hashtxt.write(input_) 29 | md5 = (await runcmd("md5sum hash.txt"))[0].split()[0] 30 | sha1 = (await runcmd("sha1sum hash.txt"))[0].split()[0] 31 | sha256 = (await runcmd("sha256sum hash.txt"))[0].split()[0] 32 | sha512 = (await runcmd("sha512sum hash.txt"))[0].split()[0] 33 | await runcmd("rm hash.txt") 34 | ans = (f"**Text** : `{input_}`\n**MD5** : `{md5}`\n**SHA1** : `{sha1}`\n" 35 | f"**SHA256** : `{sha256}`\n**SHA512** : `{sha512}`") 36 | await message.edit_or_send_as_file(ans, filename="hash.txt", caption="hash.txt") 37 | 38 | 39 | @userge.on_cmd("base64", about={ 40 | 'header': "Find the base64 encoding of the given string", 41 | 'usage': "{tr}base64 [text or reply to msg] : encode\n" 42 | "{tr}base64 -d [text or reply to msg] : decode"}, del_pre=True) 43 | async def endecrypt(message: Message): 44 | """ encode or decode """ 45 | if message.reply_to_message: 46 | input_ = message.reply_to_message.text 47 | else: 48 | input_ = message.filtered_input_str 49 | if not input_: 50 | await message.err("input not found!") 51 | return 52 | if 'd' in message.flags: 53 | out = str(pybase64.b64decode(bytes(input_, "utf-8"), validate=True))[2:-1] 54 | await message.edit(f"**Decoded** : `{out}`") 55 | else: 56 | out = str(pybase64.b64encode(bytes(input_, "utf-8")))[2:-1] 57 | await message.edit(f"**Encoded** : `{out}`") 58 | -------------------------------------------------------------------------------- /plugins/utils/iplookup/__main__.py: -------------------------------------------------------------------------------- 1 | """ Iplookup Plugin """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | # (c) @AbirHasan2005 12 | # A IP Address Lookup Plugin! 13 | # Modded from @AHToolsBot by @Discovery_Updates 14 | 15 | import aiohttp 16 | from pyrogram import enums 17 | from userge import userge, Message 18 | 19 | 20 | @userge.on_cmd( 21 | "iplook", about={ 22 | 'header': "A IPLookUp Plugin", 23 | 'description': "Put IP Address to get some details about that.", 24 | 'usage': "{tr}iplook [IP Address]"}) 25 | async def _ip_look_up(message: Message): 26 | await message.edit("`Checking IP Address ...`") 27 | if not message.input_str: 28 | await message.edit("`No IP Address Found!`") 29 | return 30 | url = ( 31 | f"https://extreme-ip-lookup.com/json/{message.input_str}?key=Qn97RtiI2gwjStzJJjuG" 32 | ) 33 | async with aiohttp.ClientSession() as requests: 34 | data = await requests.get(url) 35 | values = await data.json() 36 | status = values['status'] 37 | if status != "success": 38 | await message.edit("`Provided IP Address invalid!`") 39 | return 40 | host = values['ipName'] 41 | isp = values['isp'] 42 | org = values['org'] 43 | continent = values['continent'] 44 | tip = values['ipType'] 45 | country = values['country'] 46 | region = values['region'] 47 | city = values['city'] 48 | localisation = f"{values['lat']}, {values['lon']}" 49 | gmap_lock = f"https://www.google.fr/maps?q={localisation}".replace(" ", "") 50 | 51 | await message.edit( 52 | text=(f"Here details of `{message.input_str}`\n\n" 53 | f"**Host:** `{host}`\n" 54 | f"**ISP:** `{isp}`\n" 55 | f"**Organisation:** `{org}`\n" 56 | f"**Region:** `{region}, {country}`\n" 57 | f"**Continent:** `{continent}`\n" 58 | f"**IP Type:** `{tip}`\n" 59 | f"**City:** `{city}`\n" 60 | f"**Location:** `{localisation}`\n" 61 | f"**Google Map:** {gmap_lock}"), 62 | disable_web_page_preview=True, 63 | parse_mode=enums.ParseMode.MARKDOWN 64 | ) 65 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .env 106 | .venv 107 | env/ 108 | venv/ 109 | ENV/ 110 | env.bak/ 111 | venv.bak/ 112 | 113 | # Spyder project settings 114 | .spyderproject 115 | .spyproject 116 | 117 | # Rope project settings 118 | .ropeproject 119 | 120 | # mkdocs documentation 121 | /site 122 | 123 | # mypy 124 | .mypy_cache/ 125 | .dmypy.json 126 | dmypy.json 127 | 128 | # Pyre type checker 129 | .pyre/ 130 | .vscode/ 131 | .idea/ 132 | -------------------------------------------------------------------------------- /plugins/fun/gifify/__main__.py: -------------------------------------------------------------------------------- 1 | """ Plugin for tgs to GiF """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | # By @Krishna_Singhal 12 | 13 | import os 14 | 15 | import lottie 16 | 17 | from userge import userge, Message, config, pool 18 | 19 | 20 | @userge.on_cmd("gif", about={ 21 | 'header': "Convert Telegram Animated Sticker to GiF", 22 | 'usage': "{tr}gif [quality (optional)] [reply to sticker]\n" 23 | "Max quality : 720p", 24 | 'examples': [ 25 | "{tr}gif [reply to sticker]", 26 | "{tr}gif 512 [reply to Sticker]"]}) 27 | async def gifify(msg: Message): 28 | """ Convert Animated Sticker to GiF """ 29 | replied = msg.reply_to_message 30 | if not (replied and replied.sticker and replied.sticker.file_name.endswith(".tgs")): 31 | await msg.err("Reply to Animated Sticker Only to Convert GiF", del_in=5) 32 | return 33 | if msg.input_str: 34 | if not msg.input_str.isdigit(): 35 | await msg.err("Invalid given quality, Check help", del_in=5) 36 | return 37 | input_ = int(msg.input_str) 38 | if not 0 < input_ < 721: 39 | await msg.err("Invalid quality range, Check help", del_in=5) 40 | return 41 | quality = input_ 42 | else: 43 | quality = 512 44 | if not os.path.isdir(config.Dynamic.DOWN_PATH): 45 | os.makedirs(config.Dynamic.DOWN_PATH) 46 | await msg.try_to_edit("```\nConverting this Sticker to GiF...\n" 47 | "This may takes upto few mins...```") 48 | dls = await msg.client.download_media(replied, file_name=config.Dynamic.DOWN_PATH) 49 | converted_gif = await _tgs_to_gif(dls, quality) 50 | await msg.client.send_animation( 51 | msg.chat.id, 52 | converted_gif, 53 | unsave=True, 54 | reply_to_message_id=replied.id) 55 | await msg.delete() 56 | os.remove(converted_gif) 57 | 58 | 59 | @pool.run_in_thread 60 | def _tgs_to_gif(sticker_path: str, quality: int = 256) -> str: 61 | dest = os.path.join(config.Dynamic.DOWN_PATH, "animation.gif") 62 | with open(dest, 'wb') as t_g: 63 | lottie.exporters.gif.export_gif(lottie.parsers.tgs.parse_tgs(sticker_path), t_g, quality, 1) 64 | os.remove(sticker_path) 65 | return dest 66 | -------------------------------------------------------------------------------- /plugins/utils/cnf/__main__.py: -------------------------------------------------------------------------------- 1 | """ install any command on any OS """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | # Copyright (c) 2019 Łukasz Lach 12 | # Portions Copyright (c) tl;dr; authors and contributors 13 | 14 | import aiohttp 15 | from bs4 import BeautifulSoup 16 | 17 | from userge import userge, Message 18 | 19 | 20 | @userge.on_cmd( 21 | "cnf", 22 | about={ 23 | "header": "Install any command on any operating system.", 24 | "usage": "{tr}cnf\n{tr}cnf [command ]", 25 | "examples": "{tr}cnf python", 26 | }, 27 | ) 28 | async def cnf(message: Message): 29 | 30 | await message.edit("`Searching...`") 31 | base_url = "https://command-not-found.com/" 32 | 33 | if not message.input_str: 34 | # find a random command 35 | async with aiohttp.ClientSession() as ses, ses.get(base_url) as page: 36 | soup = BeautifulSoup(await page.text(), "lxml") 37 | cmd = soup.find( 38 | "a", attrs={"class": "h5 brand-text d-block mb-1 other-command"} 39 | ).text.strip() 40 | else: 41 | cmd = message.input_str.split()[0] 42 | 43 | try: 44 | async with aiohttp.ClientSession() as ses, ses.get(base_url + cmd) as page: 45 | soup = BeautifulSoup(await page.text(), "lxml") 46 | 47 | # heading 48 | payload = f"**[{cmd}]({base_url + cmd})**\n" 49 | # description 50 | payload += f"{soup.find('p', attrs = {'class':'my-0'}).text.strip()}\n\n" 51 | 52 | lst = soup.findAll("div", attrs={"class": "command-install"}) 53 | 54 | # items 55 | for row in lst: 56 | try: 57 | row["class"][2] == "d-none" 58 | # ignore this its stil not implemented by Łukasz 59 | continue 60 | except IndexError: 61 | pass 62 | os = row.dt.findAll(text=True, recursive=False)[-1].strip() 63 | command = row.dd.code.text 64 | 65 | payload += f"{os}\n`{command}`\n\n" 66 | 67 | await message.edit(payload, disable_web_page_preview=False) 68 | except IndexError: 69 | await message.edit("Command Not Found") 70 | except Exception as err: 71 | await message.err(err) 72 | -------------------------------------------------------------------------------- /plugins/utils/admins/__main__.py: -------------------------------------------------------------------------------- 1 | """ view or mentions admins """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | from userge import userge, Message 12 | from pyrogram import enums 13 | 14 | 15 | @userge.on_cmd("admins", about={ 16 | 'header': "View or mention admins in chat", 17 | 'flags': { 18 | '-m': "mention all admins", 19 | '-mc': "only mention creator", 20 | '-id': "show ids"}, 21 | 'usage': "{tr}admins [any flag] [chatid]"}, allow_channels=False) 22 | async def mentionadmins(message: Message): 23 | mentions = "🛡 **Admin List** 🛡\n" 24 | chat_id = message.filtered_input_str 25 | flags = message.flags 26 | men_admins = '-m' in flags 27 | men_creator = '-mc' in flags 28 | show_id = '-id' in flags 29 | if not chat_id: 30 | chat_id = message.chat.id 31 | try: 32 | async for x in message.client.get_chat_members( 33 | chat_id=chat_id, filter=enums.ChatMembersFilter.ADMINISTRATORS): 34 | status = x.status 35 | u_id = x.user.id 36 | username = x.user.username or None 37 | full_name = (await message.client.get_user_dict(u_id))['flname'] 38 | if status == enums.ChatMemberStatus.OWNER: 39 | if men_admins or men_creator: 40 | mentions += f"\n 👑 [{full_name}](tg://user?id={u_id})" 41 | elif username: 42 | mentions += f"\n 👑 [{full_name}](https://t.me/{username})" 43 | else: 44 | mentions += f"\n 👑 {full_name}" 45 | if show_id: 46 | mentions += f" `{u_id}`" 47 | elif status == enums.ChatMemberStatus.ADMINISTRATOR: 48 | if men_admins: 49 | mentions += f"\n ⚜ [{full_name}](tg://user?id={u_id})" 50 | elif username: 51 | mentions += f"\n ⚜ [{full_name}](https://t.me/{username})" 52 | else: 53 | mentions += f"\n ⚜ {full_name}" 54 | if show_id: 55 | mentions += f" `{u_id}`" 56 | except Exception as e: 57 | mentions += " " + str(e) + "\n" 58 | await message.delete() 59 | await message.client.send_message( 60 | chat_id=message.chat.id, text=mentions, disable_web_page_preview=True) 61 | -------------------------------------------------------------------------------- /plugins/utils/video_chat/resource.py: -------------------------------------------------------------------------------- 1 | from typing import Tuple 2 | 3 | from userge import Message 4 | 5 | 6 | class TgResource: 7 | def __init__(self, 8 | message: Message, 9 | name: str, 10 | duration: int, 11 | path: str = "", 12 | quality: int = 80, 13 | is_video: bool = False) -> None: 14 | self.message = message 15 | self.name = name 16 | self.path = path 17 | self.duration = duration 18 | self.quality = quality 19 | self.is_video = is_video 20 | 21 | @classmethod 22 | def parse(cls, 23 | message: Message, 24 | name: str, 25 | path: str = "", 26 | duration: int = 0) -> 'TgResource': 27 | is_video = '-v' in message.flags 28 | quality = message.flags.get('-q', 80) 29 | return cls(message, name, duration, path, quality, is_video) 30 | 31 | def __repr__(self) -> str: 32 | return "<{} name={} duration={}>".format(self.__class__.__name__, 33 | self.name, 34 | self.duration) 35 | 36 | def __str__(self) -> str: 37 | return self.name 38 | 39 | 40 | class UrlResource: 41 | def __init__(self, 42 | message: Message, 43 | name: str, 44 | url: str, 45 | duration: int, 46 | quality: int = 80, 47 | is_video: bool = False, 48 | file_info: Tuple[int, int, bool, bool] = None) -> None: 49 | self.message = message 50 | self.name = name 51 | self.url = url 52 | self.duration = duration 53 | self.quality = quality 54 | self.is_video = is_video 55 | self.file_info = file_info 56 | 57 | @classmethod 58 | def parse(cls, 59 | message: Message, 60 | name: str, 61 | url: str, 62 | duration: int, 63 | file_info: Tuple[int, int, bool, bool] = None) -> 'UrlResource': 64 | is_video = '-v' in message.flags 65 | quality = message.flags.get('-q', 80) 66 | return cls(message, name, url, duration, quality, is_video, file_info) 67 | 68 | def __repr__(self) -> str: 69 | return "<{} name={} duration={}>".format(self.__class__.__name__, 70 | self.name, 71 | self.duration) 72 | 73 | def __str__(self) -> str: 74 | return self.name 75 | -------------------------------------------------------------------------------- /plugins/utils/sangmata/__main__.py: -------------------------------------------------------------------------------- 1 | """ check user name or username history """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | # By @Krishna_Singhal 12 | 13 | from pyrogram.errors.exceptions.bad_request_400 import YouBlockedUser 14 | 15 | from userge import userge, Message 16 | from userge.utils.exceptions import StopConversation 17 | 18 | 19 | @userge.on_cmd("sg", about={ 20 | 'header': "Sangmata gives you user's last updated names and usernames.", 21 | 'flags': { 22 | '-u': "To get Username history of a User"}, 23 | 'usage': "{tr}sg [Reply to user]\n" 24 | "{tr}sg -u [Reply to user]"}, allow_via_bot=False) 25 | async def sangmata_(message: Message): 26 | """ Get User's Updated previous Names and Usernames """ 27 | replied = message.reply_to_message 28 | if not replied: 29 | await message.err("```\nReply to get Name and Username History...```", del_in=5) 30 | return 31 | user = replied.from_user.id 32 | chat = "@SangMata_bot" 33 | await message.edit("```\nGetting info, Wait plox ...```") 34 | msgs = [] 35 | ERROR_MSG = "For your kind information, you blocked @Sangmatainfo_bot, Unblock it" 36 | try: 37 | async with userge.conversation(chat) as conv: 38 | try: 39 | await conv.send_message(f"/search_id {user}") 40 | except YouBlockedUser: 41 | await message.err(f"**{ERROR_MSG}**", del_in=5) 42 | return 43 | msgs.append(await conv.get_response(mark_read=True)) 44 | msgs.append(await conv.get_response(mark_read=True)) 45 | msgs.append(await conv.get_response(timeout=3, mark_read=True)) 46 | except StopConversation: 47 | pass 48 | name = "Name History" 49 | username = "Username History" 50 | for msg in msgs: 51 | if '-u' in message.flags: 52 | if msg.text.startswith("No records found"): 53 | await message.edit("```\nUser never changed his Username...```", del_in=5) 54 | return 55 | if msg.text.startswith(username): 56 | await message.edit(f"`{msg.text}`") 57 | else: 58 | if msg.text.startswith("No records found"): 59 | await message.edit("```\nUser never changed his Name...```", del_in=5) 60 | return 61 | if msg.text.startswith(name): 62 | await message.edit(f"`{msg.text}`") 63 | -------------------------------------------------------------------------------- /plugins/utils/lyrics/__main__.py: -------------------------------------------------------------------------------- 1 | """ lyrics genius module """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | import os 12 | 13 | from aiohttp import ClientSession 14 | from bs4 import BeautifulSoup 15 | from googlesearch import search 16 | 17 | from userge import userge, Message, pool 18 | 19 | 20 | @userge.on_cmd("glyrics", about={ 21 | 'header': "Genius Lyrics", 22 | 'description': "Scrape Song Lyrics from Genius.com", 23 | 'usage': "{tr}glyrics [Song Name]", 24 | 'examples': "{tr}glyrics Swalla Nicki Minaj"}) 25 | async def glyrics(message: Message): 26 | song = message.input_str 27 | if not song: 28 | await message.edit("Bruh WTF?") 29 | return 30 | await message.edit(f"__Searching Lyrics For {song}__") 31 | to_search = song + "genius lyrics" 32 | gen_surl = list(search(to_search, num=1, stop=1))[0] 33 | async with ClientSession() as ses, ses.get(gen_surl) as res: 34 | gen_page = await res.text() 35 | scp = BeautifulSoup(gen_page, 'html.parser') 36 | lyrics = await get_lyrics(scp) 37 | if not lyrics: 38 | await message.edit(f"No Results Found for: `{song}`") 39 | return 40 | lyrics = os.linesep.join(lyrics.splitlines()) 41 | title = scp.find('title').get_text().split("|") 42 | writers = await get_writers(scp) or "UNKNOWN" 43 | lyr_format = '' 44 | lyr_format += '**' + title[0] + '**\n\n' 45 | lyr_format += '__' + lyrics + '__' 46 | lyr_format += "\n\n**Written By: **" + '__' + writers + '__' 47 | lyr_format += "\n**Source: **" + '`' + title[1] + '`' 48 | 49 | if lyr_format: 50 | await message.edit(lyr_format) 51 | else: 52 | await message.edit(f"No Lyrics Found for **{song}**") 53 | 54 | 55 | # Added seperate scraping functions to change logic easily in future... 56 | @pool.run_in_thread 57 | def get_lyrics(bs): 58 | lyrics = bs.find_all( 59 | "div", 60 | class_=lambda __class: __class and __class.startswith("Lyrics__Container"), 61 | ) 62 | if not lyrics: 63 | return None 64 | for lyric in lyrics: 65 | for br in lyric.find_all("br"): 66 | br.replace_with("\n") 67 | return "\n".join([x.text for x in lyrics]) 68 | 69 | 70 | @pool.run_in_thread 71 | def get_writers(bs): 72 | writers = bs.find("div", class_="fognin") 73 | if writers.contents[0].extract().text == "Written By": 74 | return writers.text 75 | return None 76 | -------------------------------------------------------------------------------- /plugins/tools/sysinfo/__main__.py: -------------------------------------------------------------------------------- 1 | """ get system info """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | from datetime import datetime 12 | 13 | import psutil 14 | from psutil._common import bytes2human 15 | 16 | from userge import userge, Message 17 | 18 | 19 | async def generate_sysinfo(workdir): 20 | # uptime 21 | info = { 22 | 'BOOT': (datetime.fromtimestamp(psutil.boot_time()) 23 | .strftime("%Y-%m-%d %H:%M:%S")) 24 | } 25 | # CPU 26 | cpu_freq = psutil.cpu_freq().current 27 | if cpu_freq >= 1000: 28 | cpu_freq = f"{round(cpu_freq / 1000, 2)}GHz" 29 | else: 30 | cpu_freq = f"{round(cpu_freq, 2)}MHz" 31 | info['CPU'] = ( 32 | f"{psutil.cpu_percent(interval=1)}% " 33 | f"({psutil.cpu_count()}) " 34 | f"{cpu_freq}" 35 | ) 36 | # Memory 37 | vm = psutil.virtual_memory() 38 | sm = psutil.swap_memory() 39 | info['RAM'] = (f"{bytes2human(vm.total)}, " 40 | f"{bytes2human(vm.available)} available") 41 | info['SWAP'] = f"{bytes2human(sm.total)}, {sm.percent}%" 42 | # Disks 43 | du = psutil.disk_usage(workdir) 44 | dio = psutil.disk_io_counters() 45 | info['DISK'] = (f"{bytes2human(du.used)} / {bytes2human(du.total)} " 46 | f"({du.percent}%)") 47 | if dio: 48 | info['DISK I/O'] = f"R {bytes2human(dio.read_bytes)} | W {bytes2human(dio.write_bytes)}" 49 | # Network 50 | nio = psutil.net_io_counters() 51 | info['NET I/O'] = f"TX {bytes2human(nio.bytes_sent)} | RX {bytes2human(nio.bytes_recv)}" 52 | # Sensors 53 | sensors_temperatures = psutil.sensors_temperatures() 54 | if sensors_temperatures: 55 | temperatures_list = [ 56 | x.current 57 | for x in sensors_temperatures['coretemp'] 58 | ] 59 | temperatures = sum(temperatures_list) / len(temperatures_list) 60 | info['TEMP'] = f"{temperatures}\u00b0C" 61 | info = {f"{key}:": value for (key, value) in info.items()} 62 | max_len = max(len(x) for x in info) 63 | return ("```\n" 64 | + "\n".join([f"{x:<{max_len}} {y}" for x, y in info.items()]) 65 | + "```") 66 | 67 | 68 | @userge.on_cmd("sysinfo", about="Get system info of your host machine.") 69 | async def get_sysinfo(message: Message): 70 | await message.edit("Getting system information ...") 71 | response = await generate_sysinfo(userge.workdir) 72 | await message.edit("**System Information**:\n" + response) 73 | -------------------------------------------------------------------------------- /plugins/misc/zippyshare/__main__.py: -------------------------------------------------------------------------------- 1 | """ generate direct link of zippyshare """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | # !/usr/bin/env python3 12 | # https://github.com/Sorrow446/ZS-DL 13 | # plugin by @aryanvikash 14 | 15 | import re 16 | 17 | import requests 18 | 19 | from userge import userge, Message, pool 20 | 21 | 22 | @userge.on_cmd("zippy", about={ 23 | 'header': "generate Direct link of zippyshare url", 24 | 'usage': "{tr}zippy : [Zippyshare Link ]", 25 | 'examples': "{tr}zippy https://www10.zippyshare.com/v/dyh988sh/file.html"}) 26 | async def zippyshare(message: Message): 27 | """ zippy to direct """ 28 | url = message.input_str 29 | await message.edit("`Generating url ....`") 30 | try: 31 | direct_url, fname = await _generate_zippylink(url) 32 | await message.edit(f"**Original** : {url}\n**FileName** : `{fname}`\n" 33 | f"**DirectLink** : {direct_url}\n\n" 34 | "**[HINT]** : use `.download [directLink]`", 35 | disable_web_page_preview=True) 36 | except Exception as z_e: # pylint: disable=broad-except 37 | await message.edit(f"`{z_e}`") 38 | 39 | 40 | _REGEX_LINK = r'https://www(\d{1,3}).zippyshare.com/v/(\w{8})/file.html' 41 | _REGEX_RESULT = ( 42 | r'document.getElementById\(\'dlbutton\'\).href = "/d/[a-zA-Z\d]{8}/" \+ ' 43 | r'\((\d{6}) % 51245 \+ (\d{6}) % 913\) \+ "/([\w%-.]+)";' 44 | ) 45 | _HEADERS = {'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) " 46 | "AppleWebKit/537.36 (KHTML, like Gecko) Chrome" 47 | "/75.0.3770.100 Safari/537.36"} 48 | 49 | 50 | @pool.run_in_thread 51 | def _generate_zippylink(url): 52 | session = requests.Session() 53 | session.headers.update(_HEADERS) 54 | with session as ses: 55 | match = re.match(_REGEX_LINK, url) 56 | if not match: 57 | raise ValueError("Invalid URL: " + str(url)) 58 | server, id_ = match.group(1), match.group(2) 59 | res = ses.get(url) 60 | res.raise_for_status() 61 | match = re.search(_REGEX_RESULT, res.text, re.DOTALL) 62 | if not match: 63 | raise ValueError("Invalid Response!") 64 | val_1 = int(match.group(1)) 65 | val_2 = int(match.group(2)) 66 | val = val_1 % 51245 + val_2 % 913 67 | name = match.group(3) 68 | d_l = "https://www{}.zippyshare.com/d/{}/{}/{}".format(server, id_, val, name) 69 | return d_l, name 70 | -------------------------------------------------------------------------------- /plugins/utils/github/__main__.py: -------------------------------------------------------------------------------- 1 | """ Plugin for getting information about an user on GitHub 2 | 3 | Syntax: .github USERNAME 4 | """ 5 | 6 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 7 | # 8 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 9 | # and is released under the "GNU v3.0 License Agreement". 10 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 11 | # 12 | # All rights reserved. 13 | 14 | 15 | import requests 16 | 17 | from userge import userge, Message 18 | 19 | 20 | @userge.on_cmd("github", about={ 21 | 'header': "Get info about an GitHub User", 22 | 'flags': {'-l': "repo limit : default to 5"}, 23 | 'usage': ".github [flag] [username]", 24 | 'examples': [".github cyberboysumanjay", ".github -l5 cyberboysumanjay"]}) 25 | async def fetch_github_info(message: Message): 26 | replied = message.reply_to_message 27 | username = message.filtered_input_str 28 | if replied: 29 | username = replied.text 30 | if not username: 31 | await message.err("invalid input !") 32 | return 33 | url = "https://api.github.com/users/{}".format(username) 34 | res = requests.get(url) 35 | if res.status_code == 200: 36 | await message.edit("`fetching github info ...`") 37 | data = res.json() 38 | photo = data["avatar_url"] 39 | if data['bio']: 40 | data['bio'] = data['bio'].strip() 41 | repos = [] 42 | sec_res = requests.get(data["repos_url"]) 43 | if sec_res.status_code == 200: 44 | limit = int(message.flags.get('-l', 5)) 45 | for repo in sec_res.json(): 46 | repos.append(f"[{repo['name']}]({repo['html_url']})") 47 | limit -= 1 48 | if limit == 0: 49 | break 50 | template = """ 51 | \b👤 **Name** : [{name}]({html_url}) 52 | 🔧 **Type** : `{type}` 53 | 🏢 **Company** : `{company}` 54 | 🔭 **Blog** : {blog} 55 | 📍 **Location** : `{location}` 56 | 📝 **Bio** : __{bio}__ 57 | ❤️ **Followers** : `{followers}` 58 | 👁 **Following** : `{following}` 59 | 📊 **Public Repos** : `{public_repos}` 60 | 📄 **Public Gists** : `{public_gists}` 61 | 🔗 **Profile Created** : `{created_at}` 62 | ✏️ **Profile Updated** : `{updated_at}`\n""".format(**data) 63 | if repos: 64 | template += "🔍 **Some Repos** : " + ' | '.join(repos) 65 | await message.client.send_photo(chat_id=message.chat.id, 66 | caption=template, 67 | photo=photo, 68 | disable_notification=True) 69 | await message.delete() 70 | else: 71 | await message.edit("No user found with `{}` username!".format(username)) 72 | -------------------------------------------------------------------------------- /plugins/utils/currency/__main__.py: -------------------------------------------------------------------------------- 1 | """ convert currency """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | import json 12 | 13 | import aiohttp 14 | from emoji import get_emoji_regexp 15 | 16 | from pyrogram import enums 17 | 18 | from userge import userge, Message 19 | from .. import currency 20 | 21 | CHANNEL = userge.getCLogger(__name__) 22 | LOG = userge.getLogger(__name__) 23 | 24 | 25 | @userge.on_cmd("cr", about={ 26 | 'header': "use this to convert currency & get exchange rate", 27 | 'description': "Convert currency & get exchange rates.", 28 | 'examples': "{tr}cr 1 BTC USD"}) 29 | async def cur_conv(message: Message): 30 | """ 31 | this function can get exchange rate results 32 | """ 33 | if currency.CURRENCY_API is None: 34 | await message.edit( 35 | "Oops!!get the API from " 36 | "HERE " 37 | "& add it to Heroku config vars (CURRENCY_API)", 38 | disable_web_page_preview=True, 39 | parse_mode=enums.ParseMode.HTML, del_in=0) 40 | return 41 | 42 | filterinput = get_emoji_regexp().sub(u'', message.input_str) 43 | curcon = filterinput.upper().split() 44 | 45 | if len(curcon) == 3: 46 | amount, currency_to, currency_from = curcon 47 | else: 48 | await message.err("you entered invalid data") 49 | return 50 | 51 | if amount.isdigit(): 52 | url = ("https://free.currconv.com/api/v7/convert?" 53 | f"apiKey={currency.CURRENCY_API}&q=" 54 | f"{currency_from}_{currency_to}&compact=ultra") 55 | async with aiohttp.ClientSession() as ses, ses.get(url) as res: 56 | data = json.loads(await res.text()) 57 | try: 58 | result = data[f'{currency_from}_{currency_to}'] 59 | except KeyError: 60 | LOG.info(data) 61 | await message.edit("`invalid response from api !`", del_in=5) 62 | return 63 | result = float(amount) / float(result) 64 | result = round(result, 5) 65 | await message.edit( 66 | "**CURRENCY EXCHANGE RATE RESULT:**\n\n" 67 | f"`{amount}` **{currency_to}** = `{result}` **{currency_from}**") 68 | await CHANNEL.log("`cr` command executed sucessfully") 69 | 70 | else: 71 | await message.edit( 72 | r"`This seems to be some alien currency, which I can't convert right now.. (⊙_⊙;)`", 73 | del_in=0) 74 | -------------------------------------------------------------------------------- /plugins/utils/bitly/__main__.py: -------------------------------------------------------------------------------- 1 | """ Url shortener """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | # By @Krishna_Singhal 12 | 13 | import gdshortener 14 | from pyrogram.errors import YouBlockedUser 15 | 16 | from userge import userge, Message 17 | from userge.utils.exceptions import StopConversation 18 | 19 | 20 | @userge.on_cmd("bitly", about={ 21 | 'header': "Shorten Any Url using bit.ly", 22 | 'usage': "{tr}bitly [link or reply]"}, allow_via_bot=False) 23 | async def bitly(msg: Message): 24 | url = msg.input_or_reply_str 25 | if not url: 26 | await msg.err("need url to shorten") 27 | return 28 | try: 29 | async with userge.conversation("Sl_BitlyBot") as conv: 30 | try: 31 | await conv.send_message("/start") 32 | except YouBlockedUser: 33 | await userge.unblock_user("Sl_BitlyBot") 34 | await conv.send_message("/start") 35 | await conv.get_response(mark_read=True) 36 | await conv.send_message(url) 37 | shorten_url = ( 38 | await conv.get_response(mark_read=True) 39 | ).text.split('\n', maxsplit=1)[-1] 40 | await msg.edit(f"`{shorten_url}`", disable_web_page_preview=True) 41 | except StopConversation: 42 | await msg.err("bot is down") 43 | 44 | 45 | @userge.on_cmd("isgd", about={ 46 | 'header': "Shorten Any Url using is.gd", 47 | 'usage': "{tr}isgd [link or reply]"}) 48 | async def is_gd(msg: Message): 49 | url = msg.input_or_reply_str 50 | if not url: 51 | await msg.err("need url to shorten") 52 | return 53 | s = gdshortener.ISGDShortener() 54 | try: 55 | s_url, stats = s.shorten(url, log_stat=True) 56 | except Exception as er: 57 | await msg.err(str(er)) 58 | else: 59 | await msg.edit( 60 | f"**Shortened URL:**\n`{s_url}`\n\n**Stats:** `{stats}`", 61 | disable_web_page_preview=True 62 | ) 63 | 64 | 65 | @userge.on_cmd("statsisgd", about={ 66 | 'header': "Convert is.gd url into original URl.", 67 | 'usage': "{tr}statsisgd [link or reply]"}) 68 | async def stats_is_gd(msg: Message): 69 | url = msg.input_or_reply_str 70 | if not url: 71 | await msg.err("need url to check stats") 72 | return 73 | s = gdshortener.ISGDShortener() 74 | try: 75 | original_url = s.lookup(url) 76 | except Exception as er: 77 | await msg.err(str(er)) 78 | else: 79 | await msg.edit( 80 | f"**URL:** `{original_url}`", 81 | disable_web_page_preview=True 82 | ) 83 | -------------------------------------------------------------------------------- /plugins/tools/usage/__main__.py: -------------------------------------------------------------------------------- 1 | """ check usage """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | import asyncio 12 | import math 13 | 14 | import requests 15 | 16 | from userge import config, userge, Message 17 | 18 | 19 | @userge.on_cmd("usage", about={'header': "Get Dyno hours usage"}) # pylint:disable=E0602 20 | async def usage(message: Message): 21 | """Get your account Dyno Usage""" 22 | if not config.HEROKU_APP: 23 | await message.err("Heroku App Not Found !") 24 | return 25 | await message.edit("`Processing...`") 26 | useragent = ('Mozilla/5.0 (Linux; Android 10; SM-G975F) ' 27 | 'AppleWebKit/537.36 (KHTML, like Gecko) ' 28 | 'Chrome/80.0.3987.149 Mobile Safari/537.36') 29 | u_id = config.HEROKU_APP.owner.id 30 | headers = { 31 | 'User-Agent': useragent, 32 | 'Authorization': f'Bearer {config.HEROKU_API_KEY}', 33 | 'Accept': 'application/vnd.heroku+json; version=3.account-quotas', 34 | } 35 | path = "/accounts/" + u_id + "/actions/get-quota" 36 | r = requests.get("https://api.heroku.com" + path, headers=headers) 37 | if r.status_code != 200: 38 | return await message.edit("`Error: something bad happened`\n\n" 39 | f">.`{r.reason}`\n") 40 | result = r.json() 41 | quota = result['account_quota'] 42 | quota_used = result['quota_used'] 43 | 44 | # Used 45 | remaining_quota = quota - quota_used 46 | percentage = math.floor(remaining_quota / quota * 100) 47 | minutes_remaining = remaining_quota / 60 48 | hours = math.floor(minutes_remaining / 60) 49 | minutes = math.floor(minutes_remaining % 60) 50 | 51 | # Current 52 | App = result['apps'] 53 | try: 54 | App[0]['quota_used'] 55 | except IndexError: 56 | AppQuotaUsed = 0 57 | AppPercentage = 0 58 | else: 59 | AppQuotaUsed = App[0]['quota_used'] / 60 60 | AppPercentage = math.floor(App[0]['quota_used'] * 100 / quota) 61 | AppHours = math.floor(AppQuotaUsed / 60) 62 | AppMinutes = math.floor(AppQuotaUsed % 60) 63 | 64 | await asyncio.sleep(1.5) 65 | 66 | await message.edit("**Dyno Usage:**\n\n" 67 | f" -> `Dyno usage for` **{config.HEROKU_APP_NAME}**:\n" 68 | f" • `{AppHours}`**h** `{AppMinutes}`**m** " 69 | f"**|** [`{AppPercentage}`**%**]" 70 | "\n" 71 | " -> `Dyno hours quota remaining this month`:\n" 72 | f" • `{hours}`**h** `{minutes}`**m** " 73 | f"**|** [`{percentage}`**%**]") 74 | -------------------------------------------------------------------------------- /plugins/utils/covid/__main__.py: -------------------------------------------------------------------------------- 1 | """ see covid details """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 5 | # and is released under the "GNU v3.0 License Agreement". 6 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 7 | 8 | # Userge Plugin for getting detailed stats of Covid Patients 9 | # Author: Sumanjay (https://github.com/cyberboysumanjay) (@cyberboysumanjay) 10 | # All rights reserved. 11 | 12 | from covid import Covid 13 | 14 | from userge import userge, Message, pool 15 | 16 | 17 | @userge.on_cmd("covid", about={ 18 | 'header': "see covid details", 19 | 'description': "The current real time situation of the COVID-19 patients reported in worldwide", 20 | 'flags': {'-l': "list countries"}, 21 | 'usage': "{tr}covid [flag | country]", 22 | 'examples': ["{tr}covid -l", "{tr}covid", "{tr}covid india"]}) 23 | async def covid(message: Message): 24 | await message.edit("`fetching covid ...`") 25 | covid_ = await pool.run_in_thread(Covid)("worldometers") 26 | country = message.input_str 27 | result = "" 28 | if '-l' in message.flags: 29 | result += "Covid Supported Countries\n\n`" 30 | result += '` , `'.join(sorted(filter(lambda x: x, covid_.list_countries()))) 31 | result += "`" 32 | elif country: 33 | try: 34 | data = covid_.get_status_by_country_name(country) 35 | except ValueError: 36 | await message.err(f"invalid country name <{country}>!") 37 | return 38 | result += f"Covid Status for {data['country']}\n\n" 39 | result += f"**new cases** : `{data['new_cases']}`\n" 40 | result += f"**new deaths** : `{data['new_deaths']}`\n\n" 41 | result += f"**critical** : `{data['critical']}`\n" 42 | result += f"**active** : `{data['active']}`\n" 43 | result += f"**confirmed** : `{data['confirmed']}`\n" 44 | result += f"**deaths** : `{data['deaths']}`\n" 45 | result += f"**recovered** : `{data['recovered']}`\n\n" 46 | result += f"**total tests** : `{data['total_tests']}`\n" 47 | result += f"**total tests per million** : `{data['total_tests_per_million']}`\n" 48 | result += f"**total cases per million** : `{data['total_cases_per_million']}`\n" 49 | result += f"**total deaths per million** : `{data['total_deaths_per_million']}`\n" 50 | result += f"**population** : `{data['population']}`\n" 51 | else: 52 | result += "Covid Status in the world\n\n" 53 | result += f"**total active cases** : `{covid_.get_total_active_cases()}`\n" 54 | result += f"**total confirmed cases** : `{covid_.get_total_confirmed_cases()}`\n" 55 | result += f"**total deaths** : `{covid_.get_total_deaths()}`\n" 56 | result += f"**total recovered** : `{covid_.get_total_recovered()}`\n" 57 | await message.edit_or_send_as_file(result) 58 | -------------------------------------------------------------------------------- /plugins/fun/autofastly/__main__.py: -------------------------------------------------------------------------------- 1 | """ auto fastly """ 2 | 3 | # Copyright (C) 2020-2022 by UsergeTeam@Github, < https://github.com/UsergeTeam >. 4 | # 5 | # This file is part of < https://github.com/UsergeTeam/Userge > project, 6 | # and is released under the "GNU v3.0 License Agreement". 7 | # Please see < https://github.com/UsergeTeam/Userge/blob/master/LICENSE > 8 | # 9 | # All rights reserved. 10 | 11 | # By @AsmSafone 12 | 13 | import os 14 | 15 | from pyrogram import enums 16 | 17 | from userge import userge, Message, filters, config, get_collection 18 | from ...utils import ocr 19 | 20 | IS_ENABLED = False 21 | IS_ENABLED_FILTER = filters.create(lambda _, __, ___: IS_ENABLED) 22 | 23 | USER_DATA = get_collection("CONFIGS") 24 | CHANNEL = userge.getCLogger(__name__) 25 | 26 | 27 | @userge.on_start 28 | async def _init() -> None: 29 | global IS_ENABLED # pylint: disable=global-statement 30 | data = await USER_DATA.find_one({'_id': 'AUTO_FASTLY'}) 31 | if data: 32 | IS_ENABLED = data['on'] 33 | 34 | 35 | @userge.on_cmd("autofastly", about={ 36 | 'header': "Auto Fastly Response", 37 | 'description': "enable or disable auto fastly response", 38 | 'usage': "{tr}autofastly"}, 39 | allow_channels=False, allow_via_bot=False) 40 | async def autofastly(msg: Message): 41 | """ Auto Fastly Response """ 42 | global IS_ENABLED # pylint: disable=global-statement 43 | if ocr.OCR_SPACE_API_KEY is None: 44 | await msg.edit( 45 | "Oops!!get the OCR API from " 46 | "HERE " 47 | "& add it to Heroku config vars (OCR_SPACE_API_KEY)", 48 | disable_web_page_preview=True, 49 | parse_mode=enums.ParseMode.HTML, del_in=0) 50 | return 51 | 52 | IS_ENABLED = not IS_ENABLED 53 | await USER_DATA.update_one({'_id': 'AUTO_FASTLY'}, 54 | {"$set": {'on': IS_ENABLED}}, upsert=True) 55 | await msg.edit( 56 | "Auto Fastly Response has been **{}** Successfully...".format( 57 | "Enabled" if IS_ENABLED else "Disabled" 58 | ), 59 | log=True, del_in=5 60 | ) 61 | 62 | 63 | @userge.on_filters(IS_ENABLED_FILTER & filters.group & filters.photo & filters.incoming 64 | & filters.user([1806208310, 1983714367, 1877720720, 5053950120]), # Bot IDs 65 | group=-1, allow_via_bot=False) 66 | async def fastly_handler(msg: Message): 67 | img = await msg.download(config.Dynamic.DOWN_PATH) 68 | parse = await ocr.ocr_space_file(img) 69 | try: 70 | text = parse["ParsedResults"][0]["ParsedText"] 71 | text = text.split("By@")[0].replace("\n", "").replace("\r", "").replace(" ", "") 72 | if text: 73 | await msg.reply_text(text.capitalize()) 74 | await CHANNEL.log(f'Auto Fastly Responded in {msg.chat.title} [{msg.chat.id}]') 75 | os.remove(img) 76 | except Exception as e_x: # pylint: disable=broad-except 77 | await CHANNEL.log(str(e_x)) 78 | if os.path.exists(img): 79 | os.remove(img) 80 | --------------------------------------------------------------------------------