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
ByDiego Token Grabber is a Discord Stealer

ByDiego Token Grabber is a Discord Stealer. This way you can get too much information from x person if you pass it on and open it

zByDiegoM.T 4 Mar 11, 2022
Modular Python-based Twitch bot optimized for customizability and ease of use.

rasbot Modular Python-based Twitch bot optimized for customizability and ease of use. rasbot is a Python-based Twitch bot that runs on your Twitch acc

raspy 9 Dec 14, 2022
Ein Bot, der Dokumente bei Studydrive möglichst immer online hält

studydrive-altklausuren-bot Ein Bot, der Dokumente bei Studydrive möglichst immer online hält geplante Features: Multiaccount supprt: Es gibt mehrere

henrydatei 1 Jun 04, 2022
AWS CloudSaga - Simulate security events in AWS

AWS CloudSaga - Simulate security events in AWS AWS CloudSaga is for customers to test security controls and alerts within their Amazon Web Services (

Amazon Web Services - Labs 325 Dec 01, 2022
The official source code for Ghost Discord selfbot.

👻 Ghost Selfbot The official code for Ghost which was recently discontinued and released to the public. Feel free to use any of the code found in thi

Ghost 121 Nov 09, 2022
SkyzoMusicBot - Bot Music Telegram By Skyzo

SKYZO MUSIC BOT Telegram Music Bot And Stream Feature New Version Ready to use m

Skyzo 19 Apr 08, 2022
"zpool iostats" for humans; find the slow parts of your ZFS pool

Getting the gist of zfs statistics vpool-demo.mp4 The ZFS command "zpool iostat" provides a histogram listing of how often it takes to do things in pa

Chad 57 Oct 24, 2022
Zaid Vc Player Allows u to steam Songs/music on vc chat

ᴢᴀɪᴅ ᴠᴄ ᴘʟᴀʏᴇʀ 🔥 SORRY FOR OUR PROJECTS DELETED BY GITHUB FLAGGED ᴢᴀɪᴅ ᴠᴄ ᴘʟᴀᴇʀ ɪꜱ ᴀ ᴛᴇʟᴇɢʀᴀᴍ ᴘʀᴏᴊᴇᴄᴛ ʙᴀꜱᴇᴅ ᴏɴ ᴘʏʀᴏɢʀᴀᴍ ꜰᴏʀ ᴘʟᴀʏ ᴍᴜꜱɪᴄꜱ ɪɴ ᴠᴄ ᴄʜᴀᴛꜱ..

Zaid 117 Dec 29, 2022
A collection of automation aids to connect various database systems into Lookout for Metrics

A collection of automation aids to connect various database systems into Lookout for Metrics

AWS Samples 3 Apr 28, 2022
A Bot For Streaming Videos In Tg Voice Chats.

「•ᴍɪsᴇʀʏ ᴠɪᴅᴇᴏ sᴛʀᴇᴀᴍᴇʀ•」 ᴀ ғɪɴᴇ & ғɪʀsᴛ ᴄʟᴀss ᴘʀᴏᴊᴇᴄᴛ ғᴏʀ ᴘʟᴀʏɪɴɢ ᴠɪᴅᴇᴏs ɪɴ ᴠᴏɪᴄᴇ ᴄʜᴀᴛ ʙʏ xᴇʙᴏʀɴ | •ᴘᴏᴡᴇʀᴇᴅ ʙʏ ᴛɢᴄᴀʟʟs and ᴘʏʀᴏ •ᴅᴇᴘʟᴏʏ ᴍɪsᴇʀʏ ᴛᴏ ʜᴇʀ

Turdus Maximus 22 Nov 12, 2022
Please Do Not Throw Sausage Pizza Away - Side Scrolling Up The OSI Stack

Please Do Not Throw Sausage Pizza Away - Side Scrolling Up The OSI Stack

John Capobianco 2 Jan 25, 2022
5 Oct 19, 2022
An Telegram Bot By @ZauteKm To Stream Videos In Telegram Voice Chat Of Both Groups & Channels. Supports Live Streams, YouTube Videos & Telegram Media !!

Telegram Video Stream Bot (Py-TgCalls) An Telegram Bot By @ZauteKm To Stream Videos In Telegram Voice Chat Of Both Groups & Channels. Supports Live St

Zaute Km 14 Oct 21, 2022
A Python Library to interface with Flickr REST API, OAuth & JSON Responses

Python-Flickr Python-Flickr is A Python library to interface with Flickr REST API & OAuth Features Photo Uploading Retrieve user information Common Fl

Mike Helmick 40 Sep 25, 2021
Create custom Vanity URLs for Discord without 30 boosts

CustomVanity - Made by udp#6666 aka Apolo - OpenSource Custom Discord Vanity Creator How To Use Open CustomVanity.py Write your server invite code Wri

apolo 17 Aug 23, 2022
Bender: A Markov Babbler Slack Bot

See the Digital Ocean tutorial for instructions on how to get the basic bot structure in place. Once you have that, set the gunicorn command to run as

Andrew Howard 1 Dec 04, 2021
A script that writes automatic instagram comments under a post

Send automatic messages under a post on instagram Instagram will rate limit you after some time. From there on you can only post 1 comment every 40 se

Maximilian Freitag 3 Apr 28, 2022
ro.py is a modern, asynchronous Python 3 wrapper for the Roblox API.

GitHub | Discord | PyPI | Documentation | Examples | License Overview Welcome to ro.py! ro.py is an asynchronous, object-oriented wrapper for the Robl

ro.py 81 Dec 26, 2022
A discord nitro generator written in python

VerseGenerator A discord nitro generator written in python Usage ・Fork the repo ・Clone it to replit ・Install the required packages and run it ・Input t

NotDrakezz 4 Nov 13, 2021
GroupMenter : New Telegram Group Manager Bot🔸Fast 🔸Python🔸Pyrogram 🔸

GroupMenter An PowerFull Group Manager Bot. Written In Pytelethon. Info • A modular Telegram Python bot running on python3. • Can be found on telegram

Group Menter 24 Jun 28, 2022