├── 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 |
--------------------------------------------------------------------------------