This is an unfinished framework. If you find mistakes then please report them. Enjoy!

FritzBot

From BoxMatrix

BoxMatrix >> Community >> FritzBot @ BoxMatrix   -   IRC-Chat   -   Translate: de es fr it nl pl
News Selectors Models Accessories Components Environment Config Commands System Webif Software Develop Lexicon Community Project Gallery

Companies Acquisitions Image-Contribs Oldwiki-Contribs Licenses IRC-Channels BoxMatrix-Bot FritzBot Stats

Community
FritzBot was the first IRC bot in our ##fritzbox IRC-Channel on freenode.net. It is developed and driven by the channel regular Suchiman to assist us with daily tasks. All dialogs use german language. This is the english reference manual of all implemented commands.

FritzBot can respond to commands from within the channel or via private message, if you have voice. Note that freenode does not deliver private messages if you are not in at least one channel together with the target you want to reach. All FritzBot commands start with an exclamation mark !.

Help-Command[edit]

Print help about a command or list all commands.
Hilfe is the german word for help.

  • Usage: !help [<command>]
  • German: !hilfe [<command>]
  • Examples:
ChanUser: !help
FritzBot: Derzeit verfügbare Befehle: about, admin, alias, auth, bots, boxadd, boxfind, boxinfo, boxlist, boxremove, 
          calc, connect, fm, fp, frag, fw, geolocator, google, hilfe, ignore, join, labor, leave, lmgtfy, modprobe, 
          op, part, passwd, ping, quit, remind, restart, rmmod, seen, shorturl, subscribe, sys, taskcontrol, translate, 
          trunk, unignore, uptime, user, userlist, whmf, witz, zeit [1]
FritzBot: Hilfe zu jedem Befehl mit "!help befehl". [2]

ChanUser: !help hilfe
FritzBot: Die Hilfe! [3]

Translations:
[1] Currently available commands: <command list>
[2] Help for each command using: !help <command>
[3] THE help!

Alias-Database[edit]

One of the most powerful features of FritzBot is the aliases database.
Aliases are virtual commands which every user can define or modify.
Once an alias is defined it could be called like every other command !<aliasname>.
We mostly use aliases to remember bookmarks or snippets of information, but they can do more.

  • Help: !help alias

alias add[edit]

Define an alias and add it to the database.
The definition of an alias may contain arbitary text, but also variables for arguments passed to it.
$1 to $99 represent single arguments, $X all arguments in one string.
The function encode() can be used to URL encode a string, ie: encode($X).

  • Usage: !alias add <aliasname> <definition>
  • Short: !a add <aliasname> <definition>
  • Examples:
ChanUser: !alias add hw Hello World
FritzBot: Der Alias wurde erfolgreich hinzugefügt [1]

ChanUser: !hw
FritzBot: Hello World

ChanUser: !alias add wa Wolfram Alpha search:  http://www.wolframalpha.com/input/?i=encode($x)
FritzBot: Der Alias wurde erfolgreich hinzugefügt [1]

ChanUser: !wa speed of light
FritzBot: Wolfram Alpha search: http://www.wolframalpha.com/input/?i=speed+ot+light

Translations:
[1] The alias has been added successfully

alias edit[edit]

Change the definition of a previously defined alias.

  • Usage: !alias edit <aliasname> <new definition>
  • Short: !a edit <aliasname> <new definition>
  • Examples:
ChanUser: !alias edit hw Hello my World
FritzBot: Der Alias wurde erfolgreich bearbeitet [1]

ChanUser: !hw
FritzBot: Hello my World

Translations:
[1] The alias has been changed successfully

alias remove[edit]

Remove a previously defined alias from the database.

  • Usage: !alias remove <aliasname>
  • Short: !a remove <aliasname>
  • Examples:
ChanUser: !a remove tttt
FritzBot: Alias wurde gelöscht [1]

Translations:
[1] The alias has been deleted.

