Discord bot that shows valorant your daily store by using the Ingame API

Overview

Valorant store checker - Discord Bot

Discord bot that shows valorant your daily store by using the Ingame API. written using Python and the Pycord library

Screenshot

image image

Usage

Command Action
store Shows my daily store

Prerequisites

  • Python 3.6+

Installations

  • Install requirements
pip install -r requirements.txt
  • Store discord bot token in .env and server id for slash command (if private server)
TOKEN=
   
    
SERVER_ID= 
    
     
CHANNEL_LOOP = 
     
       (if you want to 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
Anti Spam/NSFW Telegram Bot Written In Python With Pyrogram.

Anti Spam/NSFW Telegram Bot Written In Python With Pyrogram.

Wahyusaputra 2 Dec 29, 2021
Cutting-edge GitHub page customization tool

Cutting-edge GitHub page customization tool Want to customize your GitHub user page, but don't know how? Now you can make your profile unique and attr

Igor Vaiman 32 Aug 24, 2022
Remedy when Amazon ECR is not running basic scans for container CVEs.

Welcome to your CDK Python project! This is a blank project for Python development with CDK. The cdk.json file tells the CDK Toolkit how to execute yo

4n6ir 4 Nov 05, 2022
An unofficial API for lyricsfreak.com using django and django rest framework.

An unofficial API for lyricsfreak.com using django and django rest framework.

Hesam Norin 1 Feb 09, 2022
Build a better understanding of your data in PostgreSQL.

Data Fluent for PostgreSQL Build a better understanding of your data in PostgreSQL. The following shows an example report generated by this tool. It g

Mark Litwintschik 28 Aug 30, 2022
Easy and simple, Telegram Bot to Show alert when some edits a message in Group

Edit-Message-Alert Just a simple bot to show alert when someone edits a message sent by them, Just 17 Lines of Code These codes are for those who incu

Nuhman Pk 6 Dec 15, 2021
Pixiv 爬虫,使用 Python 实现。支持批量下载、上传到图床。

用 Python 实现的 Pixiv 爬虫,支持批量下载和上传。 随机图片 API: https://loliapi.ml/ Deploy Github Action 集成部署 建议使用本方法部署,相较于本地部署,无需搭建环境,全程在线上完成。并且使用国外服务器下载、上传,网络更加通畅。 Fork

18 Feb 26, 2022
Мои личные наработки по новому API Тинькофф. Не официально.

TinkoffNewAPI Мои личные наработки по новому API Тинькофф. Не официально. Официально по ссылке: https://github.com/Tinkoff/investAPI/ Выложено по прос

1 Jan 20, 2022
streamlit translator is used to detect and translate between languages created using gTTS, googletrans, pillow and streamlit python packages

Streamlit Translator Streamlit Translator is a simple translator app to detect and translate between languages. Streamlit Translator gets text and lan

Siva Prakash 5 Apr 05, 2022
Bot interpretation of the carbon.now.sh site

📒 Source code of the @PicodeBot 🧸 Developer: @hoosnick Run $ git clone https://github.com/hoosnick/picodebot.git $ pip install -r requirements.txt P

Husniddin Murodov 13 Oct 02, 2022
A simple and easy to use musicbot in python and it uses lavalink.

Lavalink-MusicBot A simple and easy to use musicbot in python and it uses lavalink. ✨ Features plays music in your discord server well thats it i gues

Afnan 1 Nov 29, 2021
RDMAss - A Python Discord bot creating an interaction with RDM API

RDMAss A Python Discord bot creating an interaction with RDM API. Features Assig

5 Sep 21, 2022
A slack bot that notifies you when a restaurant is available for orders

Slack Wolt Notifier A Slack bot that notifies you when a Wolt restaurant or venue is available for orders. How does it work? Slack supports bots that

Gil Matok 8 Oct 24, 2022
python script to buy token from pancakeswap

pancakeswapBot python script to buy token from pancakeswap Change your privatekey!!! on line 58 (signed_txn = web3.eth.account.sign_transaction(pancak

206 Dec 31, 2022
A discord self bot that replies to messages using cleverbot

cleverbot-discord-self A discord self bot that replies to messages using cleverbot Bot will respond to DMs and channels in the channels list. Need to

0 Jan 11, 2022
A Very Simple Telegram Files Rename Bot by @AbirHasan2005

Rename-Bot This is a very simple Telegram Files Rename Bot by @AbirHasan2005. Features Rename Videos, Files or Audios. Permanent Custom Thumbnail Supp

Abir Hasan 124 Dec 25, 2022
Clisd.py - UI framework with client side rendering for python

clisd.py Clisd is UI framework with client side rendering for python. It uses WA

2 Mar 25, 2022
doi, pubmed, arxiv.org的查询服务API接口,部署于vercel云函数

article-search-service doi, pubmed, arxiv.org的查询服务API接口,部署于vercel云函数 云函数 vercel,国内可能被qiang了。 DOI接口 POST https://article-search-service.vercel.app/api/

HyokaChen 2 Oct 10, 2021
A simple Python TDLib wrapper

Telegram Forwarder App Description pywtdlib (Python Wrapper TDLib) is a simple synchronous Python wrapper that makes you easy to create new Python Tel

Álvaro Fernández 2 Jan 04, 2023
A modern, easy to use, feature-rich, and async ready API wrapper improved and revived from original discord.py.

A Python API wrapper that is improved and revived from the original discord.py

Orion 19 Nov 06, 2021