A Discord API Wrapper for Userbots/Selfbots written in Python.

Overview

DisCum

version python versions
PyPI version python versions
A simple, easy to use, non-restrictive, synchronous Discord API Wrapper for Selfbots/Userbots written in Python.
-using requests and websockets :)

https://files.catbox.moe/3ns003.png

* You can send issues to [email protected] (arandomnewaccount will respond). If you put them in the issues tab, either arandomnewaccount will edit your message to "respond" because he can't post public comments or Merubokkusu will respond. Please at least read the README before submitting an issue.

*** risky actions: issue #66

Table of Contents

Key features

  • easy-to-use (make selfbots/userbots)
  • easy-to-extend/edit (add api wrappers)
  • readable (organized 😃 )
  • mimics the client while giving you control
  • all api wraps point to user/"private" apis
  • on-event (gateway) capabilities
  • extremely customizable fetchMembers function
  • remote authentication functions
  • support for python 2.7

About

Discum is a Discord self/userbot api wrapper (in case you didn't know, self/userbotting = automating a user account). Whenever you login to discord, your client communicates with Discord's servers using Discord's http api (http(s) requests) and gateway server (websockets). Discum allows you have this communication with Discord using python.

The main difference between Discum and other Discord api wrapper libraries (like discord.py) is that discum is written and maintained to work on user accounts (so, perfect for selfbots/userbots). We test code on here and develop discum to be readable, expandable, and useable. Functions that are risky to use are clearly stated as such in the docs.

Note, using a selfbot is against Discord's Terms of Service and you could get banned for using one if you're not careful. Also, this needs to be said: discum does not have rate limit handling. The main reasons for this are that discum is made to (1) be (relatively) simple and (2) give the developer/user freedom with how to handle the rate limits. We (Merubokkusu and anewrandomaccount) do not take any responsibility for any consequences you might face while using discum. We also do not take any responsibility for any damage caused (to servers/channels) through the use of Discum. Discum is a tool; how you use this tool is on you.

Installation

To install the library normally, run:

python -m pip install --user --upgrade git+https://github.com/Merubokkusu/Discord-S.C.U.M.git#egg=discum

Otherwise, to also use remote authentication functions (login using a phone & qr code), run:

python -m pip install --user --upgrade -e git+https://github.com/Merubokkusu/Discord-S.C.U.M.git#egg=discum[ra]

Prerequisites (installed automatically using above methods)

  • requests
  • requests_toolbelt
  • brotli
  • websocket_client==0.59.0
  • filetype
  • ua-parser
  • random_user_agent
  • colorama

remote auth prerequisites (if you install discum[ra]):

  • pyqrcode
  • pycryptodome
  • pypng

Documentation

https://github.com/Merubokkusu/Discord-S.C.U.M/tree/master/docs

Contributing

Contributions are welcome. You can submit issues, make pull requests, or suggest features. Ofc not all suggestions will be implemented (because discum is intended to be a transparent, relatively-raw discord user api wrapper), but all suggestions will be looked into.
Please see the contribution guidelines

Example usage

import discum     
bot = discum.Client(token='420tokentokentokentoken.token.tokentokentokentokentoken', log=False)

bot.sendMessage("238323948859439", "Hello :)")

@bot.gateway.command
def helloworld(resp):
    if resp.event.ready_supplemental: #ready_supplemental is sent after ready
        user = bot.gateway.session.user
        print("Logged in as {}#{}".format(user['username'], user['discriminator']))
    if resp.event.message:
        m = resp.parsed.auto()
        guildID = m['guild_id'] if 'guild_id' in m else None #because DMs are technically channels too
        channelID = m['channel_id']
        username = m['author']['username']
        discriminator = m['author']['discriminator']
        content = m['content']
        print("> guild {} channel {} | {}#{}: {}".format(guildID, channelID, username, discriminator, content))

bot.gateway.run(auto_reconnect=True)

Links

Documentation
More examples
Changelog
GitHub
PyPi

Checklist

  • Sending basic text messages
  • Sending Images
  • Sending Embeds
  • Sending Requests (Friends etc)
  • Profile Editing (Name,Status,Avatar)
  • On-Message (and other on-anything gateway) capabilities
  • Getting guild members
  • improve documentation
  • add interactions (slash command triggering, buttons, and dropdowns/menus)
  • add more guild http api wraps
  • media (voice & video calls, along with the various discord games/activites)
  • Everything

FAQ

Q: Why am I getting Attribute Errors?
A: Most likely you've installed discum through pip, which is not always updated. To get the most recent version, install through github. For gateway.session related errors, you need to connect to the gateway at least once to receive session data.

Q: Does discum support BOT accounts?
A: No. Discum only supports user accounts.

Q: What's the difference between user/private API and BOT API?
A: User APIs are run by the official client. Many of these are not documented by discord. On the other hand, BOT APIs are run by BOT accounts and are documented by discord. Discum only consists of user APIs.

Q: How to fix "[SSL: CERTIFICATE_VERIFY_FAILED]" errors?
A: https://stackoverflow.com/a/53310545/14776493

Q: I'm getting KeyError: 'members' when running bot.gateway.session.guild(guild_ID).members. Why?
A: KeyErrors happened on previous versions where the "members" key was not set until you ran bot.gateway.fetchMembers(...); bot.gateway.run(). Due to this causing some confusion, the latest versions do not display this KeyError (instead, the value of "members" is an empty dictionary to start with). Of course, you still have to fetch the members (a gateway operation) in order to get the members.

Q: import _brotli ImportError: DLL load failed: The specified module could not be found. How to fix?
A: https://github.com/google/brotli/issues/782

Q: The owner of this website (discord.com) has banned your access based on your browser's signature.... How to fix?
A: This is because of your user agent (https://stackoverflow.com/a/24914742/14776493). Either try again or reinitialize your client with a new user agent.

Notes

In recent years, token logging has become more common (as many people don't check code before they run it). I've seen many closed-source selfbots, and while surely some are well intentioned, others not so much. Discum (discord api wrapper) is open-sourced and organized to provide transparency, but even so, we encourage you to look at the code. Not only will looking at the code help you to better understand how discord's api is structured, but it'll also let you know exactly what you're running. If you have questions about Discum (after looking at the docs & previous issues), free to ask us.

Comments
  • bot.gateway.run issue

    bot.gateway.run issue

    Using the old src of a bot and the latest version of Discum. I tried to find solutions for the matter where the bot never runs, it remains stuck after executing py main.py (the bot file) If I attempt to set auto_reconnect to False, it exits within a second orso.

    image

    Source of the bot I'm running

    opened by Fractune 10
  • I get an error with create a DM

    I get an error with create a DM

    ok so I used the example to fetsh members wich is working correctly. I get all their ids and using for loop I want to create a DM channel foreach of them.

    `@bot.gateway.command def memberTest(resp): guild_id = '714338144954351669' channel_id = '743719231274876998' if resp.event.ready_supplemental: bot.gateway.fetchMembers(guild_id, channel_id) if bot.gateway.finishedMemberFetching(guild_id): bot.gateway.removeCommand(memberTest) bot.gateway.close()

    bot.gateway.run() print('aa') for member in bot.gateway.session.guild('714338144954351669').members: bot.createDM([member])`

    When I replace member with a manual id its working fine.
    

    arandomnewaccount: disclaimer: a mass dm is a bad idea since it can get your account flagged pretty quickly. Anyway, with that in mind, I tried the code that you sent and it worked on my end. You might get some response 400s due to ppl turning off their direct-messages & you can't dm yourself, but that's it. Also, I just got my alt account "flagged" (I'll need to use a phone number to verify) and I only did 3 createDM calls (with no wait time) so...yea...I don't recommend it.

    This is the code I used btw:

    for member in bot.gateway.session.guild("guild id here").members:
        if member != "my user id here": #this check isnt necessary, but it saves you one createDM call
            bot.createDM([member])
    
    opened by excelant100 10
  • Status not setting

    Status not setting

    Hi its me again! Basically when I call clients.setStatus(0) nothing happens. The user does not go online, and I get the response - (<discum.user.user.User->setStatus) Response <- {"locale": "en-US", "show_current_game": true, "restricted_guilds": [], "default_guilds_restricted": false, "inline_attachment_media": true, "inline_embed_media": true, "gif_auto_play": true, "render_embeds": true, "render_reactions": true, "animate_emoji": true, "enable_tts_command": true, "message_display_compact": false, "convert_emoticons": true, "explicit_content_filter": 1, "disable_games_tab": false, "theme": "dark", "developer_mode": false, "guild_positions": [], "detect_platform_accounts": true, "status": "online", "afk_timeout": 600, "timezone_offset": 600, "stream_notifications_enabled": true, "allow_accessibility_detection": false, "contact_sync_enabled": false, "native_phone_integration_enabled": true, "animate_stickers": 0, "friend_source_flags": {"all": true}, "guild_folders": [], "custom_status":null}``

    opened by callihann 10
  • i get this error message when i run the code (bot.gateway.fetchMembers)

    i get this error message when i run the code (bot.gateway.fetchMembers)

    I am a kind of a beginner to all of this so don't blame me for a small mistake

    `import discum import time #bot = discum.Client(email=,password=) #note, this will not work if you have a MFA account #bot = discum.Client(email=,password=,proxy_host=,proxy_port=,user_agent=) #bot = discum.Client(email=,password=,token=) #works for all types of accounts bot = discum.Client(token="") #works for all types of accounts, no profile editing however #bot = discum.Client(token=,proxy_host=,proxy_port=) #works for all types of accounts, no profile editing however @bot.gateway.command def myf(resp): guild_id = "765186126684094474" channel_id = '767056897106640927' bot.gateway.fetchMembers(guild_id, channel_id) bot.gateway.run(auto_reconnect=True)

    `

    i see nothing wrong with it after i read the wiki, but what i get is:

    Exception ignored in thread started by: <bound method GatewayServer._response_loop of <discum.gateway.gateway.GatewayServer object at 0x000001B303F263D0>> Traceback (most recent call last): File "c:\users\user\pycharmprojects\pythonprojectnew\venv\src\discum\discum\gateway\gateway.py", line 232, in _response_loop func(resp) File "C:/Users/user/PycharmProjects/pythonProjectNEW/main.py", line 12, in myf bot.gateway.fetchMembers(guild_id, channel_id) File "c:\users\user\pycharmprojects\pythonprojectnew\venv\src\discum\discum\gateway\gateway.py", line 296, in fetchMembers "function": Guild(self).fetchMembers, NameError: name 'Guild' is not defined


    arandomnewaccount (can only edit cause my acc's hidden): hey thanks for bringing this to my attention. I'd forgotten to change Guild to GuildCombo. It should be working now. I'll test it on my end just to make sure.

    opened by LYZEN77 10
  • Cant add Phone Number

    Cant add Phone Number

    Hello ;:D I wanted to add a phone number via the the .setPhone function, but i got a error which said "You need to update your app to verify your phone number." (Btw i tried it afterwards with manual requests and it gives the same error) U know why it gives me that?


    arandomnewaccount: idk, I can try on my end a bit and get back later

    answered (edited) 
    opened by Vinyzu 9
  • Phone Number

    Phone Number

    Yo, i just wondered if it is possible to put a phone number on the account using discum, because i didnt found anything like that in the docs...


    arandomnewaccount: that hasn't been implemented yet. If you want you can make a pull request

    enhancement 
    opened by Vinyzu 8
  • Overuse ram memory when run multi bots

    Overuse ram memory when run multi bots

    hi i want to run multi bots but after some hours usage of ram grow up! then my ram is full use and bots not working after this i use garbage collector (gc) and threads but my issue is still alive now i try use pypy for low usage of memory but i dont know about growing up memory usage realy i wait for hourses and see ram usage and if my issue solved tell you more


    arandomnewaccount: the pypi version is outdated. The part of discum that can take up quite a lot of memory is the gateway session data. Here're a few things you can do to lower ram usage (for each bot):

    bot.gateway.keepData = (,) #this tells discum to not keep "removed" data
    
    bot.gateway.session.saveMemory() #this removes some unused session data
    

    Lemme know if that helps.

    unsolved 
    opened by Hosexn 8
  • Websocket closed after some time

    Websocket closed after some time

    When running the script for a few hours, the log says websocket closed and the script exits. What could be causing this and is there a known solution?

    Thanks!


    arandomnewaccount: did you install from pypi or from the github repo?

    opened by rb1997 8
  • Discussion: Recommended way of using createDMs?

    Discussion: Recommended way of using createDMs?

    Just wanted to ask if there are any recommended best practices for using createDM as you mention it is one of the calls to be careful with.

    Any recommendations on how frequently it's ok to call? Every other second? Every 10 seconds? Is it better to call with many user ids at once or separately for each? If nobody knows, that's ok, I realize some of it is up to personal taste for risk, but wanted to check. Thanks!


    arandomnewaccount: Btw, I'm going to wait until I run a few more tests with the createDM endpoint (& organize some code in RESTapiwrap.py) until I give my recommendations on this. If anyone else has some more experience with creating DMs, feel free to jump in.

    help wanted unsolved 
    opened by b-hasbmans 8
  • gateway, only get messages from one channel but don't filter out the other channels using if

    gateway, only get messages from one channel but don't filter out the other channels using if

    Using the example provided in Example Usage, the function listens to all messages in all channels in all guilds I am a part of.

    How do I listen to only a specific channel (with few messages) while blocking rest of the channels (large number of message) ?

    Note: I do not mean filtering by channel inside the function (as the same amount of data is transferred over the network) , how do i set it up such that discord sends messages from only the required channel


    arandomnewaccount: ~~well that's not how discord works... :(~~ edit: turns out there is a way, and it requires setting guild channel notifications:

    import time
    guildIDsToMute = [...]
    for g in guildIDsToMute:
        time.sleep(1) #just in case
        bot.muteGuild(g)
    

    Then, to only get results from a single (visible) channel, we need to get the channels that are currently visible and set their message notifications to "nothing". The fastest way to do this is with bot.setChannelNotificationOverrides after the ready_supplemental event:

    @bot.gateway.command
    def helloworld(resp):
        if resp.event.ready_supplemental: #ready_supplemental is sent after ready
            channels = bot.gateway.findVisibleChannels(guildID, types=['guild_text'])
            channels.remove(channelID)
            bot.setChannelNotificationOverrides(guildID, [(c, 'nothing', True) for c in channels])
        if resp.event.message:
            m = resp.parsed.auto()
            print(m)
    
    unsolved 
    opened by MayaankAshok 7
  • Status not showing up

    Status not showing up

    Hi! I'm trying to make a self-bot that sets a custom status and then stays online forever. I tried this:

    import discum
    
    bot = discum.Client(token="token")
    bot.setStatus("my custom status")
    bot.gateway.run(auto_reconnect=True)
    

    The bot stays online, but the status doesn't show up when I check from another account. What am I doing wrong? Cheers!


    arandomnewaccount: oh I think see what's happening. What I think is going on here is the IDENTIFY message your client is sending out (when running bot.gateway.run() says to discord that your status is online (https://github.com/Merubokkusu/Discord-S.C.U.M/blob/master/discum/gateway/gateway.py#L64), which is then changing your status. I'm going to have to do a few more tests to confirm, and if that's indeed the case, then I'll be fixing it in an upcoming commit.

    If that's the case, then the custom status should show if you don't connect to the gateway...

    edit: just tested it and the gateway connection does not affect the status so... My other guess is that your other account is not getting updates for your current account's presence changes. See if the profile of your current account (viewed from your other account) shows the custom status (right-click on username -> click profile). If it does, then everything is working fine.

    2nd edit: I see now. Tried looking from my other account and couldn't see any evidence of status-changing on my main so...I've got 1 last idea and if that doesn't work idk (I'll have to try tmr since tonight I don't have much time). Thanks for bringing this issue up.

    opened by Gilgames000 7
  • Can't create DM.

    Can't create DM.

    I wanted to send a message and I read the docs, but i have an error on the function "createDM".

    Error:

    Traceback (most recent call last):
      File "/data/data/com.termux/files/home/discord/tools/discord_send_message.py", line 16, in <module>
        createDMandSend(id, "hello??")
      File "/data/data/com.termux/files/home/discord/tools/discord_send_message.py", line 8, in createDMandSend
        newDM = bot.createDM([userID]).json()["id"]
                ^^^^^^^^^^^^^^^^^^^^^^
      File "/data/data/com.termux/files/home/.local/lib/python3.11/site-packages/discum/discum.py", line 257, in createDM
        return imports.Messages(self.discord, self.s, self.log).createDM(recipients)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/data/data/com.termux/files/home/.local/lib/python3.11/site-packages/discum/messages/messages.py", line 41, in createDM
        self.getMessages(req.json()["id"], num=50, beforeDate=None, aroundMessage=None)
    TypeError: Messages.getMessages() missing 1 required positional argument: 'afterMessage'
    

    Function that i use to send messages:

    def createDMandSend(userID, message):
                    bot.getNotes(userID)
                    newDM = bot.createDM([userID]).json()["id"]
                    bot.gateway.request.DMchannel(newDM) #op 13 look at private channel
                    bot.getMessages(newDM, num=50)
                    bot.getProfile(userID)
                    bot.sendMessage(newDM, message)
    
    opened by aleperuz 0
  • Big guilds cause a gateway error and it wont work afterwards

    Big guilds cause a gateway error and it wont work afterwards

    Exception ignored in thread started by: <bound method GatewayServer._response_loop of <discum.gateway.gateway.GatewayServer object at 0x0000025ECB93FD50>> Traceback (most recent call last): File "C:\Users\Ish\AppData\Roaming\Python\Python38\site-packages\discum\gateway\gateway.py", line 299, in _response_loop func(resp) File "test.py", line 29, in helloworld bot.gateway.subscribeToGuildEvents(wait=1000) File "C:\Users\Ish\AppData\Roaming\Python\Python38\site-packages\discum\gateway\gateway.py", line 490, in subscribeToGuildEvents imports.GuildCombo(self).subscribeToGuildEvents(onlyLarge, wait) File "C:\Users\Ish\AppData\Roaming\Python\Python38\site-packages\discum\gateway\guild\combo.py", line 167, in subscribeToGuildEvents guildIDs = s.guildIDs File "C:\Users\Ish\AppData\Roaming\Python\Python38\site-packages\discum\gateway\session.py", line 55, in guildIDs return [guildID for guildID in self.guilds if "removed" not in self.guilds[guildID]] File "C:\Users\Ish\AppData\Roaming\Python\Python38\site-packages\discum\gateway\session.py", line 47, in guilds return self.settings_ready['guilds'] KeyError: 'guilds'

    opened by HelloIshHere 2
  • KeyError: 'username'

    KeyError: 'username'

    i want to know the username of the users but i am getting an error how can i do

    import discum
    
    with open("token.txt",'r') as f:
        bot = discum.Client(token=''.join(f.readlines()), log=False)
    
    def close_after_fetching(resp, guild_id):
        if bot.gateway.finishedMemberFetching(guild_id):
            lenmembersfetched = len(bot.gateway.session.guild(guild_id).members)
            print(str(lenmembersfetched) + ' members fetched')
            bot.gateway.removeCommand({'function': close_after_fetching, 'params': {'guild_id': guild_id}})
            bot.gateway.close()
    
    def get_members(guild_id, channel_id):
        bot.gateway.fetchMembers(guild_id, channel_id, keep=['username', 'discriminator', 'avatar', 'premium_since', 'roles'])
        bot.gateway.command({'function': close_after_fetching, 'params': {'guild_id': guild_id}})
        bot.gateway.run()
    
        return bot.gateway.session.guild(guild_id).members
    
    
    members = get_members('951783170775318548', '1030168144662245457')
    print(members['username'])
    
    opened by Romhast 1
Releases(v1.4.1)
  • v1.4.1(Aug 4, 2022)

    • fixed incorrect padding issue
    • added getChannel, getGuildActivitiesConfig, getMutualFriends, getGuildRoles
    • updates to headers, interactions (slash cmds and buttons), printing, documentation
    Source code(tar.gz)
    Source code(zip)
  • v.1.4.0(Oct 7, 2021)

    • updated ready event parsing to use the value of "users" to provide full user data to DM recipients and relationships (thx dolfies)
    • added 4 functions to gateway.session.guild(guildID): applicationCommandCount, maxMembers, stages, and stickers
    • renamed gateway.session.guild(guildID).position to gateway.session.guild(guildID).me
    • added gateway.queryGuildMembers and gateway.checkGuildMembers (op8 "brute forcing" now possible)
    • added remote auth functions (initRA, remoteAuthLogin) + ability to add/remove functions to the remote auth gateway
    • fixed color printing for windows
    • only import stuff when needed (speed up imports)
    • use __slots__ to lower ram usage
    • fixed login (thx MayaankAshok)
    • added 59 rest api wraps:
      • getRelationships, getVoiceRegions, getHandoffToken
      • suppressEveryonePings, suppressRoleMentions, enableMobilePushNotifications, setChannelNotificationOverrides, setMessageNotifications, muteGuild, muteDM
      • getRoleMemberCounts, getGuildIntegrations, getGuildTemplates, getRoleMemberIDs, addMembersToRole, setMemberRoles
      • createGuild, deleteGuild, previewGuild, getDiscoverableGuilds, deleteChannel, getGuildInvites, getChannelInvites, getGuildRegions, getGuildChannels
      • DM groups: removeFromDmGroup, addToDmGroup, createDmGroupInvite, setDMGroupName, setDmGroupIcon, deleteInvite
      • setPhone and validatePhone (thx sudo-do)
      • Threads: setThreadNotifications, createThread, leaveThread, joinThread, archiveThread, unarchiveThread
      • School hubs: lookupSchool, schoolHubSignup, schoolHubWaitlistSignup, schoolHubSignup, verifySchoolHubSignup, getSchoolHubGuilds, getSchoolHubDirectoryCounts, joinGuildFromSchoolHub, searchSchoolHub, getMySchoolHubGuilds, setSchoolHubGuildDetails
      • getLiveStages
      • setProfileColor
      • Interactions: getSlashCommands (only for dms), triggerSlashCommand, click
      • getReportMenu, reportSpam
      • setUserNote
      • inviteToCall, declineCall
    • added Interaction helper classes:
      • utils.slash.SlashCommander
      • utils.button.Buttoner
    • added gateway.request.searchSlashCommands
    Source code(tar.gz)
    Source code(zip)
  • v1.3.1(Jul 5, 2021)

    • added gateway event type parsing for messages, channels, and relationships
    • added search guild members (opcode 8) examples (as well as opcode 8 brute forcing)
    • accessibility.py and color.py
    • 4 resp api wraps: greet, setAboutMe, setBanner, and getGuilds
    • http request headers typo fixed
    • embeds example fixed
    • updated message parsing
    • subscribeToGuildEvents also works for unavailable guilds
    • added contextproperties.py to better mimic certain client actions

    see changelog (https://github.com/Merubokkusu/Discord-S.C.U.M/blob/master/changelog.md)

    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(May 21, 2021)

    • added gateway close code handlers
    • added gateway latency calculation
    • added permissions code
    • finished user settings REST api wraps
    • fixed setStatus and setCustomStatus
    • rewrote the docs

    see changelog (https://github.com/Merubokkusu/Discord-S.C.U.M/blob/master/changelog.md)

    Source code(tar.gz)
    Source code(zip)
  • v1.2.1(May 4, 2021)

    • added channel_create and channel_delete handlers
    • added a multibots.py example
    • gateway.run(auto_reconnect=True) now only disconnects on gateway.close() and ctrl-c
    • fixed a fetchMembers bug for small guilds
    • updated api version to v9
    • updated superproperties creation
    Source code(tar.gz)
    Source code(zip)
  • v1.2.0(Mar 13, 2021)

    • added more gateway event parsing functions
    • fixed setting statuses
    • added setting and removing activities
    • added ability to speed up client initialization by setting the build number
    • reformatted gateway session data

    see changelog for more info: https://github.com/Merubokkusu/Discord-S.C.U.M/blob/master/changelog.md

    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(Feb 16, 2021)

    Alright so this version's getting released a bit sooner than usual because some important changes were made to better mimic the web client. see changelog for more info: https://github.com/Merubokkusu/Discord-S.C.U.M/blob/master/changelog.md

    Source code(tar.gz)
    Source code(zip)
  • v1.0.1(Feb 8, 2021)

    added 56 new http api wraps (9 start; 45 user settings; 2 guild member verification) added ability to login to 2FA accounts added Embedder attribute (bot.Embedder) added function to reply to messages modified sendMessage and sendFile to allow for replies and stickers

    see changelog

    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Jan 5, 2021)

    • added gateway functions structure
    • added ability to fetch guild members (note that both guild_id and channel_id are needed)
    • organized docs and added documentation for extending and reading discum
    • resp is now a Resp object with 3 attributes: raw, event, and parsed (what used to be resp is now resp.raw)
    • embed now has the inline field
    • event checking and automatic parsing ability

    see changelog

    Source code(tar.gz)
    Source code(zip)
  • v0.3.1(Dec 19, 2020)

    organized client initialization, fixed gateway decompression on reconnect, fixed proxies and search-messages function (thanks akbar-amin), added some gateway functions

    *note, in the next version, the resp data will be accessed using resp.raw. Currently, resp is a dictionary, but in the next version it will be an object (this will be done to allow resp.event... checking and resp.parsed... analyses).

    see changelog

    Source code(tar.gz)
    Source code(zip)
  • v0.3.0(Nov 18, 2020)

  • v0.2.8(Nov 12, 2020)

  • v0.2.6(Nov 1, 2020)

    • added ability to turn off logging in bot initiation function (discum.Client())
    • added ability to toggle logging on/off
    • updated gateway protocol to process current session settings format
    • _Client__gateway_server.run(data,log) now returns the targeted responses in a list
    • some guild functions (getInfoFromInviteCode, joinGuild, kick, ban, getGuildMember)
    • added a message function (createDM)
    • simplified discum.py by removing 1 useless class (that turned str(dictionaries) into classes) and 1 useless function (that turned dictionaries into strings)

    * see https://github.com/Merubokkusu/Discord-S.C.U.M/blob/master/changelog.md for more info

    Source code(tar.gz)
    Source code(zip)
  • v0.2.5(Sep 28, 2020)

  • v0.2.4(Sep 24, 2020)

  • v0.2.3(Sep 6, 2020)

Owner
Liam
I make stuff...
Liam
Dicha herramienta esta creada con una api... esta api permite enviar un SMS cada 12 horas dependiendo del pais... Hay algunos paises y operadoras no están soportados.

SMSFree pkg install python3 pip install requests git clone https://github.com/Hidden-parker/SMSFree cd SMSFree python sms.py DISFRUTA... Dicha herrami

piter 2 Nov 14, 2021
A template / demo bot for the Halcyon matrix bot library

Halcyon stock bot Hello! This is an example / template bot using the halcyon matrix bot library. Feel free to ask questions in the matrix chat #halcyo

Wes Ring 1 Feb 04, 2022
Tomli is a Python library for parsing TOML

Tomli A lil' TOML parser Table of Contents generated with mdformat-toc Intro Installation Usage Parse a TOML string Parse a TOML file Handle invalid T

Taneli Hukkinen 315 Jan 04, 2023
微信支付接口V3版python库

wechatpayv3 介绍 微信支付接口V3版python库。 适用对象 wechatpayv3支持微信支付直连商户,接口说明详见 官网。 特性 平台证书自动更新,无需开发者关注平台证书有效性,无需手动下载更新; 支持本地缓存平台证书,初始化时指定平台证书保存目录即可。 适配进度 微信支付V3版A

chen gang 258 Jan 06, 2023
Invites link generator for telegram(made for channel referral links)

InviteLinkGen Invites link generator for telegram(for channel referral links) made for @HelakuruEsana channel Spotify Giveaway

Jaindu Charindith 7 Feb 01, 2022
🔎 Hunt down social media accounts by username across social networks

Hunt down social media accounts by username across social networks Installation | Usage | Docker Notes | Contributing Installation # clone the repo $

Sherlock 38.2k Jan 01, 2023
This wrapper now has async support, its basically the same except it uses asyncio

This is a python wrapper for my api api_url = "https://api.dhravya.me/" This wrapper now has async support, its basically the same except it uses asyn

Dhravya Shah 5 Mar 10, 2022
Ini Hanya Shortcut Untuk Menambahkan Kunci Tambahan Pada Termux & Membantu Para Nub Yang Decode Script Orang:v

Ini Hanya Shortcut Untuk Menambahkan Kunci Tambahan Pada Termux & Membantu Para Nub Yang Decode Script Orang:v

Lord_Ammar 1 Jan 23, 2022
A Slash Commands Discord Bot created using Pycord!

Hey, I am Slash Bot. A Bot which works with Slash Commands! Prerequisites Python 3+ Check out. the requirements.txt and install all the pakages. Insta

Saumya Patel 18 Nov 15, 2022
Gnosis-py includes a set of libraries to work with Ethereum and Gnosis projects

Gnosis-py Gnosis-py includes a set of libraries to work with Ethereum and Gnosis projects: EthereumClient, a wrapper over Web3.py Web3 client includin

Gnosis 93 Dec 23, 2022
The purpose of this bot is to take soundcloud track requests, that are posted in the stream-requests channel, and add them to a playlist, to make the process of scrolling through the requests easier for Root

Discord Song Collector Dont know if anyone is actually going to read this, but the purpose of this bot is to check every message in the stream-request

2 Mar 01, 2022
Send alert to telegram use telegram cli

Run standalone: Rename conf.yml.example to conf.yml Change block cli(Add your api_id and hash) Install requirements.txt Run python AlertManagerTG.py I

Eugene Arkharov 1 Nov 12, 2021
This bot will delete messages containing blacklisted words in your telegram groups.

Profanity Detector Bot This bot will delete messages containing blacklisted words in your telegram groups. Made using ProfanityDetector.

Aditya 17 Oct 08, 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
:lock: Python 2.7/3.X client for HashiCorp Vault

hvac HashiCorp Vault API client for Python 3.x Tested against the latest release, HEAD ref, and 3 previous minor versions (counting back from the late

hvac 1k Dec 29, 2022
A GUI Application that creates a Spotify Playlist from any year in the past, by just entering your preferred date

A GUI Application that creates a Spotify Playlist from any year in the past, by just entering your preferred date

David .K. Danso 1 Jan 17, 2022
一个基于Python3的Bot。目前支持以Docker的方式部署在vps上。支持Aria2、本子下载、网易云音乐下载、Pixiv榜单下载、Youtue-dl支持、搜图。

介绍 一个基于Python3的Bot。目前支持以Docker的方式部署在vps上。 主要功能: 文件管理 修改主界面为 filebrowser,账号为admin,密码为admin,主界面路径:http://ip:port,请自行修改密码 FolderMagic自带的webdav:路径:http://

Ben 650 Jan 08, 2023
This tool adds votes to strawpoll.me polls.

Strawpoll-Botter This tool adds votes to strawpoll.me polls. Usage Basic usage: py main.py -r amount of votes to put poll id option # Usage: py

MonkeySkid 2 Feb 28, 2022
Scripts to help you win the Pizza Express

Slice of the Prizes Slice of the Prizes is a Python Script designed to enter the "Slice of the Action" competition hosted by Pizza Express the competi

Luke Bendall 1 Nov 04, 2021