Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/phantasma-io/superbotwebapp
https://github.com/phantasma-io/superbotwebapp
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/phantasma-io/superbotwebapp
- Owner: phantasma-io
- License: other
- Created: 2024-03-11T11:47:36.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2024-03-11T11:48:23.000Z (10 months ago)
- Last Synced: 2024-05-01T00:44:48.213Z (8 months ago)
- Language: PHP
- Size: 89.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# SuperbotWebapp
The Superbot webapp should be a GUI that allows for local user-friendly manipulation of JSON documents with a known structure, downloading and uploading them via HTTP requests to a predetermined endpoint.
## Trigger groups
Format:
```json
{
"trigger group name":{
"privateTrigger": true,
"triggers": [
{
"triggerType": "TriggerTypeEnum",
"modifier": int,
"data": object,
"subgroup": null/string,
"onFailMsg": null/string
},
(...)
]
}
}
```A trigger group consists of:
Property Name | GUI element name | User input rules | JSON output rules
-|-|-|-
trigger group name | Trigger Group name | Freeform text input | Must be same as user input
privateTrigger | Trigger chat type | Dropdown list:
- For all chat types
- For public chat only
- For private chat only | Respectively:
- null
- false
- true
triggers | Triggers | Some sort of list with several columns for each entry perhaps.. not sure | Read next section | Read next section### Trigger object
A trigger object consists of the following:
Property Name | GUI element name | User input rules | JSON output rules
-|-|-|-
triggerType | Trigger type | Dropdown list with Trigger types' GUI element names | JSON output for the chosen trigger type
modifier | Trigger sub-type | Dropdown list with the GUI element names of the modifiers for the chosen _trigger type_ | JSON output for the chosen modifier
data | An object with a structure that depends on the trigger type, and sometimes also with the modifier | Rules will be defined on a case by case basis
subgroup | An optional string, no input rules | Text input box | Same as the user input
onFailMsg | An optional string, no input rules | Text input box | Same as the user input### Trigger types
GUI element name | Hint (i.e. on hover or whatever) | JSON output
-|-|-
Text | Trigger for text messages sent by the user| "Text"
Per-user variable | Trigger for values associated with this user | "DictionaryVariable"
Global variable | Trigger for global values defined on the bot | "SingleVariable"
Image | Trigger for image messages | "Image"### Text trigger
#### Data object
```json
{
"data": string
}
```Property Name | GUI element name | User input rules | JSON output rules
-|-|-|-
data | Regex expression | Anything goes | Whatever the user has written#### Modifiers
GUI element name | Hint (i.e. on hover or whatever) | JSON output
-|-|-
Regex | Evaluates if the text message contains the defined regex pattern. To learn the relevant regex syntax go to https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference | 0### Per-user variable trigger modifiers
#### Data object
```json
{
"data": {
"variable": string,
"value": null/string
}
}
```Property Name | GUI element name | User input rules | JSON output rules
-|-|-|-
variable | Variable name | Dropdown with all the defined dictionary variables | The selected dictionary variable's name
value | Preset value | Anything goes, but this field should only be visible for modifier "Preset value" | Whatever the user wrote#### Modifiers
GUI element name | Hint (i.e. on hover or whatever) | JSON output
-|-|-
User message | Compare the received text message to the user variable's current value | 0
Preset value | Compare a value defined by you to the user variable's current value | 1
Entry check | Check if user has an entry on this variable | 2### Global variable trigger modifiers
#### Data object
```json
{
"data": {
"variable": string,
"value": null/string
}
}
```Property Name | GUI element name | User input rules | JSON output rules
-|-|-|-
variable | Variable name | Dropdown with all the defined dictionary variables | The selected dictionary variable's name
value | Preset value | Anything goes, but this field should only be visible for modifier "Preset value" | Whatever the user wrote#### Modifiers
GUI element name | Hint (i.e. on hover or whatever) | JSON output
-|-|-
User message | Compare the received text message to the user variable's current value | 0
Preset value | Compare a value defined by you to the user variable's current value | 1### Image trigger modifiers
#### Data object
```json
{
"data": {
"minSize": null/float,
"maxSize": null/float
}
}
```Property Name | GUI element name | User input rules | JSON output rules
-|-|-|-
minSize | Minimum size | Number input field | Whatever the user wrote
maxSize | Maximum size | Number input field | Whatever the user wrote#### Modifiers
GUI element name | Hint (i.e. on hover or whatever) | JSON output
-|-|-
Size check | Check if an image's size is between a defined range | 0### Trigger user stories
The UI should enable the following user stories:
- As a user I want to view all existing trigger groups
- As a user I want to create a new trigger group
- As a user I want to edit any field of an existing trigger group
- As a user I want to reorder an existing trigger group among other trigger groups
- As a user I want to delete an existing trigger group
- As a user I want to view all existing triggers of a selected trigger group
- As a user I want to add a new trigger to the trigger group
- As a user I want to edit any field of an existing trigger in a trigger group
- As a user I want to reorder an existing trigger among other triggers inside a trigger group
- As a user I want to delete an existing trigger inside a trigger group