This documents describes mechanisms that can be used to automatically generate objects.
Shilling scheme generation#
While the framework supports to manually define a schema, which can be time consuming if you have a lot of guilds to shill into and harder to manage, the framework also supports automatic generation of the schema.
Using this method allows you to have a completely automatically managed system of finding guilds and channels that match a specific regex pattern. It automatically finds new guilds/channels at initialization and also during normal framework operation. This is great because it means you don’t have to do much but it gives very little control of into what to shill.
Automatic GUILD generation#
This section only describes guilds that the user is already joined in. For information about discovering NEW guilds and automatically joining them see Automatic guild discovery and join
For a auto-managed GUILD list, use
AutoGUILD which internally generates
Simply create a list of
AutoGUILD objects and then pass it to the framework.
It can be passed to the framework exactly the same way as
(see Quickstart (
accounts) and Dynamically adding objects).
from datetime import timedelta import daf # STATIC DEFINITION ACCOUNTS = [ daf.ACCOUNT( token="SomeToken", is_user=False, servers=[ daf.guild.AutoGUILD( include_pattern="NFT-Dragons", # Regex pattern of guild names that should be included exclude_pattern="NonFunctionalTesticle", # Regex pattern of guild names that should be excluded remove_after=None, # Never stop automatically managing guilds messages=[ daf.message.TextMESSAGE(None, timedelta(seconds=5), "Buy our NFT today!", daf.message.AutoCHANNEL("shill", "promo", timedelta(seconds=60))) ], logging=True, # The generated GUILD objects will have logging enabled interval=timedelta(hours=1) ) # Scan for new guilds in a period of one hour ] ) ] daf.run( accounts=ACCOUNTS )
Automatic channel generation#
For a auto-managed channel list use
It can be passed to xMESSAGE objects into the
channels parameters instead of a list.
from datetime import timedelta import daf async def main(): await daf.add_object( daf.ACCOUNT( token="SomeToken", is_user=False, servers=[ daf.GUILD(snowflake=123456789, messages=[ daf.TextMESSAGE(None, timedelta(seconds=5), "Hello World", channels=daf.message.AutoCHANNEL("shill", exclude_pattern="shill-[7-9]")) ], logging=True) ] ) ) daf.run( user_callback=main, )