alias info[edit]

Show creator and definition of a previously defined alias.

  • Usage: !alias info <aliasname>
  • Short: !a info <aliasname>
  • Examples:
ChanUser: !a info hw
FritzBot: Erstellt von ChanUser am 12.11.2018 um 23:27. Definition: Hello my World [1]

Translations:
[1] Created by <nickname> at <date>. Definition: <definition>

alias find[edit]

Searches the alias database for an entry containing the search term.
Lists all aliases containing the term in their name or definition.
If only one alias was found it prints the name and its definiton.

  • Usage: !alias find <search term>
  • Short: !a find <search term>
  • Examples:
ChanUser: !a find world
FritzBot: Mögliche Aliase: enabout, hw [1]

ChanUser: !a find wa
FritzBot: wa: Wolfram Alpha search: http://www.wolframalpha.com/input/?i=encode($x) [2]

Translations:
[1] Possible aliases: <list of aliasnames>
[2] <aliasname>: <definition>

Model-Database[edit]

FritzBot maintains a searchable database of AVM models each participating channel user owns.
This was and still is used a lot for daily research for the old and new Wiki.

boxadd[edit]

Add one of the own models to the model database.
Please add only one model per call and use short model names like 7360v2.

  • Usage: !boxadd <model>
  • Help: !help boxadd
  • Examples:
ChanUser: !boxadd 7590
FritzBot: Okay danke, ich werde mir deine "7590" notieren. [1]

ChanUser: !boxadd 540E
FritzBot: Okay danke, ich werde mir deine "540E" notieren. [1]

Translations:
[1] Okay, thanks, i will record your <model>.

boxremove[edit]

Remove a previously added model from the model database.
This command is useful if you did a typo or sold a model.

  • Usage: !boxremove <model>
  • Help: !help boxremove
  • Examples:
ChanUser: !boxremove 540E
FritzBot: Erledigt! [1]

Translations:
[1] Done!

boxinfo[edit]

List the own or someone else's models.

  • Usage: !boxinfo [<nickname>]
  • Help: !help boxinfo
  • Examples:
ChanUser: !boxinfo
FritzBot: Entsprechend der Datenbank wurden die folgenden Boxen registriert: 7590, 540E [1]

ChanUser: !boxinfo ChanUser0815
FritzBot: ChanUser0815 besitzt laut Datenbank 7270v1, 6490, 1750E, 310 [2]

Translations:
[1] According to the database the following models have been registered: <model list>
[2] According to the database <nickname> owns <model list>

boxfind[edit]

Search the database for the owners of a specified model.
To not highlight all owners the answer always comes per private message.
This is the most important command for research.

  • Usage: !boxfind <model>
  • Help: !help boxfind
  • Examples:
ChanUser: !boxfind 7590
FritzBot by PM: Folgende Benutzer scheinen diese Box zu besitzen: ChanUser, ChanUser77, ChanUser99 [1]

Translations:
[1] The following users seem to own this box: <nickname list>

boxlist[edit]

List all models in the the database people have registered.
Since people used a mix of long and short names this list went a mess :)
Besides this the list now is way too long for a single response.
The database needs a manual cleanup before this command is useful again.

  • Usage: !boxlist
  • Help: !help boxlist
  • Examples:
ChanUser: !boxlist
FritzBot: Folgende Boxen wurden bei mir registriert: W920V, W701V, FRITZ!Box Fon WLAN 7112, FRITZ!Box Fon WLAN 7390, .... [1]

Translations:
[1] The following models have been registered so far: <mess of a model list>

userlist[edit]

List all users who registered at least one model to the models database.
This list is now way too long for a single response and is truncated.

  • Usage: !userlist
  • Help: !help userlist
  • Examples:
ChanUser: !userlist
FritzBot: Diese Benutzer haben bei mir mindestens eine Box registriert: Guest4463, Guest17137, Guest39254, Guest45790, ... [1]

