Schema tab (GUI)#
We can define the schema (accounts, guilds, messages) inside the Schema definition tab. The tab allows us to define:
Logging & tracing
Defining ACCOUNT objects#
We can define
ACCOUNT objects by clicking on
Add ACCOUNT button which opens a new window.
In the toolbar (top) we can observe 3 buttons and one toggle. The Close button closes the window and asks the user if they want to save the object, while the Save does the same thing except it saves the object without user confirmation. The toggle Keep on top will prevent other windows from covering our definition window.
The Help button opens up the documentation and searches for the corresponding object, in our case, the
ACCOUNT object. You can use this button to gain knowledge about what each parameter does
and which types it accepts.
Some data types will have additional widgets, such as Color Picker or Datetime select.
In the main frame (below the toolbar) we can see different labels and dropdown menus with one button on the right side. These represent the parameters of the corresponding objects.
Defining object parameters#
Depending on the datatype each parameter accepts, we can either:
Select a value from a predefined list by clicking the little arrow in the dropdown menu:
Create new value by clicking on the button on the right side of the dropdown and clicking New <datatype>, which will open another definition window.
Edit a value (selected in the dropdown) by clicking on the button on the right side of the dropdown and clicking Edit selected, which will open a new definition window for the specific datatype and load in the previously defined values.
After we are satisfied with our definition, we can click Save to save the changes into the parent (previous) object.
To define an account we can choose from various parameters, the important ones for this guide are:
token- The Discord account token, you can obtain this the following way:
is_user- Tells the framework the above token type, this must be set to
Trueif you want advertise using an user account (self-bot).
To logging with username and password we can use the corresponding fields in the definition window.
Logging in with username and password happens though the browser and requires additional dependencies which can be installed with:
$ pip install discord-advert-framework[web]
This is only available on desktop computers and cannot be eg. run on a linux server. It is recommended to obtain the user token instead unless additional features from the web modules are desired (see Web browser (core))
After defining the
token and other normal parameters, we can define the servers. Defining servers will open up a new
definition window which allows you to define multiple GUILD objects.
GUILD accepts parameters:
snowflake represents Discord’s ID of the guild,
messages a list of
logging is a bool parameter which enables / disables logging of sent messages for this guild and
parameter specifies the time or time delay for this guild to be auto removed from the list.
Successful account definition#
After successful definition, we can observe a new account added to our accounts list.
If we click the Start (on top of the main window), we can observe our account being logged-in and messages being sent to the defined guilds and channels.
Logging definition (GUI)#
We can also define what type of logging DAF will use to log sent messages and the detail of prints inside the Logging section of the Schema definition tab
To configure a logger we can select the wanted logger and click on the Edit button, located on the right side of the 1st dropdown menu.
After clicking on Save, our logging manager is now defined and will be responsible for logging the data.
In the 2nd dropdown we can now select the debug / trace level. Value DEPRECATED will only show deprecation notices and is the least detailed trace configuration, while DEBUG will print all the information, including the debugging ones - it is considered the most detailed trace configuration.
NORMAL trace is recommended for most users.
For more information about logging refer to the core documentation - Logging (core).
Loading schema into DAF (GUI)#
The Load all at start checkbox causes (when checked) the GUI to load all the accounts into DAF right after the Start button in the top left corner is pressed. If the checkbox is not checked, accounts can be loaded by selecting them in the list and then clicking on the Load selection to live button.
The Preserve state on shutdown checkbox sets the
save_to_file parameter inside
run() to True if checked
or False if not checked. Basically this means that if the checkbox is checked, DAF will save the accounts list (and guilds, messages, …)
to a binary file on DAF shutdown and every 2 minutes to prevent data loss on force shutdown.
When starting DAF again, the same list will be loaded from file into DAF.
State preservation is not really meant as a shilling feature where you can define the schema statically inside the GUI and save it to a JSON file, but it’s meant to be used in case DAF will have accounts, guilds, messages dynamically added while it’s running (added in Live view).
If Import from live is pressed, the GUI will copy the accounts loaded inside daf into our list.
Logger is automatically loaded at start and cannot be changed for a different logger without stopping the framework first.