Go to file
2024-05-10 10:54:45 -04:00
.config fork: vassago 2023-06-01 00:03:23 -04:00
.vscode web interface 2023-07-03 12:51:23 -04:00
assets smoot is defined as 5ft 7, don't use cm to approximate 2023-12-05 23:44:40 -05:00
Behavior organize - behaver is not a behavior, only one use of connection string 2024-04-05 22:18:45 -04:00
Conversion how about don't clear out the aliases? now I can configure more aliases 2023-12-05 23:57:21 -05:00
Migrations complex channel types, some channels UI 2023-12-03 14:33:58 -05:00
Models get rid of feature permissions 2024-04-06 00:01:31 -04:00
Properties web interface 2023-07-03 12:51:23 -04:00
ProtocolInterfaces channel permissions are just part of channel 2024-04-05 23:59:39 -04:00
WebInterface bootstrap, fontawesome, and bootstrap treeview 2024-05-05 16:55:00 -04:00
wwwroot update links to guy who forked it 2024-05-10 10:54:45 -04:00
.gitignore web interface 2023-07-03 12:51:23 -04:00
appsettings.json move web interface around 2024-04-05 23:07:48 -04:00
Behaver.cs organize - behaver is not a behavior, only one use of connection string 2024-04-05 22:18:45 -04:00
ConsoleService.cs organize - behaver is not a behavior, only one use of connection string 2024-04-05 22:18:45 -04:00
externalProcess.cs start to structure code for multiplatofrm 2023-05-22 00:58:36 -04:00
Jenkinsfile once i figure out jenkins secrets, this'll be useful 2024-04-05 23:02:15 -04:00
Program.cs contain web interface stuff 2024-04-08 15:00:55 -04:00
README.md channel permissions are just part of channel 2024-04-05 23:59:39 -04:00
Shared.cs keep track of self 2023-06-20 21:26:44 -04:00
vassago.csproj bootstrap, fontawesome, and bootstrap treeview 2024-05-05 16:55:00 -04:00

discord-bot

copy appsettings.json to appsettings.ENV.json and fill it in. dotnet seems to understand files called appsettings.json (and appsettings.xml?) and knows how to overwrite specific values found within the .[ENV].[extension] version

auth link

https://discord.com/oauth2/authorize?client_id=913003037348491264&permissions=274877942784&scope=bot that's read messages/view channels, send messages, send messages in threads, and attach files. but not add reactions?

concepts

Data Types

Accounts

a User can have multiple Accounts. e.g., @adam:greyn.club? that's an "account". I, however, am a User. An Account has references to the Channels its seen in.

Attachment

debating whether to save a copy of every single attachment. Discord allows 25MB attachments, and shtikbot lives in several art channels.

Channel

a place where communication can happen. any level of these can have any number of children. In matrix, everything is a "room" - even spaces and threads. Seems like a fine idea. So for vassago, a discord "channel" is a channel. a "thread" is a child of that channel. a "category" is a parent of that channel. A "server" (formerly "guild") is a parent of that channel. and fuck it, Discord itself is a "channel". Includes permissions vassago has for a channel; MaxAttachmentBytes, etc. go down the hierarchy until you find an override.

FeaturePermission

the permissions of a feature. It can be restricted to accounts, to users, to channels. It has an internal name... and tag? and it can be (or not be) inheritable?

Message

a message (duh). features bools for "mentions me", the external ID, the reference to the account, the channel.

User

a person or program who operates an account. recognizing that 2 Accounts belong to 1 User can be done by that user (using LinkMe). I should be able to collapse myself automatically.

Behavior

both a "feature" and an "anti-feature". a channel might dictate something isn't allowed (lewdness in a g-rated channel). A person might not be allowed to do something - lots of me-only things like directing other bots (and the now rendered-moot Torrent feature). A behavior might need a command alias in a particular channel (freedomunits in jubel's)

so "behavior" might need to tag other data types? do I have it do a full select every time we get a message? ...no, only if the (other) triggering conditions are met. Then you can take your time.