Abstract ot-snippet
ot-snippet manages and offers parameterized multiline text blocks (snippets) with common IRC clients like HexChat, weechat, ...
As using the main features of ot-snippet only requires bash to run it, its usable with gui or plain textmode IRC clients likewise.
Some non-essential and more rarely used features require a desktop environment to show additional windows for extra output or snippet selection.
To edit, delete or add snippets any regular text editor is sufficient.
You don't need any specific programming knowledge to use ot-snippet, although knowing some bash basics will help.
IRC client integration
IRC clients only need to support the /exec command to forward calls to ot-snippet ; where one will typically define a user command (alias) to ease the actual usage.
In combination with a user command (in the examples used here: /s ) frequently required texts can be output with a short command at IRC. To output a general welcome text at IRC its enough to type /s hi to get the following output:
/s hi
Welcome to the official linuxmint support channel - if you need support: describe your issue + used mint version: 19.x, 20.x, lmde4 ? + desktop environment: cinnamon, mate, xfce ?; stay connected afterwards == people need some time to answer... Use /join #linuxmint-chat for general/non-support chat ... - many people are there too
A snippet may return several lines of output which helps to seperate different topics with one snippet, like placing shared commands at a new line to avoid confusion.
Snippets will often contain parameter tags, which will get replaced by additional given parameters, which allows one to feed in extra information like a nickname to address another user:
/s ask guest7235
... will be expanded to:
guest7235> If you need support - describe your issue, giving some (more) details + version used: mint 19.x,20.x, lmde4 ? + DE: cinnamon, mate, xfce? - if anybody has an answer she/he will reply. guest7235> Stay connected afterwards == people need some time to answer....
Although ot-snippet comes with a selection of predefind snippets, its meant to define your own snippets in the long run.
general usage
get ot-snippet and basic setup | |
requirements | minimal requirements |
suggested preparations | adjusting $PATH & zenity |
setup ot-snippet | get file and set it up |
upgrade 001 to 002 | keeping snippets from previous version |
setup IRC clients | integrate with IRC clients |
basic usage | |
testing snippets | test ot-snippet from IRC or a terminal |
basic snippet usage | call a snippet, parameters and --sel helper |
internal helpers | use cases and samples |
console only usage | restrictions with pure console usage |
custom file - create, manual export | |
custom file | custom file for your snippets |
create a custom file | export with --new-custom |
custom file and updates | keep edits with updates |
manual export | extract snippets manually |
don'ts - warning | stay away from... |
modify snippets, conventions, restrictions | |
custom snippet definition | series of string array variables |
declaration convention | snippet declaration convention |
create a new snippet | adding a new snippet and testing it |
deactivate snippet | disable a snippet temorarily |
line breaks | using line breaks - flooding |
parameters, variables, helper functions | |
param mode | basic parameter usage |
stream mode | identical parameter usage, timeout |
dynamic prompt | a more flexible prompt |
custom variables | use custom variables for repeated/shared text/information |
custom functions | use custom functions to address formatting requirements or extended functionality |
malicious nicknames | handling external input - nickname |
symbolic links - share snippets, multiple custom files | |
symlink custom files | share custom file with param and stream version |
multiple custom files | use several custom files by symlink ot-snippet |
stream mode symlinks | requirements to use stream mode |
internals
structure ot-snippet script V002 | |
script sections | script sections and their usage |
support files | other custom files: log and nick file |
common helper functions | merging arguments, building query strings |
stream input to arglist | swapping call params with input, variable usage |
stream timeout, errors | timeout on reading stdin and override |
filters | suppress warnings using predefined options |
internals | |
param mode - side effects | side effects using parameter mode |
suppress log entries | known issues and workarounds |
hexchat 2.16.x | waiting for hexchat 2.16.x |