Valorant store offer discord-bot

Overview

Valorant store checker - Discord Bot

Discord bot that shows your daily store offer without open the VALORANT by using the Ingame API. written using Python and the Pycord library

Tutorial : Youtube

Screenshot

image image

Usage

Command Action
store Shows my daily store

Prerequisites

Installations

  • Install requirements
pip install -r requirements.txt
  • Store discord bot token in .env and server id for slash command
TOKEN=<BOT_TOKEN>
SERVER_ID=<SERVER_ID>
REGION=<YOUR_REGION>
CHANNEL_LOOP=<CHANNEL_ID notification loop>
  • Run the bot
python bot.py

Special thanks

Valorant Client API by RumbleMike

for providing a great API about Valorant!

Valorant-API.com

for every skin names and images!

Comments
  • Missing Access HOW TO FIX?

    Missing Access HOW TO FIX?

    Ignoring exception in on_message Traceback (most recent call last): File "C:\Users\USER-PC\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\client.py", line 382, in _run_event await coro(*args, **kwargs) File "C:\Users\USER-PC\Downloads\ValorantStoreChecker-discord-bot-master\ValorantStoreChecker-discord-bot-master\bot.py", line 59, in on_message await bot.register_commands(commands=command, guild_id=message.guild.id, force=True) File "C:\Users\USER-PC\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\bot.py", line 471, in register_commands registered = await register("bulk", data) File "C:\Users\USER-PC\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\http.py", line 351, in request raise Forbidden(response, data) discord.errors.Forbidden: 403 Forbidden (error code: 50001): Missing Access

    everything seems correct but for some reason when i put -setup global or -setup guild it happens

    opened by codsec 37
  • Login Command: decode JSON failed

    Login Command: decode JSON failed

    Using the login command results in an error. image changing the code in https://github.com/staciax/Valorant-DiscordBot/blob/c76f330f2d3d1dc691330e542dab056fc3122dd2/utils/valorant/auth.py#L97 to disable the content_type check to r.json(content_type=None) reveals that the response of the riot games api to https://auth.riotgames.com/api/v1/authorization is returning a 403. I don't know what your source is but the same issue is mentioned here but the suggest fix doesn't work for me. I also found this which might be helpful.

    bug 
    opened by doluk 17
  • ImportError 'TextStyle' from 'discord'

    ImportError 'TextStyle' from 'discord'

    Getting this ImportError while trying to set up bot.

    /Downloads/Valorant-DiscordBot-master/utils/valorant/view.py", line 5, in <module> from discord import Interaction, TextStyle, ui ImportError: cannot import name 'TextStyle' from 'discord' (/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/discord/__init__.py)

    opened by jennck 10
  • account hacked.

    account hacked.

    a friend told me his account's name and pass got changed I asked him if he had 2fa enabled and he said he did but he also used /2fa command I'm not sure if it's related to the bot or not but his acc was Immortal 3 and had lots of skins

    opened by Chan0n 10
  • valorantstore bot no setting up

    valorantstore bot no setting up

    image the bot couldn't setup, its stuck on "setting up..." waited for 30 minutes and still no sign of "setup in guild!" P.S. am a beginner

    opened by ryanfrrl 9
  • got error when using -setup guild

    got error when using -setup guild

    I got a problem when i try to use -setup guild. it says discord.errors.Forbidden: 403 Forbidden (error code: 50001): Missing Access what should i do? image

    opened by Malvian62 8
  • How can I get player_mission and battle_pass?

    How can I get player_mission and battle_pass?

    I found this api -> StoryContract, but it doesn't work! requests return this

    {'httpStatus': 404, 'errorCode': 'RESOURCE_NOT_FOUND', 'message': 'resource not found'}
    

    then I tired url from your repo endpoints

    https://github.com/staciax/Valorant-DiscordBot/blob/cc1e9d8bb2902a71ad674e4840b9fcef7b823763/utils/valorant/endpoint.py#L116

    it return 👇

    {'httpStatus': 400, 'errorCode': 'INVALID_HEADERS', 'message': 'Bad headers used for request'}
    

    so maybe my headers is wrong? what's the correct one?

    async def fetch_contract(u):
        #url="https://pd.ap.a.pvp.net/contract-definitions/v2/definitions/story"
        url=f"https://pd.ap.a.pvp.net/contracts/v1/contracts/"+u['auth_user_id']
        headers = {
            "Content-Type": "application/json",
            "X-Riot-Entitlements-JWT": u['entitlements_token'],
            "Authorization": "Bearer " + u['access_token']
        }
        async with aiohttp.ClientSession() as session:
            async with session.get(url, headers=headers) as response:
                res = json.loads(await response.text())
    
        return res
    
    opened by Aewait 7
  • Cannot connect to host auth.riotgames.com:443

    Cannot connect to host auth.riotgames.com:443

    Capture Cannot connect to host auth.riotgames.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)')]

    opened by SploeCyber 7
  • /login issue

    /login issue

    Ive changed the host of the bot and since im facing the issue that the bot is not responding to the /login command - afaik all other command semm to work but I can not test properly since login isnt working for me.

    Console responds with this when using /login:

    Task exception was never retrieved future: <Task finished name='CommandTree-invoker' coro=<CommandTree._from_interaction..wrapper() done, defined at /home/container/.local/lib/python3.10/site-packages/discord/app_commands/tree.py:1087> exception=ValueError('Both or neither of value and tb must be given')> Traceback (most recent call last): File "/home/container/.local/lib/python3.10/site-packages/discord/app_commands/commands.py", line 850, in _do_call return await self._callback(self.binding, interaction, **params) # type: ignore File "/home/container/cogs/valorant.py", line 93, in login authenticate = await auth.authenticate(username, password) File "/home/container/utils/valorant/auth.py", line 120, in authenticate data = await r.json() File "/home/container/.local/lib/python3.10/site-packages/aiohttp/client_reqrep.py", line 1103, in json raise ContentTypeError( aiohttp.client_exceptions.ContentTypeError: 0, message='Attempt to decode JSON with unexpected mimetype: text/html; charset=utf-8', url=URL('https://auth.riotgames.com/api/v1/authorization')

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last): File "/home/container/.local/lib/python3.10/site-packages/discord/app_commands/tree.py", line 1240, in _call await command._invoke_with_namespace(interaction, namespace) File "/home/container/.local/lib/python3.10/site-packages/discord/app_commands/commands.py", line 876, in _invoke_with_namespace return await self._do_call(interaction, transformed_values) File "/home/container/.local/lib/python3.10/site-packages/discord/app_commands/commands.py", line 869, in _do_call raise CommandInvokeError(self, e) from e discord.app_commands.errors.CommandInvokeError: Command 'login' raised an exception: ContentTypeError: 0, message='Attempt to decode JSON with unexpected mimetype: text/html; charset=utf-8', url=URL('https://auth.riotgames.com/api/v1/authorization')

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last): File "/home/container/.local/lib/python3.10/site-packages/discord/app_commands/tree.py", line 1089, in wrapper await self._call(interaction) File "/home/container/.local/lib/python3.10/site-packages/discord/app_commands/tree.py", line 1244, in _call await self.on_error(interaction, e) File "/home/container/cogs/errors.py", line 65, in on_app_command_error traceback.print_exception(type(error), error) File "/usr/local/lib/python3.10/traceback.py", line 116, in print_exception value, tb = _parse_value_tb(exc, value, tb) File "/usr/local/lib/python3.10/traceback.py", line 95, in _parse_value_tb raise ValueError("Both or neither of value and tb must be given") ValueError: Both or neither of value and tb must be given Unclosed client session client_session: <utils.valorant.auth.ClientSession object at 0x7f6af47e6f80> Unclosed connector connections: ['[(<aiohttp.client_proto.ResponseHandler object at 0x7f6af51b29e0>, 58355373.88184868)]'] connector: <aiohttp.connector.TCPConnector object at 0x7f6af47e6d40>

    Any recommendations what I could try to fix this?

    opened by nagisa404 6
  • How can I get price of the skin & its rank?

    How can I get price of the skin & its rank?

    HELLO!

    I'm new in Python,while using valorant-api, I found that the price of the skin and the rank of the skin (not the weapons/skinlevels includes in api,but like epic skin). How can I get the price of the skin and this rank?

    image

    url = f"https://valorant-api.com/v1/weapons/skinlevels/{skinuuid}"
    headers = {'Connection': 'close'}
    res = requests.get(url=url,headers=headers)
    res1 = json.loads(res.text)
    

    the res of this code is👇

    {'status': 200, 'data': {'uuid': 'fc4c3dcb-4f6d-5e8e-3dc3-1695f55d24c2', 'displayName': '王牌戰隊 幻象', 'levelItem': None, 'displayIcon': 'https://media.valorant-api.com/weaponskinlevels/fc4c3dcb-4f6d-5e8e-3dc3-1695f55d24c2/displayicon.png', 'streamedVideo': None, 'assetPath': 'ShooterGame/Content/Equippables/Guns/Rifles/Carbine/Flush/Levels/Carbine_Flush_Lv1_PrimaryAsset'}}
    

    PS: I use ValorantClientAPI to fetch my daily shop

    opened by Aewait 5
  • Can't load emoji

    Can't load emoji

    Bot didn;t load emoji บอทไม่โหลด emoji ครับ

    ไม่สามารถสร้างอีโมจิได้ กรุณาลองอีกครรั้ง ไม่สามารถสร้างอีโมจิได้ กรุณาลองอีกครรั้ง ไม่สามารถสร้างอีโมจิได้ กรุณาลองอีกครรั้ง ไม่สามารถสร้างอีโมจิได้ กรุณาลองอีกครรั้ง ไม่สามารถสร้างอีโมจิได้ กรุณาลองอีกครรั้ง ไม่สามารถสร้างอีโมจิได้ กรุณาลองอีกครรั้ง ไม่สามารถสร้างอีโมจิได้ กรุณาลองอีกครรั้ง Response Status: 200 image_2022-04-30_182949427

    opened by BEERZXD 5
  • /login issue

    /login issue

    BOT IS READY ! Version: 3.3.5 Task exception was never retrieved future: <Task finished name='CommandTree-invoker' coro=<CommandTree._from_interaction..wrapper() done, defined at C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\app_commands\tree.py:1087> exception=TypeError('Subscripted generics cannot be used with class and instance checks')> Traceback (most recent call last): File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\app_commands\commands.py", line 850, in _do_call return await self._callback(self.binding, interaction, **params) # type: ignore File "E:\Downloads\Compressed\Valorant-DiscordBot-3.4.0\Valorant-DiscordBot-3.4.0\cogs\valorant.py", line 93, in login authenticate = await auth.authenticate(username, password) File "E:\Downloads\Compressed\Valorant-DiscordBot-3.4.0\Valorant-DiscordBot-3.4.0\utils\valorant\auth.py", line 122, in authenticate data = await r.json() File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\aiohttp\client_reqrep.py", line 1103, in json raise ContentTypeError( aiohttp.client_exceptions.ContentTypeError: 0, message='Attempt to decode JSON with unexpected mimetype: text/html; charset=utf-8', url=URL('https://auth.riotgames.com/api/v1/authorization')

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last): File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\app_commands\tree.py", line 1240, in _call await command._invoke_with_namespace(interaction, namespace) File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\app_commands\commands.py", line 876, in _invoke_with_namespace return await self._do_call(interaction, transformed_values) File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\app_commands\commands.py", line 869, in _do_call raise CommandInvokeError(self, e) from e discord.app_commands.errors.CommandInvokeError: Command 'login' raised an exception: ContentTypeError: 0, message='Attempt to decode JSON with unexpected mimetype: text/html; charset=utf-8', url=URL('https://auth.riotgames.com/api/v1/authorization')

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last): File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\app_commands\tree.py", line 1089, in wrapper await self._call(interaction) File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\app_commands\tree.py", line 1244, in _call await self.on_error(interaction, e) File "E:\Downloads\Compressed\Valorant-DiscordBot-3.4.0\Valorant-DiscordBot-3.4.0\cogs\errors.py", line 61, in on_app_command_error elif isinstance(error, Union[AppCommandNotFound, MissingPermissions, BotMissingPermissions]): File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\typing.py", line 697, in instancecheck return self.subclasscheck(type(obj)) File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\typing.py", line 700, in subclasscheck raise TypeError("Subscripted generics cannot be used with" TypeError: Subscripted generics cannot be used with class and instance checks Unclosed client session client_session: <utils.valorant.auth.ClientSession object at 0x000002A7EDAB6C40> Unclosed connector connections: ['[(<aiohttp.client_proto.ResponseHandler object at 0x000002A7ED9F6E80>, 30102.031), (<aiohttp.client_proto.ResponseHandler object at 0x000002A7ED71F0A0>, 30102.078)]'] connector: <aiohttp.connector.TCPConnector object at 0x000002A7ED2099A0>

    opened by nungsorb 0
Releases(v3.4.0)
  • v3.4.0(Oct 17, 2022)

    What's Changed

    • Add Docker CI by @marchingon12 in https://github.com/staciax/Valorant-DiscordBot/pull/71
    • Update en-US localization by @overestimate in https://github.com/staciax/Valorant-DiscordBot/pull/75
    • Renamed .json of Traditional Chinese(zh-TW) to fix the issue of localisation by @scarrrr316 in https://github.com/staciax/Valorant-DiscordBot/pull/77
    • Allow users to add notify with multilingual names by @scarrrr316 in https://github.com/staciax/Valorant-DiscordBot/pull/78
    • Support direct deployment to Replit by @scarrrr316 in https://github.com/staciax/Valorant-DiscordBot/pull/79
    • Added 'Run on Repl.it' badge by @scarrrr316 in https://github.com/staciax/Valorant-DiscordBot/pull/80
    • Update pyproject.toml by @scarrrr316 in https://github.com/staciax/Valorant-DiscordBot/pull/81
    • Update README.md by @scarrrr316 in https://github.com/staciax/Valorant-DiscordBot/pull/82
    • Bugfix: update Riot Client User Agent version by @mzfan in https://github.com/staciax/Valorant-DiscordBot/pull/87
    • Riot user agent version update by @mzfan in https://github.com/staciax/Valorant-DiscordBot/pull/88
    • Fix tier emojis in /nightmarket command. by @R3nzTheCodeGOD in https://github.com/staciax/Valorant-DiscordBot/pull/89
    • Turkish language support by @mustafa383 in https://github.com/staciax/Valorant-DiscordBot/pull/91

    New Contributors

    • @overestimate made their first contribution in https://github.com/staciax/Valorant-DiscordBot/pull/75
    • @scarrrr316 made their first contribution in https://github.com/staciax/Valorant-DiscordBot/pull/77
    • @mzfan made their first contribution in https://github.com/staciax/Valorant-DiscordBot/pull/87
    • @R3nzTheCodeGOD made their first contribution in https://github.com/staciax/Valorant-DiscordBot/pull/89
    • @mustafa383 made their first contribution in https://github.com/staciax/Valorant-DiscordBot/pull/91

    Full Changelog: https://github.com/staciax/Valorant-DiscordBot/compare/v3.3.5...v3.4.0

    Source code(tar.gz)
    Source code(zip)
  • v3.3.5(Jul 4, 2022)

    What's Changed

    • German by @Hackante in https://github.com/staciax/Valorant-DiscordBot/pull/69

    New Contributors

    • @Hackante made their first contribution in https://github.com/staciax/Valorant-DiscordBot/pull/69

    Full Changelog: https://github.com/staciax/Valorant-DiscordBot/compare/v3.2.6...v3.3.5

    Source code(tar.gz)
    Source code(zip)
  • v3.2.1(Jun 18, 2022)

  • v3.1.3-fix(Jun 14, 2022)

    • Cleaned imports

    • Better error handler

    Catching specific errors that might be raised. added a super call to close optimized imports

    • cloudflare fix

    What's Changed

    • Code clean up by @RyugaXhypeR in https://github.com/staciax/Valorant-DiscordBot/pull/58

    New Contributors

    • @RyugaXhypeR made their first contribution in https://github.com/staciax/Valorant-DiscordBot/pull/58

    Full Changelog: https://github.com/staciax/Valorant-DiscordBot/compare/v3.1.1...v3.1.2

    Source code(tar.gz)
    Source code(zip)
  • v3.1.1(Jun 11, 2022)

    Command

    • /bundles support multiple bundle

    Locale

    • Fixed bug not translating some texts
    • Fixed cookies can't refresh

    Bug fixes

    • cloudflare -.-
    • back to aiohttp
    Source code(tar.gz)
    Source code(zip)
  • v3.0.8(May 25, 2022)

  • v3.0.7-v2(May 22, 2022)

  • v3.0.6-v3(May 20, 2022)

  • v3.0.5(May 19, 2022)

  • v3.0.4-v2(May 14, 2022)

    Add commands

    /notify channel - change notify channel ['DM', 'CHANNEL']

    support quick check (without login)

    • /point, /mission, /battlepass, /nightmarket

    language

    • add dm_message error
    • language for /notify channel

    Add config commands

    • -unsync guild, -unsync global

    Bug fixes in v2

    • /nightmarket is not working
    Source code(tar.gz)
    Source code(zip)
  • v3.0.3(May 2, 2022)

    Utility funtion to class

    • GetItems, GetEmoji, Generate_Embed, JSON

    update commands

    /store - add button share when use store without login

    pull request

    • add Dockerfile by kiznick

    bug fixes

    type object 'JSON' has no attribute 'json_read'

    Source code(tar.gz)
    Source code(zip)
  • v3.0.2(Apr 29, 2022)

    New feature

    • Add Vietnamese language translation by TMADZ2007
    • update france, thai language
    • update default season_id
    • setup_emoji can force update
    • update mission embed format
    • debug command owner only can use it
    • little bug fixed
    Source code(tar.gz)
    Source code(zip)
  • v3.0.1(Apr 27, 2022)

    New feature

    • Add commands support Interaction Locale** (translate)

    • /notify add, /notify list, /notify mode ,/notify test, /bundle, /bundles, /debug

    Supported new languages

    • fr - France

    Bug Fixes

    • commands error when using languages ​​other than en-US, th
    • some bundles could not be searched.
    Source code(tar.gz)
    Source code(zip)
  • v3.0.0(Apr 25, 2022)

    New Commands

    • /bundle - inspect a specific bundle
    • /bundles - Show the current featured bundles
    • /debug - Command debug for the bot

    Breaking Changes

    • change library pycord to discord.py

    • rewrite all code and clearly specify the type of attribute

    • /notify to commands group /notify add - Set a notification when a specific skin is available on your store /notify list - View skins you have set a for notification. /notify mode - Change notification mode /notify test - Testing notification

    • /store without /login everyone can see message

    New Feature

    • interaction.locale - automatic change language response
    • currently th-TH, en-US | you can add new languages in folder languages
    • change -setup guild to -sync guild , -sync global

    Bug Fixes

    • wait for testing

    Road Map

    • /contract
    • /party
    • /career

    Moved to discord.py library

    Source code(tar.gz)
    Source code(zip)
  • 2.2.6(Apr 10, 2022)

  • 2.2.5(Mar 25, 2022)

  • v2.2.0(Mar 22, 2022)

  • 2.1.0(Mar 14, 2022)

  • v2.0.0(Feb 14, 2022)

Owner
STACIA
my name is stacia.
STACIA
Stack Overflow Error Parser

A python tool that executes python files and opens respective Stack Overflow threads in browser for errors encountered.

Raghavendra Khare 3 Jul 24, 2022
E0 AI Bot is based on the message, it prints the answer with the highest probability using probability from the database.

E0 AI Chat Bot Based on the message, it prints the answer with the highest probability using probability from the database. Install on linux (Arch,Deb

Error 27 Dec 03, 2022
ELiza music is a telegram music bot project, allow you to play music on voice chat group telegram.

❤️ 𝗘𝗹𝗶𝘇𝗮 𝗠𝘂𝘀𝗶𝗰 ❤️ Unmaintained. The new repo of @MrsElizaRobot is private. (It is no longer based on this source code. The completely rewrit

Team Eliza 2 Dec 08, 2022
Halcyon is a Matrix bot library created with the intention of being easy to install and use. Inspired by discord.py

Halcyon is a Matrix bot library with the goal of being easy to install and use. The library takes inspiration from discord.py and the Slack li

Wes Ring 19 Jan 06, 2023
ResolveURL - Fork of UrlResolver by eldorados, tknorris and jsergio123

ResolveURL Fork of UrlResolver by eldorados, tknorris and jsergio123 I am in no

gujal 60 Jan 03, 2023
Send OpenWeatherMap alerts (One Call API) to telegram users.

OpenWeatherMap Telegram Alert Send OpenWeatherMap alerts (One Call API) to telegram users. Installation Requirements: $ apt install python3-yaml pytho

Michael Hacker 1 Jun 04, 2022
Open API to list Viet Nam administrative divisions

Viet Nam province API Homepage: https://provinces.open-api.vn This is online tool to let my VietnamProvinces library reach more users. VietnamProvince

Nguyễn Hồng Quân 52 Dec 05, 2022
TgMusicBot is a telegram userbot for playing songs in telegram voice calls based on Pyrogram and PyTgCalls.

TgMusicBot [Stable] TgMusicBot is a telegram userbot for playing songs in telegram voice calls based on Pyrogram and PyTgCalls. Commands !start / !hel

Kürşad 21 Dec 25, 2022
A Python script to update Spotify Playlist data every 5 minutes.

Spotify Playlist Updater A Python script to update Spotify Playlist data every 5 minutes. Description An automatic playlist updater using Spotify API

6 Nov 24, 2022
Python client for ETAPI of Trilium Note.

Python client for ETAPI of Trilium Note.

33 Dec 31, 2022
TwitchAccountMaker - Twitch Account Maker with python

Twitch Account Creator A Twitch Account Creator, Requires Capmonster.cloud Verif

vanis / 1800 0 Jan 20, 2022
A Discord API Wrapper for Userbots/Selfbots written in Python.

DisCum A simple, easy to use, non-restrictive, synchronous Discord API Wrapper for Selfbots/Userbots written in Python. -using requests and websockets

Liam 450 Dec 27, 2022
C Y B Ξ R UserBot is a project that simplifies the use of Telegram.

C Y B Ξ R USΞRBOT 🇦🇿 C Y B Ξ R UserBot is a project that simplifies the use of Telegram. All rights reserved. Automatic Setup Android: open Termux p

FVREED 4 Dec 07, 2022
A Python library for PagerDuty.

Pygerduty Python Library for PagerDuty's REST API and Events API. This library was originally written to support v1 and is currently being updated to

Dropbox 164 Dec 20, 2022
Automated JSON API based communication with Fronius Symo

PyFronius - a very basic Fronius python bridge A package that connects to a Fronius device in the local network and provides data that is provided via

Niels Mündler 10 Dec 30, 2022
Herramienta para transferir eventos de Sucuri WAF hacia Azure Blob Storage.

Transfiere eventos de Sucuri hacia Azure Blob Storage Script para transferir eventos del Sucuri Web Application Firewall (WAF) hacia Azure Blob Storag

CSIRT-RD 1 Dec 22, 2021
Kevin L. 3 Jul 14, 2022
A pixeldrain python package using pixeldrain official api

Made with Python3 (C) @FayasNoushad Copyright permission under MIT License License - https://github.com/FayasNoushad/Pixeldrain/blob/main/LICENSE In

Fayas Noushad 6 Jan 26, 2022
Command-line program to download image galleries and collections from several image hosting sites

gallery-dl gallery-dl is a command-line program to download image galleries and collections from several image hosting sites (see Supported Sites). It

Mike Fährmann 6.4k Jan 06, 2023
Zen-Userbot - Userbot gabut With Python

Zen-Userbot Disclaimer ⚠️ PERINGATAN UNTUK ANDA ⚠️ ️ Zen-Userbot

Wahyusaputra 6 Feb 12, 2022