-
Notifications
You must be signed in to change notification settings - Fork 448
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1453 from nextcloud/feature/noid/commands
🤖 Commands
- Loading branch information
Showing
48 changed files
with
8,535 additions
and
218 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,10 @@ | ||
/js/admin/sha1.js | ||
/js/admin/commands.js | ||
/js/admin/commands.js.map | ||
/js/tests/* | ||
/js/vendor/* | ||
/js/simplewebrtc.js | ||
/js/**/templates.js | ||
/karma.conf.js | ||
/tests/* | ||
/vue/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
# Chat commands | ||
|
||
|
||
## Admin defined commands | ||
|
||
For security reasons commands can only be added via the command line. `./occ talk:command:add --help` gives you a short overview of the required arguments, but they are explained here in more depth: | ||
|
||
### "Add command" arguments | ||
|
||
Argument | Allowed chars | Description | ||
---|---|--- | ||
`cmd` | [a-z0-9] | The keyword the user has to type to run this command (min. 1, max. 64 characters) | ||
`name` | * | The author name of the response that is posted by the command (min. 1, max. 64 characters) | ||
`script` | * | Actual command that is being ran. The script must be executable by the user of your webserver. See the parameter table below for options. The script is invoked with `--help` as argument on set up, to check if it can be executed correctly. | ||
`response` | 0-2 | Who should see the response: 0 - No one, 1 - User who executed the command, 2 - Everyone | ||
`enabled` | 0-3 | Who can use the command: 0 - No one, 1 - Moderators of the room, 2 - Logged in users, 3 - Everyone | ||
|
||
### Script parameter | ||
|
||
Parameter | Description | ||
---|--- | ||
`{ROOM}` | The token of the room the command was used in | ||
`{USER}` | ID of the user that called the command | ||
`{ARGUMENTS}` | Everything the user write after the actual command | ||
`{ARGUMENTS_DOUBLEQUOTE_ESCAPED}` | … but with double quotes `"` escaped. | ||
|
||
### Example | ||
|
||
* `/path/to/calc.sh`: | ||
|
||
``` | ||
while test $# -gt 0; do | ||
case "$1" in | ||
--help) | ||
echo "/calc - A Nextcloud Talk chat wrapper for gnome-calculator" | ||
echo " " | ||
echo "Simple equations: /calc 3 + 4 * 5" | ||
echo "Complex equations: /calc sin(3) + 3^3 * sqrt(5)" | ||
exit 0 | ||
;; | ||
*) | ||
break | ||
;; | ||
esac | ||
done | ||
set -f | ||
echo "$@ =" | ||
echo $(gnome-calculator --solve="$@") | ||
``` | ||
Please note, that your command should also understand the argument `--help`. | ||
It should return a useful description, the first line is also displayed in a list of all commands when the user just types `/help`. | ||
* `./occ` command used to add the command: | ||
``` | ||
./occ talk:command:add calculator calculator "/path/to/calc.sh \"{ARGUMENTS_DOUBLEQUOTE_ESCAPED}\" {ROOM} {USER}" 1 3 | ||
``` | ||
* User input by user `my user id` in the chat of room `index.php/call/4tf349j`: | ||
``` | ||
/calculator 1 + 2 + 3 + "hello" | ||
``` | ||
* Executed shell command: | ||
``` | ||
/path/to/calc.sh "1 + 2 + 3 + \"hello\"" '4tf349j' 'my user id' | ||
``` | ||
## Aliases | ||
It is also possible to define an alias for a command. This allows e.g. to get the `/help` command also with the german word `/hilfe`. | ||
An alias for the `/calculator` command from above could be created using the following command: | ||
``` | ||
./occ talk:command:add calc calculator "alias:calculator" 1 3 | ||
``` | ||
Now `/calculator 1 + 2 + 3` and `/calc 1 + 2 + 3` result in the same message. | ||
**Note:** The enabled and response flag of the alias are ignored and the flags of the original command will be used and respected. |
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.