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
Discord bot to display private leaderboards for Advent of Code.

Advent Of Code Discord Bot Discord bot for displaying Advent of Code private leardboards, as well as custom leaderboards where participants can set th

The Future Gadgets Lab 6 Nov 29, 2022
Music bot for Discord

Treble Music bot for Discord Youtube is after music bots on Discord. So we are here to fill the void. Introducing Treble, the next generation of Disco

Aja Khanal 0 Sep 16, 2022
Un bot leggero basato su py-cord facile da hostare sul cloud

GalbiBot Un bot leggero basato su py-cord facile da hostare sul cloud Guida installazione su una macchina Per far funzionare il bot devi aver installa

Galbaninoh 2 Oct 21, 2022
😈 Discord RAGE is a Python tool that allows you to automatically spam messages in Discord

😈 Discord RAGE Python tool that allows you to automatically spam messages in Discord 🏹 Setup Make sure you have Python installed and PIP is added to

Alphalius 4 Jun 12, 2022
veez music bot is a telegram music bot project, allow you to play music on voice chat group telegram.

🎶 Veez Music Bot Music bot for playing music on telegram voice chat group. Requirements 📝 FFmpeg NodeJS nodesource.com Python 3.7+ PyTgCalls 🧪 Get

levina 143 Jun 19, 2022
Retrieve information from DBLP and update BibTex files automatically

Rebib TLDR: This script retrieves information from DBLP to update your BibTex files. python rebib.py --bibfile xxx.bib It first parses the bib entries

Shangtong Zhang 49 Jan 01, 2023
A tool for exporting Telegram group chats into static websites, preserving chat history like mailing list archives.

tg-archive is a tool for exporting Telegram group chats into static websites, preserving chat history like mailing list archives. Preview The @fossuni

Kailash Nadh 400 Dec 27, 2022
Simple yet efficient tool used to check and sort tokens in terms of there validation.

Discord Token Checker Simple yet efficient tool used to check and sort tokens in terms of there validation.When the program is done,go to the "output"

Robotnik 15 Dec 27, 2022
Simple Discord Nuke Bot.

Discord-Nuke-Bot Simple Discord Nuke Bot. Simple Discord Nuke Bot Python 3.6 - 3.8 Features Delete Channels Ban All Members Delete Roles Create Channe

9X4N 6 Aug 16, 2022
Deploy a STAC API and a dynamic mosaic tiler API using AWS CDK.

Earth Observation API Deploy a STAC API and a dynamic mosaic tiler API using AWS CDK.

Development Seed 39 Oct 30, 2022
This is a telegram bot built using the Oxford Dictionary API

Oxford Dictionaries Telegram Bot This is a telegram bot built using the Oxford Dictionary API Source: Oxford Dictionaries API Documentation Install En

Abhijith N T 2 Mar 18, 2022
对hermit 的API进行简单的封装,做成了这个python moudle

hermit-py 对hermit 的API进行简单的封装,做成了这个Python Moudle,推荐通过wheel的方式安装。 目前对点击、滑动、模拟输入、找组件、等支持较好,支持查看页面的实时布局信息,再通过布局信息进行点击滑动等操作。 支持剪贴板相关的操作,支持设置剪贴的任意语言内容。

LookCos 40 Jun 25, 2022
A wrapper for slurm especially on Taiwania2 (HPC CLI)A wrapper for slurm especially on Taiwania2 (HPC CLI)

TWCC-slurm-wrapper A wrapper for slurm especially on Taiwania2 (HPC CLI). For Taiwania2 (HPC CLI) usage, please refer to here. (中文) How to Install? gi

Chi-Liang, Liu 5 Oct 07, 2022
Using twitter lists as your feed

Twitlists A while ago, Twitter changed their timeline to be algorithmically-fed rather than a simple reverse-chronological feed. In particular, they p

Peyton Walters 5 Nov 21, 2022
A telegram bot which can show you the status of telegram bot

BotStatus-Ts-Bot An open source telegram Bot Status bot For demo you can check here The status is updated in every 1 hour About Bot This is a Bot stat

Ts_Bots 8 Nov 17, 2022
Track live sentiment for stocks from Reddit and Twitter and identify growing stocks

Market Sentiment About This repository can mainly be used for two things. a. Tracking the live sentiment of stocks from Reddit and Twitter b. Tracking

Market Sentiment 345 Dec 17, 2022
Decryption utility for PGP Whole Disk Encryption

wdepy: Decryption and Inspection for PGP WDE Disks This is a small python tool to inspect and decrypt disk images encrypted with PGP Whole Disk Encryp

Brendan Dolan-Gavitt 17 Oct 07, 2022
An unofficial python wrapper for the comdirect API for private consumers.

An unofficial python wrapper for the comdirect API for private consumers.

Alexander Knittel 18 Nov 30, 2022
A python library built on the API of the coderHub.sa, which helps you to fetch the challenges and more

coderHub A python library built on the API of the coderHub.sa, which helps you to fetch the challenges and more Installation • Features • Usage • Lice

TheAwiteb 5 Nov 04, 2022
An API serving data on all creatures, monsters, materials, equipment, and treasure in The Legend of Zelda: Breath of the Wild

Hyrule Compendium API An API serving data on all creatures, monsters, materials, equipment, and treasure in The Legend of Zelda: Breath of the Wild. B

Aarav Borthakur 116 Dec 01, 2022