Translations:
[1] The following users have registered at least one box: <truncated user list>

User-Commands[edit]

Some helpers to interact with users of our channel.

ask[edit]

Ask a user by private message to participate and announce his/her models to the models database.
frag is german slang for ask. The english alias ask does not work yet.

  • Usage: !ask <nickname>
  • German: !frag <nickname>
  • Help: !help frag
  • Examples:
ChanUser: !ask Guest0815
(no response)

Private message to Guest0815:
FritzBot: Hallo Guest0815, ich interessiere mich sehr für Fritz!Boxen, [1]
          wenn du eine oder mehrere hast kannst du sie mir mit !boxadd deine box, mitteilen, [2]
          falls du dies nicht bereits getan hast :). [3]
FritzBot: Pro !boxadd bitte nur eine Box nennen (nur die Boxversion) z.b. !boxadd 7270v1. [4]
          Um die anderen im Channel nicht zu stören, sende es mir doch bitte per query/private Nachricht [5]
          (z.b. /msg FritzBot !boxadd 7270)

Translations:
[1] Hello <nickname>, I am very much interested in your Fritz!Box models.
[2] if you own one or more of them you can tell me which models using the !boxadd command,
[3] if you didn't already do that :)
[4] Please add only a single model (only the version number) per !boxadd call.
[5] To not disturb others in the channel please use private message.

remind[edit]

Send an offline message to a user who is not currently present in the channel.
FritzBot will forward the message as soon as the user joins the channel again.

  • Usage: !remind <nickname> <message>
  • Help: !help remind
  • Examples:
ChanUser: !remind Guest0815 my email address is tester@example.com
FritzBot: Okay ich werde es sobald wie möglich zustellen [1]

Translations:
[1] Okay, I will forward your message as soon as possible.

seen[edit]

Reports the last activity of a user in the channel. In private message the channel ##fritzbox is hardcoded.

  • Usage: !seen <nickname>
  • Help: !help seen
  • Examples:
ChanUser: !seen ChanUser
FritzBot: Den/Die habe ich hier zuletzt am 12.11.2018 um 05:20:30 Uhr gesehen. Am 12.11.2018 um 18:02:48 Uhr sagte er/sie zuletzt: 
"!seen ChanUser". [1]

ChanUser: !seen NeverHere
FritzBot: Den habe ich hier noch nie etwas schreiben sehen. [2]

Translations:
[1] He/she was last seen at <join date>. At <message date> he/she said "<message>".
[2] I never saw him writing something here.

bots[edit]

List users which have been idle for a specified number of days. In private message the channel has to be named.
This command is occasionally used to say hello to people who did not have the balls to communicate.

  • Usage: !bots <days> [<channel>]
  • Help: !help bots
  • Examples:
ChanUser: !bots 180 ##fritzbox
FritzBot: User die definitiv länger als 180 Tage inaktiv sind: User01, User02, User03 ... [1]

Translations:
[1] ‎Users which definitely were inactive for more than <days> days are: <user list>

IRC-Helpers[edit]

Handy helper tools for daily usage.

calc[edit]

Small calculator, evaluates a given term.

  • Usage: !calc <term>
  • Help: !help calc
  • Examples:
ChanUser: !calc 22*7+3
FritzBot: (22 * 7) + 3 ergibt 157 [1]

ChanUser: !calc 22*(7+3)
FritzBot: 22 * (7 + 3) ergibt 220 [1]

Translations:
[1] <term> evaluates to <result>

geolocator[edit]

Tries to find out the geographic location of an IP address or user.

  • Usage: !geolocator <ip>|<nickname>
  • Short: !geo <ip>|<nickname>
  • Help: !help geolocator
  • Examples:
ChanUser: !geo FritzBot
FritzBot: Die IP 2a02:810b:fc0:3d00:ac13:31eb:1123:3925 befindet sich im Land Germany (DE) [1]

