See also



The library first started as a single file script that I didn’t make versions of. When I decided to turn it into a library, I’ve set the version number based on the amount of commits I have made since the start.


[Breaking change]#

Means that the change will break functionality from previous version.

[Potentially breaking change]#

The change could break functionality from previous versions but only if it was used in a certain way.




  • Restored support for Python v3.8


  • Fixed logger not being converted properly when exporting GUI data into a script.


  • Graphical User Interface - GUI for controlling the framework, defining the schema (with backup and restore) and script generation!

  • Logging:

    • Added author field to all logging managers (tells us which account sent the message).

    • SQL analysis


  • Fixed failure without SQL


  • [Breaking change] Removed EMBED object, use daf.discord.Embed instead.

  • [Breaking change] Removed timing module since it only contained deprecated objects.

  • [Breaking change] Minumum Python version has been bumbed to Python v3.10.



  • Fixed missing documentation members

v2.4.2 (v2.3.4)#

  • Fixed channel verification bug:

    • Fixes bug where messages try to be sent into channels that have not passed verification (complete button)


  • Multiple accounts support:

    • Added daf.client.ACCOUNT for running multiple accounts at once. Proxies are strongly recommended!

    • Deprecated use of:

      • token,

      • is_user,

      • proxy,

      • server_list,

      • intents

      inside the function.

    • New function daf.core.get_accounts() that returns the list of all running accounts in the framework.

  • Deprecated add_object() and remove_object() functions accepting API wrapper objects or int type for the snowflake parameter.

  • Deprecated daf.core.get_guild_user function due to multiple accounts support.

  • Deprecated daf.client.get_client function due to multiple accounts support.


  • [Breaking change] Removed exceptions module, meaning that there are no DAFError derived exceptions from this version on. They are replaced with build-in Python exceptions.

  • Automatic scheme generation and management:

  • Debug levels:

  • Messages objects period automatically increases if it is less than slow-mode timeout.

  • The data_function’s input function can now also be async.


  • user_callback parameter for function can now also be a regular function instead of just async.

  • Deprecated daf.dtypes.EMBED, use discord.Embed instead.

  • [Breaking change] Removed get_sql_manager function.

    • Added logging parameter

    • Deprecated parameters server_log_output and sql_manager.

  • Logging manager objects: LoggerJSON, LoggerCSV, LoggerSQL

  • New daf.logging.get_logger() function for retrieving the logger object used.

  • daf.core.initialize() for manual control of asyncio (same as except it is async)

  • SQL:
    • SQL logging now supports Microsoft SQL Server, MySQL, PostgreSQL and SQLite databases.

    • [Breaking change] LoggerSQL’s parameters are re-arranged, new parameters of which, the dialect (mssql, sqlite, mysql, postgresql) parameter must be passed.

  • Development:
    • doc_category decorator for automatic documentation

    • Removed common module and moved constants to appropriate modules


Bug fixes:

  • Fix incorrect parameter name in documentation.


Bug fixes:

  • [Bug]: KeyError: 'code' on rate limit #198.


Bug fixes:

  • #195 VoiceMESSAGE did not delete deleted channels.

  • Exception on initialization of static server list in case any of the messages had failed their initialization.


  • Fixed [Bug]: Predefined servers' errors are not suppressed #189.

  • Support for readthedocs.


  • Changed the import import framework to import daf. Using import framework is now deprecated.

  • remove_after parameter:

    Classes: daf.guild.GUILD, daf.guild.USER, daf.message.TextMESSAGE, daf.message.VoiceMESSAGE, daf.message.DirectMESSAGE

    now support the remove_after parameter which will remove the object from the shilling list when conditions met.

  • Proxies:

    Added support for using proxies. To use a proxy pass the function with a proxy parameter

  • discord.EmbedField:

    [Breaking change] Replaced discord.EmbedField with discord.EmbedField.

  • timedelta:

    start_period and end_period now support timedelta object to specify the send period. Use of int is deprecated

    [Potentially breaking change] Replaced start_now with start_in parameter, deprecated use of bool value.

  • Channel checking:

    daf.TextMESSAGE and daf.VoiceMESSAGE now check if the given channels are actually inside the guild

  • Optionals:

    [Potentially breaking change] Made some functionality optional: voice, proxy and sql - to install use pip install discord-advert-framework[dependency here]


    [Breaking change] Removed the CLIENT object, discord.Client is now used as the CLIENT class is no longer needed due to improved startup

  • Bug fixes:
    Time slippage correction:

    This occurred if too many messages were ready at once, which resulted in discord’s rate limit, causing a permanent slip.


    Fig. 6 Time slippage correction#

    Slow mode correction:

    Whenever a channel was in slow mode, it was not properly handled. This is now fixed.


  • New cool looking web documentation (the one you’re reading now)

  • Added volume parameter to daf.VoiceMESSAGE

  • Changed channel_ids to channels for daf.VoiceMESSAGE and daf.TextMESSAGE. It can now also accept discord.<Type>Channel objects.

  • Changed user_id/ guild_id to snowflake in daf.GUILD and daf.USER. This parameter now also accept discord.Guild (daf.GUILD) and discord.User (daf.USER)

  • Added .update method to some objects for allowing dynamic modifications of initialization parameters.

  • daf.AUDIO now also accepts a YouTube link for streaming YouTube videos.

  • New Exceptions system - most functions now raise exceptions instead of just returning bool to allow better detection of errors.

  • Bug fixes and other small improvements.


  • Added support for logging into a SQL database (MS SQL Server only). See Relational Database Log (SQL).

  • function now accepts discord.Intents.

  • daf.add_object() and daf.remove_object() functions created to allow for dynamic modification of the shilling list.

  • Other small improvements.


  • JSON file logging.

  • Automatic channel removal if channel get’s deleted and message removal if all channels are removed.

  • Improved debug messages.


  • daf.DirectMESSAGE and daf.USER classes created for direct messaging.