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
A Python wrapper for Discord RPC API

Discord RPC An Python wrapper for Discord RPC API. Allow you to make own custom RPC Install PyPI pip install discord-rpc Quick example import Discord

LyQuid :3 10 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
Python client for the Datadog API

datadog-api-client-python This repository contains a Python API client for the Datadog API. The code is generated using openapi-generator and apigento

Datadog, Inc. 58 Dec 16, 2022
Repo-cloner - Script takes user public liked repos and clone it to a local folder

Liked repos cloner Script takes user public liked repos and clone it to a local

Aleksei 2 Jun 18, 2022
Injector/automatic translator (using deepL API) for Tsukihime Remake

deepLuna Extractor/Editor/Translator/Injector for Tsukihime Remake About deepLuna, from "deepL", the machine translation service, and "Luna", the name

30 Dec 15, 2022
A Discord webhook spammer made in Python

A Python made Discord webhook spammer usually used for token loggers to spam them/delete them original by cattyn changes listed below.

2 Jan 12, 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
KiKi bare dogs can share your joys and sorrows with you.

Kiki-FangLee-DiscordBot KiKi bare dogs can share your joys and sorrows with you. $help: Kiki will show you my talent, aw-aw. $list: Show Kiki's knowle

Fang Lee 0 Feb 12, 2022
a discord bot for searching your movies, and bot return movie url for you :)

IMDb Discord Bot how to run this bot. the first step you must create prefixes.json file the second step you must create a virtualenv if you use window

Mehdi Radfar 6 Dec 20, 2022
A Pythonic client for the official https://data.gov.gr API.

pydatagovgr An unofficial Pythonic client for the official data.gov.gr API. Aims to be an easy, intuitive and out-of-the-box way to: find data publish

Ilias Antonopoulos 40 Nov 10, 2022
domhttpx is a google search engine dorker with HTTP toolkit built with python, can make it easier for you to find many URLs/IPs at once with fast time.

domhttpx is a google search engine dorker with HTTP toolkit built with python, can make it easier for you to find many URLs/IPs at once with fast time

Naufal Ardhani 59 Dec 04, 2022
A simple and easy to use musicbot in python and it uses lavalink.

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

Afnan 1 Nov 29, 2021
📦 Opensource Python wrapper for Hiven's REST and WebSocket API

hiven.py 📦 Opensource Python wrapper for Hiven's REST and WebSocket API Installation pip install -U hiven.py Usage hiven.py is currently under devel

Kevin Thomas 3 Sep 03, 2021
Automated AWS account hardening with AWS Control Tower and AWS Step Functions

Automate activities in Control Tower provisioned AWS accounts Table of contents Introduction Architecture Prerequisites Tools and services Usage Clean

AWS Samples 20 Dec 07, 2022
A Simple Google Translate Bot By VndGroup ❤️ Made With Python

VndGroup Google Translator Heroku Deploy ❤️ Functions This Bot Can Translate 95 Languages We Can Set Custom Language Group Support Mandatory Vars [+]

Venuja Sadew 1 Oct 09, 2022
Tiktok BOT 1 link Vidio otomatis : - Nambah view - Nambah love - Nambah share - Nambah love komen (semua komen ke love)

Install Bahannya pip install selenium pip install pyfiglet==0.7.5 Cara Install dan Menjalankannya Git-clone this repo! Install selenium and pyfiglet u

Ahmad Ghozali 1 Mar 01, 2022
fhempy is a FHEM binding to write modules in Python language

fhempy (BETA) fhempy allows the usage of Python 3 (NOT 2!) language to write FHEM modules. Python 3.7 or higher is required, therefore I recommend usi

Dominik 27 Dec 14, 2022
buys ethereum based on graphics card moving average price on ebay

ebay_trades buys ethereum based on graphics card moving average price on ebay Built as a meme, this application will scrape the first 3 pages of ebay

ConnorCreate 41 Jan 05, 2023
Telegram Bot to Filter posts in Bot Inline search

Inline-Filter-Bot A Telegram Bot for filter in Inline Features Unlimited Filters Supports all type of filters Supports Alert Button Using Common Marku

Code X Botz 67 Dec 26, 2022
Compares and analyzes GCP IAM roles.

gcp-iam-analyzer I wrote this to help in my day to day working in GCP. A lot of the time I am doing role comparisons to see which role has more permis

Jason Dyke 37 Dec 28, 2022