ChanUser: !geo BoxMatrix
FritzBot: Die IP 89.238.83.208 befindet sich im Land Germany (DE), vermutlich in der Stadt Sankt Wendel. Dort ist es gerade 13.11.2018 21:55:01 Uhr [2]

ChanUser: !geo 4.4.8.8
FritzBot: Die IP 4.4.8.8 befindet sich im Land United States (US), vermutlich in der Stadt Racine. Dort ist es gerade 13.11.2018 15:49:28 Uhr [2]

Translations:
[1] The IP <ip> is located in country <country>
[2] The IP <ip> is located in country <country>, probably in city <city>. There it's <localtime there>.

google[edit]

Creates a search link to Google from the given search terms, or a link to the homepage.

  • Usage: !google [<search terms>]
  • Short: !g [<search terms>]
  • Help: !help google
  • Examples:
ChanUser: !g
FritzBot: http://www.google.de/

ChanUser: !g fritzbox 7270 service portal
FritzBot: https://www.google.de/search?q=fritzbox+7270+service+portal

lmgtfy[edit]

Creates an indirect search link to Google from the given search terms, using the lmgtfy service.
lmgtfy (let me google that for you) explains to people who are obviously too lazy how to use google.

  • Usage: !lmgtfy <search terms>
  • Help: !help google
  • Examples:
ChanUser: !lmgtfy avm homepage
FritzBot: http://lmgtfy.com/?q=avm+homepage

shorturl[edit]

Creates a short URL from a long URL, using the tinyurl service.

  • Usage: !shorturl <long url>
  • Help: !help shorturl
  • Examples:
ChanUser: !shorturl https://boxmatrix.info/wiki/Property:tr069-default-iad-fritzchen.telekom.de.pem
FritzBot: http://tinyurl.com/y8jooeke
FritzBot: [url] tr069-default-iad-fritzchen.telekom.de.pem - Crypto-Files - BoxMatrix

translate[edit]

Translates a german text to the specified language.
This command is currently broken.

  • Usage: !translate <target language> <text>
  • Help: !help translate
  • Examples:
Chanuser: !translate en Guten Morgen
FritzBot: Das hat nicht so geklappt wie erwartet [1]

Translations:
[1] This didn't work as expected.

wiki[edit]

Creates a search link to BoxMatrix from the given search terms, or a link to its homepage.
The old Wiki was located at wehavemorefun.de and thus was nicknamed whmf.

  • Usage: !wiki [<search terms>]
  • Short: !w [<search terms>]
  • Help: !help whmf
  • Examples:
ChanUser: !w
FritzBot: https://boxmatrix.info

ChanUser: !w 7390
FritzBot: https://boxmatrix.info/wiki?search=7390

joke[edit]

Print a (mostly german language) joke or record a new one.
Witz is the german word for joke.
This is full of Chuck Norris jokes, so pretty useless unless you're a fan of them.
To get something else out of it you need to filter.

  • Usage: !joke [<filter> | add <joke text>]
  • German: !witz [<filter> | add <joke text>]
  • Help: !help witz
  • Examples:
ChanUser: !joke linux
FritzBot: The software required WinXP or better, so I installed Linux.

Status-Commands[edit]

Information about FritzBot and its health.

about[edit]

Prints a short introduction of FritzBot.

  • Usage: !about
  • Help: !help about
  • Examples:
ChanUser: !about
FritzBot: Primäraufgabe: Daten über Fritzboxen sammeln, [1]
          Sekundäraufgabe: Menschheit eliminieren. [2]
          Funktionsliste ist durch !hilfe zu erhalten. [3]
          Programmiert in C# umfasst mein Quellcode derzeit 6770 Zeilen. [4]

Translations:
[1] Primary goal: collect information about Fritz!Box models (in fact the first functions)
[2] Secondary goal: eliminate mankind
[3] The command list could be acquired using !help
[4] Coded in C# my source code spans <number> lines of code.

