~nova/fletcher

fletcher/controlflow.dot -rw-r--r-- 5.0 KiB
ece10afa — Novalinium f-string issue 9 days ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
digraph fletcher {
    rankdir=LR;
    size="8,5"
        graph [ dpi = 600 ];
    node [shape = doublecircle]; Initialize OnReady OnMessage OnEdit OnDelete OnReact OnVoiceUpdate OnMemberJoin;
    node [shape = circle];
    Initialize -> OnReady [ label = "Connect to Discord WebSocket Gateway" ];
    OnReady -> Reload [ label = "Reload config files,\nhotpatch modules,\nand rebuild CommandHandler" ];
    Reload -> Config [ label = "INI file at FLETCHER_CONFIG" ];
    Reload -> Profiler [ label = "Optional, toggle in config file" ];
    Config -> Webhooks [ label = "Message bridge configuration\nfrom Discord" ];
    Webhooks -> Sync;
    Config -> Database [ label = "Connect to Postgres" ];
    Config -> CommandHandler [ label = "Initialize CommandHandler" ];
    Database -> CommandHandler [ label = "autoload() CommandHandler" ];
    Database -> Sync [ label = "Synchronized messages stored for\npersistent responsive history" ];
    CommandHandler -> VersionUtils;
    Git -> VersionUtils;
    LXML_HTML -> VersionUtils;
    VersionUtils -> StatusCommand [ label = "Tell user what the last commit message was" ];
    VersionUtils -> Issue [ label = "Get info from the issue tracker based on issue number" ];
    CommandHandler -> TextManipulators;
    PIL -> TextManipulators [ label = "For image scrambled" ];
    TextManipulators -> Memfrob [ label = "AKA spoiler, flips bytes in\na message and deletes original" ];
    TextManipulators -> Rot13 [ label = "Adds 13 to letters, classic spoiler" ];
    TextManipulators -> Scramble [ label = "Send contents of image deep fried" ];
    CommandHandler -> Greeting;
    Greeting -> RandomizeRole [ label = "Pick role from list and assign to incoming members" ];
    Greeting -> Lockout [ label = "Strip all permissions from incoming members and require them to agree to rules." ];
    Greeting -> RestoreRole [ label = "Restore roles on rejoin." ];
    Greeting -> SaveRole [ label = "Save roles for rejoin reasons." ];
    CommandHandler -> Sentinel;
    TextManipulators -> Sentinel [ label = "Provides smallcaps function" ];
    Database -> Sentinel [ label = "Sentinels are stored in the database" ];
    Sentinel -> Canvas [ label = "Create a sentinel for assembling groups" ];
    Sentinel -> Pledge [ label = "Salute a sentinel" ];
    Sentinel -> Defect [ label = "Turn away from a sentinel" ];
    Sentinel -> Banners [ label = "List recent sentinels" ];
    CommandHandler -> MessageFuncs;
    MessageFuncs -> Teleport [ label = "Create a link pair between channels" ];
    MessageFuncs -> MessageLink [ label = "Look up message by ID#" ];
    MessageFuncs -> Preview [ label = "Retrieves message by link" ];
    MessageFuncs -> Bookmark [ label = "DM the reacter a link\nto the current place in conversation\noptionally context" ];
    CommandHandler -> Math;
    Sympy -> Math [ label = "For symbolic rendering" ];
    Math -> LaTeX [ label = "Render arguments as LaTeX formula" ];
    CommandHandler -> Admin;
    TextManipulators -> Admin [ label = "For ROT13 in modmail" ];
    Admin -> ModPing [ label = "Unlock, ping, and relock a role" ];
    Config -> ModPing [ label = "User list" ];
    Admin -> ModReport [ label = "Report message to mods\nremoved immediately after (if reaction)" ];
    Config -> ModReport [ label = "User, channel and/or role list" ];
    Admin -> LastActiveChannel [ label = "List all available channels\nand time of last message" ];
    Admin -> LastActiveUser [ label = "List all available users\nand time of last message" ];
    Admin -> Sudo [ label = "Allow admin to temporarily elevate permissions" ];
    CommandHandler -> SWAG [ label = "Sugar snacks for the chatter" ];
    SWAG -> uwu [ label = "Say cute stuff" ];
    SWAG -> ShindanMaker [ label = "Allow interacting with shindanmaker.com without hitting the site" ];
    SWAG -> RetrowWave [ label = "Turn arguments into a retro-looking image" ];
    SWAG -> Pony;
    Pony -> CanIUploadMyself;
    Pony -> FriendshipIsOptimal;
    CommandHandler -> GooglePhotos;
    GoogleOAuth2 -> GooglePhotos;
    GooglePhotos -> AuthorizeFlow;
    GooglePhotos -> ListAlbums;
    GooglePhotos -> Twilestia [ label = "For flirting with Celestia mostly\ngets random image from album" ];
    CommandHandler -> GitHub;
    GitHub -> GitHubReport [ label = "Report issue on a per server basis" ];
    Config -> GitHubReport [ label = "Repo to report issues to" ];
    CommandHandler -> PlayRadio [ label = "Reset canticum trigger so voice updates go to a new message" ];
    OnReady -> SignalHandlerHUP;
    OnReady -> OnVoiceUpdate;
    SignalHandlerHUP -> Reload;
    Initialize -> OnMessage;
    OnMessage -> Sync;
    OnMessage -> CommandHandler;
    OnMessage -> Preview [ label = "If there's a message link, try to unwrap the first one" ];
    OnMessage -> ModReport [ label = "If a message gets a high VADER negativity, report it to the mods" ];
    Initialize -> OnEdit;
    OnEdit -> Sync;
    Initialize -> OnDelete;
    OnDelete -> Sync;
    Initialize -> OnReact;
    OnReact -> CommandHandler;
    OnVoiceUpdate -> NotifyCanticum;
    OnMemberJoin -> Greeting;
}