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 heximals: More colors for your bot

DISCORD-HEXIMALS More colors for your bot ! Support : okimii#0434 COLORS ( 742 )

4 Feb 04, 2022
Simple Telegram Bot to Download and Upload Files From Mega.nz

Mega.nz-Bot Simple Telegram Bot to Download Files From Mega.nz and Upload It to Telegram Features All Mega.nz File Links supported No login required A

I'm Not A Bot #Left_TG 245 Jan 01, 2023
C Y B Ξ R UserBot is a project that simplifies the use of Telegram. All rights reserved.

C Y B Ξ R USΞRBOT 🇦🇿 C Y B Ξ R UserBot is a project that simplifies the use of Telegram. All rights reserved. Automatic Setup Android: open Termux p

C Y B Ξ R 0 Sep 20, 2022
Library to manage your own custom RPC on your desktop

Info I don't recommend novices setting this up yourself. It requires Redis, a server to host the API on, and a bit of understanding of Windows & Pytho

Isaac K 1 Apr 16, 2022
Stock market bot that will be used to learn about API calls and database connections.

Stock market bot that will be used to learn about API calls and database connections.

1 Dec 24, 2021
A Bot to get RealTime Tweets to a Specific Chats from Desired Persons on Twitter to Telegram Chat.

TgTwitterStreamer A Bot to get RealTime Tweets to a Specific Chats from Desired Persons on Twitter to Telegram Chat. For Getting ENV's Refer this Link

Anonymous 69 Dec 20, 2022
A Next-Gen modular Python3 Telegram-Bot with Anime Theme to it.

Hsea Robot A modular Telegram Python bot running on python3 with a sqlalchemy database and an entirely themed persona to make Cutiepii suitable for An

Wahyusaputra 1 Dec 29, 2021
This app is providing you to track some online products' prices via GMAIL.

Price Tracking App variables and descriptions of that code is in Turkish language. but we're working on translate them into English. This app is provi

Abdullah Aslan 1 Dec 11, 2021
Pluggable Telethon - Telegram UserBot

A stable pluggable Telegram userbot, based on Telethon.

Team Ultroid 2.3k Dec 30, 2022
PYthon Warframe Market API(pywmapi)

pywmapi PYthon Warframe Market API(pywmapi) API for warframe market, written in Python. For now, the implemented function is listed below: auth sign i

AyajiLin 7 Dec 11, 2022
This is a Innexia Group Manager Bot with many features

⚡ Innexia ⚡ A Powerful, Smart And Simple Group Manager ... Written with AioGram , Pyrogram and Telethon... Available on Telegram as @Innexia ❤️ Suppor

TeamDeeCode 84 Jun 04, 2022
A simple terminal UI for viewing fund P/L analysis through TEFAS

Tefas UI A simple terminal UI for viewing fund P/L analysis through TEFAS. Features (that my own bank's UI lack): Daily and weekly P/L FX comparisons

Batuhan Taskaya 4 Mar 14, 2022
Herramienta para transferir eventos de Sucuri WAF hacia Azure Monitor Log Analytics.

Transfiere eventos de Sucuri hacia Azure LogAnalytics Script para transferir eventos del Sucuri Web Application Firewall (WAF) hacia Azure LogAnalytic

CSIRT-RD 1 Dec 22, 2021
A Slack bot for playing Texas Hold 'Em where the currency is various workout tasks e.g. pushups

A Slack app/bot for playing Texas Hold 'Em where the currency is various workout tasks e.g. pushups. The intent is to make the workday more fun & active for remote teams.

Kyle McIntyre 3 Sep 19, 2022
A modular Telegram group management bot running with Python based on Pyrogram.

A modular Telegram group management bot running with Python based on Pyrogram.

Jefanya Efandchris 1 Nov 14, 2022
A Python library to access Instagram's private API.

Instagram Private API A Python wrapper for the Instagram private API with no 3rd party dependencies. Supports both the app and web APIs. Overview I wr

2.6k Jan 05, 2023
A.I and game for gomoku, working only on windows

Gomoku (A.I of gomoku) The goal of the project is to create an artificial intelligence of gomoku. Goals Beat the opponent. Requirements Python 3.7+ Wo

Luis Rosario 13 Jun 20, 2021
Dribble sign up screen built in python and kivy

Dribble sign up screen built in python and kivy contains Dribble icon with icon position and shadow animation.

1 Dec 06, 2021
Discord bot for name verifying. Created for TinkerHubGCEK discord server. Tinky is now deployed in heroku

Custom Discord bot This custom discord-python bot assigns roles to members joined at discord server. It looks and compares a list before verifying the

Edwin Jose George 2 Dec 16, 2021
DeleteAllBot - Telegram bot to delete all messages in a group

Delete All Bot A star ⭐ from you means a lot to me ! Telegram bot to delete all

Stark Bots 15 Dec 26, 2022