date[edit]

Print the local time and date in Berlin.
Zeit is the german word for time.

  • Usage: !date
  • German: !zeit
  • Help: !help zeit
  • Examples:
ChanUser: !date
FritzBot: Laut meiner Uhr ist es gerade 12:25:41 am 14.11.2018 in der Kalenderwoche 46 [1]

Translations:
[1] According to my clock it is currently <local time> at <date> in <week of the year>

ping[edit]

Test whether FritzBot is alife.

  • Usage: !ping
  • Help: !help ping
  • Examples:
ChanUser: !ping
FritzBot: Pong ChanUser

sys[edit]

Print information about the system FritzBot is running on.

  • Usage: !sys
  • Help: !help sys
  • Examples:
ChanUser: !sys
FritzBot: Betriebssystem: Microsoft Windows 10.0.17763, [1]
          RuntimeVersion: .NET Core 4.6.27102.02 32bit, CPU's: 4, [2]
          RAM Verbrauch (Programm / +Runtime): 2,64MB / 32,63MB [3]

Translations:
[1] Operating system: <os>
[2] Runtime version <version>, CPU cores: <cores>
[3] Memory consumption: (program / runtime) <meminfo>

uptime[edit]

Print the time passed since FritzBot was started.

  • Usage: !uptime
  • Help: !help uptime
  • Examples:
ChanUser: !uptime
FritzBot: Meine Laufzeit beträgt 3 Tage, 20 Stunden, 14 Minuten und 4 Sekunden [1]

Translations:
[1] My uptime is <days>, <hours>, <minutes>, <seconds>

Admin-Commands[edit]

Commands for bot maintenance:

  • IRC functions
    • connect <server>,<port>,<nick>,<quit message>,<initial channel> - Reconnect to another server and join a channel
    • leave <server> - Disconnect from a server
    • join <channel> - Join a channel
    • part <channel> - Leave a channel
    • ignore <nickname> - Ignore messages from a user
    • unignore <nickname> - Stop to ignore a user
  • Bot control
    • restart - Restart FritzBot
    • quit - Terminate FritzBot
    • taskcontrol <arguments> - Maintain FritzBot tasks
  • Plugin control
    • modprobe <plugin> - Loads a command plugin
    • rmmod <plugin> - Unloads a command plugin
    • subscribe <arguments> - Maintain plugin input sources
  • Database control
    • admin <arguments> - Tweak the models database
    • user <arguments> - Tweak the user database
  • Permission control
    • auth <password> - Login to FritBot
    • passwd - Change the own login password
    • op <nickname> - Give a user administrative rights

BoxMatrix-Commands[edit]

Nearly all commands of BoxMatrix-Bot could be tunneled through FritzBot.
Instead of # just use a $ sign to call a BoxMatrix command through FritzBot.
Tunneled commands are slower than direct calls, since FritzBot has to connect BoxMatrix per command.
However, this may be handy if BoxMatrix is not in the channel or doesn't work for some reason.

  • Usage: $<command> [<arguments>]
  • Help: $help
  • Examples:
ChanUser: $about
FritzBot: BoxMatrix Research Bot by Hippie2000, 
          14 news + 12 webdir + 8 firmware + 5 pdf + 130 query + 5 misc + 12 status + 7 admin = 193 total commands  - 
          https://boxmatrix.info/wiki/BoxMatrix-Bot  -  FritzBot by Suchiman. Try !about for details.

ChanUser: $man 7390
FritzBot: #manual.de:  FRITZ!Box Fon WLAN 7390:   2018-06-12 11:04  -  
          https://assets.avm.de/files/docs/fritzbox/fritzbox-7390/fritzbox-7390_man_de_DE.pdf  -  
          3.7 MB  -  e913d7d26f01d9babebd7b2cf77f50f8