Difference between revisions of "Begiak"

From Apertium
Jump to navigation Jump to search
(→‎Features: Oops... double tag)
(45 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 
{{TOCD}}
 
{{TOCD}}
'''begiak''' is the irc bot in the [[IRC|#apertium]] irc channel. Its primary function is to report svn updates to various relevant repositories. However, it serves some other purposes, including to showcase some applications of the apertium translation [[API]].
+
'''begiak''' is the IRC bot in the #apertium [[IRC]] channel. It serves several purposes, including to showcase some applications of the apertium translation [[API]], getting information about languages and other topics, and providing various forms of reminders, as well as a couple features that are just for fun..
   
 
== Background ==
 
== Background ==
Begiak was set up by conor_f for [[Google Code-in|GCI 2012]], and several modules were written and fixed by [[User:Sushain|sushain]], Qasim, and a number of other GCI students since then. It runs on apertium.vm.bytemark.co.uk. The code base is the [https://github.com/mutantmonkey/phenny mutantmonkey port] to python3 of the [http://inamidst.com/phenny/ phenny] bot. Our codebase is currently hosted by [[User:Firespeaker|Jonathan]] in [https://github.com/jonorthwash/phenny his github].
+
Begiak was set up by conor_f for [[Google Code-in|GCI 2012]], and several modules were written and fixed by [[User:Sushain|sushain]], Qasim, and a number of other GCI students since then. The core code base is the [https://github.com/mutantmonkey/phenny mutantmonkey port] to Python3 of the [http://inamidst.com/phenny/ phenny] bot. Our codebase is currently hosted at [https://github.com/apertium/phenny].
   
 
Begiak means "the eyes" in [[Basque]].
 
Begiak means "the eyes" in [[Basque]].
   
== Repositories monitored ==
+
== Features ==
The following svn repositories are monitored by begiak. Begiak polls for updates when it receives a ping from the server. Also see [[#AI Features|below]] for some ways to manually update
 
* [[Using SVN|apertium.svn.sourceforge.net]]
 
* HFST
 
* vislcg3
 
* phenny
 
* omorfi
 
* etc.
 
 
== AI Features ==
 
 
Begiak recognises the following commands.
 
Begiak recognises the following commands.
   
  +
* <code>.awikstats update <lang></code> — update the wikipage apertium-LANG/stats (note: will dump a bunch of info in private chat)
=== Apertium features ===
 
  +
* <code>.follow <nick> <lg1-lg2> [follower]</code> — Follow someone and translate as they speak. (Translations are sent as notices to the follower (follower feature is admin only!))
These are special apertium-related or #apertium-specific commands, or were designed with apertium in mind.
 
  +
* <code>.following</code> — List people currently being followed.
* .awik — Search for something on Apertium wiki or point a user to a Apertium wiki page.
 
  +
* <code>.iso639 <lg></code> — look up [http://en.wikipedia.org/wiki/ISO_639 ISO 639]-1, -2 and -3 language codes either by code or by language name. Codes sourced from Ethnologue.com (639-3) and Wikipedia (-1 and -2)
* .awikstats – "awikstats update LANG" should update the wikipage apertium-LANG/stats
 
  +
* <code>.isodb status</code> — see if the database updater (.isodb update) is running
* .(eth|lg|ethno|logue|ethnologue) ''lg'' — Search [http://www.ethnologue.com Ethnologue.com] for information on a desired language (given ISO 639 code or language name)
 
  +
* <code>.issue <title></code> — create a new GitHub issue.
* .fight ''nick'' — have begiak fight someone for you.
 
  +
* <code>.listpairs <lg></code> — List language pairs available for apertium translation
* .follow ''nick'' ''lg1-lg2'' ''(follower)'' — Follow someone and translate as they speak. (Translations are sent as notices to the follower (admin only!))
 
  +
* <code>.listlangs</code> — List languages available for apertium translation
* .following — List people currently being followed.
 
  +
* <code>.t <lg1-lg2> [ | lg2-lg3 ...] <text>''</code> — Apertium translate
* .gitserver [status|start|stop] — get the githook-server's status/start it/stop it. See [http://wiki.apertium.org/wiki/Begiak%27s_git_plugin Begiak's git plugin] for more info.
 
* .hug ''nick''have begiak hug someone for you.
+
* <code>.unfollow <nick></code>Stop following a user.
  +
* <code>.8ball</code> — magic 8 ball
* .iso639 ''lg'' — look up [http://en.wikipedia.org/wiki/ISO_639 ISO 639]-1, -2 and -3 language codes either by code or by language name. Codes sourced from Ethnologue.com (639-3) and Wikipedia (-1 and -2)
 
* .isodb updateupdate the local database of ISO 639 codes (admin only!)
+
* <code>.beats</code>Shows the internet time in Swatch beats
  +
* <code>.botsnack</code> — Give begiak a snack for being good
* .isodb status — see if the database updater (.isodb update) is running
 
  +
* <code>.c</code> — Calculator using SymPy.
* .listpairs (''lg'') — List language pairs available for apertium translation
 
  +
* <code>.chill</code> — Measure the current channel chillness level.
* .listlangs — List languages available for apertium translation
 
  +
* <code>.choose <choice1> <choice2></code> — begiak will choose one of the two options (randomly).
* .(ml|mailinglist) poll — Poll for new messages in apertium mailing lists (this is automatically done every five minutes).
 
  +
* <code>.ety</code> — Look up the etymology of a word
* .(ml|mailinglist) last ''list'' — Get the last message in a specified list.
 
  +
* <code>.fcc <callsign></code> — Look up a callsign issued by the FCC
* .noexceptions (''nick'') — Tells someone there aren't ever any exceptions
 
  +
* <code>.fight <nick></code> — have begiak fight someone for you.
* .t ... ''lg1-lg2 ( | lg2-lg3 ...)'' — Apertium translate
 
* .unfollow ''nick''Stop following a user.
+
* <code>.hug <nick></code>have begiak hug someone for you.
  +
* <code>.in <time></code> — Set a reminder
* .wikicount ''lg'' — Get the number of articles an official or incubated Wikipedia for the specified language has, given a Wikipedia code or partial language name.
 
  +
* <code>.linx <url></code> — Upload ''url'' to linx.li
* begiak: esan! — Poll for svn updates ("esan!" means "say!" in Basque)
 
  +
* <code>.npl</code> — Shows the time from NPL's SNTP server
* begiak: recent — Get most recent svn/git updates ([http://wiki.apertium.org/wiki/Begiak%27s_git_plugin Begiak's git plugin] describes the git part)
 
  +
* <code>.nsfw <link></code> — for when a link isn't safe for work
* begiak: info <repo> <rev> — Get information on a given revision of a given SVN or git repository ([http://wiki.apertium.org/wiki/Begiak%27s_git_plugin Begiak's git plugin] describes the git part)
 
  +
* <code>.pesters
 
  +
** begiak: pester <nick> <message></code> — Sends a message to nick every hour they're around (or something. settable in config)
=== General features ===
 
  +
** <code>.pesters snooze <nick></code> — 'snooze' a pester from nick
These are more general-use commands; while many are useful to us in #apertium, they weren't designed specifically for #apertium (though some were hacked to make them more appropriate for #apertium).
 
  +
** <code>.pesters <dismiss|rm|remove> <to|from> <nick></code> — to stop pestering/being pestered by nick
 
  +
* Search commands:
* .8ball — magic 8 ball
 
  +
** The search commands are used to point other users to the output of several supported commands which are as follows:
* .away (''status'') — Sets your status to away
 
  +
*** Apertium Wiki (<code>.awik</code>)
* .back (''status'') — Sets your status to being available.
 
  +
*** Wikipedia (<code>.wik</code>)
* .beats — Shows the internet time in Swatch beats
 
  +
*** Urban Dictionary (<code>.urb</code>)
* .botsnack — Give begiak a snack for being good
 
  +
*** Wiktionary (<code>.w</code>)
* .c — Query DuckDuckGo calculator
 
  +
*** DuckDuckGo Search (<code>.search</code>)
* .catfacts — Random facts about cats
 
* .chill — Measure the current channel chillness level.
 
* .choose ''choice1'' ''choice2'' — begiak will choose one of the two options (randomly).
 
* .ety — Look up the etymology of a word
 
* .fcc ''callsign'' — Look up a callsign issued by the FCC
 
* .g — Search on Google
 
* .gc — Get the number of results on Google
 
* .greeting — Manage Greetings
 
** .greeting add ''name'' ''message'' — Add a greeting
 
** .greeting del ''name'' - Delete a greeting
 
* .in — Set a reminder
 
* .imdb — Search imdb
 
* .linx ''url'' — Upload ''url'' to linx.li
 
* .npl — Shows the time from NPL's SNTP server
 
* .nsfw ''link'' - for when a link isn't safe for work
 
* .py — Evaluate an expression in python (This runs as a sandboxed web service, not on your computer)
 
* .pesters
 
** begiak: pester ''nick'' ''message'' — Sends a message to nick every 12 hours they're around (or something. settable in config)
 
** .pesters snooze ''nick'' - 'snooze' a pester from nick
 
** .pesters dismiss ''nick'' - to stop pestering nick
 
* Point commands:
 
** The point commands are used to point other users to the output of several supported commands which are as follows:
 
*** Apertium wiki( <code>.awik</code> )
 
*** Wikipedia( <code>.wik</code> )
 
*** Urban Dictionary( <code>.urb</code> )
 
*** Wikitionary( <code>.w</code> )
 
*** Clock( <code>.time</code> and <code>.tz</code> )
 
*** firespeaker quotes( <code>.randquote</code> )
 
*** Google Search ( <code>.g</code> )
 
 
** Replace <code>.wik</code> or <code>.awik</code> with any of the above commands for appropriate output like 'svineet, "India, officially the Republic of India (Bhārat Gaṇarājya),[18][19][c] is a country in South Asia" - https://en.wikipedia.org/wiki/India' for <code>.wik India -> svineet</code>
 
** Replace <code>.wik</code> or <code>.awik</code> with any of the above commands for appropriate output like 'svineet, "India, officially the Republic of India (Bhārat Gaṇarājya),[18][19][c] is a country in South Asia" - https://en.wikipedia.org/wiki/India' for <code>.wik India -> svineet</code>
 
*** <code>.awik Begiak -> svineet</code>
 
*** <code>.awik Begiak -> svineet</code>
Line 87: Line 50:
 
*** <code>nick: .wik India</code>
 
*** <code>nick: .wik India</code>
 
*** <code>nick, .wik India</code>
 
*** <code>nick, .wik India</code>
*** <code>.awik point nick India</code>
+
*** <code>.awik India -> nick</code>
  +
* <code>.seen</code> — When was the last time a user was seen?
  +
* <code>.time [timezone]</code> — Returns current time in timezone (can be a city or a time zone e.g UTC). If timezone is empty, returns current time in GMT time zone.
  +
* <code>.tz</code> — Timezone converter Converts a time from one timezone to another. (e.g., .tz 335EST in CET, or .tz 335EST in London)
  +
* <code>.tells</code> — See a summary of outstanding reminders you've sent to others using "begiak: tell"
  +
** begiak: tell <nick> <message> [**pm**]</code> — Tells someone something the next time they say something in a channel begiak is monitoring. The **pm** option has the message sent privately.
  +
** <code>.tells <nick></code> — List your reminders currently queued to that nick
  +
** <code>.tells rm <num></code> — Delete a queued reminder using its number from .tells nick
  +
* <code>.alias</code> — manage aliases
  +
** <code>.alias add <nick></code> — adds an alias for your nick of nick
  +
** <code>.alias rm <nick></code> — removes an alias for nick nick
  +
** <code>.alias list <nick></code> — lists existing aliases for nick
  +
* <code>.u <char></code> — Search for a unicode character
  +
* <code>.weather <city></code> — Get the weather for a city
  +
* <code>.yi</code> — Shows whether it is currently yi or not
  +
  +
=== Admin ===
  +
These are admin-only, or only useful to admins.
  +
* <code>.isodb update</code> — update the local database of ISO 639 codes
  +
* <code>.greeting</code> — Manage Greetings
  +
** <code>.greeting add <name> <message></code> — Add a greeting
  +
** <code>.greeting del <name></code> - Delete a greeting
  +
* <code>.gitserver [status|start|stop]</code> — get the githook-server's status/start it/stop it. See [[Begiak's git plugin]] for more info.
  +
* <code>.tzdb</code> — Manage timezone database
  +
** <code>.tzdb update</code> — Updates a timezones database (admin only)
  +
** <code>.tzdb status</code> — Returns a status of updating a timezones database
  +
  +
=== Unknown ===
  +
These functions/plugins either don't seem to work or need some figuring out:
  +
* .tfw
  +
* lastfm
  +
* mylife (.fml .mlia)
  +
* oblique
  +
* .whereis ''nick'' — Tells you nick's current status.
 
* .queue — Manage lists.
 
* .queue — Manage lists.
 
** .queue new ''name'' [''item1'', ''item2'' ...] — Make a new queue
 
** .queue new ''name'' [''item1'', ''item2'' ...] — Make a new queue
Line 96: Line 92:
 
** .queue ''name'' pop — Pop an item off the queue
 
** .queue ''name'' pop — Pop an item off the queue
 
** .queue ''name'' swap ''item1'', ''item2'' — Swap two items
 
** .queue ''name'' swap ''item1'', ''item2'' — Swap two items
  +
* .py — Evaluate an expression in python (This runs as a sandboxed web service, not on your computer)
* .seen — When was the last time a user was seen?
 
  +
* .wikicount ''lg'' — Get the number of articles an official or incubated Wikipedia for the specified language has, given a Wikipedia code or partial language name.
* .slogan ''word'' — Sloganize a word
 
  +
* .(ml|mailinglist) poll — Poll for new messages in apertium mailing lists (this is automatically done every five minutes).
* .stache ''url'' — Moustachify an image
 
  +
* .(ml|mailinglist) last <list> — Get the last message in a specified list.
* .time (''TimeZone'') — Returns current time in ''TimeZone'' (can be a city or a time zone e.g UTC). If ''TimeZone'' is empty, returns current time in GMT time zone.
 
* .tz — A timezone translation plugin. Converts a time from one timezone to another. (e.g., .tz 335EST in CET, or .tz 335EST in London)
 
* .tzdb — Manage database
 
** .tzdb update — Updates a timezones database
 
** .tzdb status — Returns a status of updating a timezones database
 
* .title — Get the title of a link
 
* .tells — See a summary of outstanding reminders you've sent to others using "begiak: tell"
 
** begiak: tell ''nick'' ''message'' (''**pm**'') — Tells someone something the next time they say something in a channel begiak is monitoring. The **pm** option has the message sent privately.
 
** .tells ''nick'' — List your reminders currently queued to that nick
 
** .tells rm ''num'' — Delete a queued reminder using its number from .tells ''nick''
 
* .tock — Shows the time from the USNO's atomic clock
 
* .u — Search for a unicode character
 
* .urb — Query urban dictionary
 
* .val ''url'' — Check a webpage using the W3C Markup Validator.
 
* .w — look up a word on wiktionary
 
* .wa — Query Wolfram Alpha
 
* .weather — Get the weather for a city
 
* .whereis ''nick'' — Tells you nick's current status.
 
* .wik — Search for something on Wikipedia or point another user to a Wikipedia page.
 
* .wuvt — Find out what radio station WUVT is currently playing
 
* .yi — Shows whether it is currently yi or not
 
* begiak: "parlez-vous français"? — Translate a phrase (google translate)
 
* begiak: reload ''module'' — reload a module (admin only!)
 
   
=== ?? ===
+
== Help! It crashed!==
  +
Begiak has a known bug that causes it to repeatedly quit and rejoin. Please don't report this as an issue; we already know about it. If you know how to fix it, however, please do tell us.
These functions/plugins either don't seem to work or need some figuring out:
 
  +
* .tfw
 
  +
In the event of a crash, you can use ebegiak, hosted by [[User:ScoopGracie|scoopgracie]], for the tell feature. All non-tell commands have been removed from ebegiak.
* <s>rule34</s> disabled
 
* lastfm
 
* mylife (.fml .mlia)
 
* oblique
 
   
== Wishlist ==
+
== Development ==
  +
A good tutorial on creating Phenny modules can be found [https://github.com/myano/jenni/wiki/How-to-create-a-phenny-module here]. Also, note that some commands start with a period and others start with "begiak: "; new commands should probably use a period.
* Apertium and APY
 
* awikstats:
 
** count .rlx sizes ☭
 
** count number of transfer rules ☭
 
** ignore post-* (used to work?)
 
** use each file's rev for pairs with their own monodices, e.g. [[Apertium-en-es/stats]] ☭
 
* URL interceptor
 
** blacklist patterns for the URL interceptor so it doesn't report titles for e.g. ^http(s?)://svn.code.sf.net/ ☭
 
** have the url interceptor check whether a url is a link to a known mediawiki site (wikipedia, wiktionary, apertium wiki) and redirect to the appropriate module ☭
 
** some issues with unicode still need solving: ☭
 
*** [http://kaz-tili.kz/glag9.htm Êàçàõñêèé ÿçûê. Ãðàììàòèêà. Äàâíî ïðîøåäøåå âðåìÿ (î÷åâèäíîå)] ☭
 
*** [http://kaz-tili.kz/textposl06.htm Êàçàõñêèé ÿçûê. Ãðàììàòèêà. Ïîñëîâèöû - Ó÷åíèå, çíàíèå] ☭
 
*** [http://karachay.smi09.ru Ãîñóäàðñòâåííîå ó÷ðåæäåíèå "Ðåäàêöèÿ ãàçåòû "ÊÀÐÀ×ÀÉ"] ☭
 
*** [http://www.turkkon.org/tr-TR/AnaSayfa Türk Dili Konuşan Ülkeler İşbirliği Konseyi] ☭
 
* mediawiki plugins
 
** have awik plugin search the apertium wiki and return top hit if a page isn't found (like wikipedia plugin) ☭
 
** have a function that tells someone else the results of .awik or .wik, e.g. for mentors to point students to resources ☭
 
** have better logic for text that's displayed for a page/section (need examples where it fails!) ☭
 
*** where there's immediately a subsection? ☭
 
*** where the first thing is a table or infobox? ☭
 
*** where the first . doesn't end the sentence? ☭
 
*** where the first thing is <nowiki>[[…|En français]]</nowiki> (though really, we should have a real template on the wiki for translations)
 
** generalise mediawiki plugin?
 
* find out why the "posted" command isn't working as expected
 
* document any command that does not have information ☭
 
* Pollers (svn, git, etc.)
 
** show short links to new apertium-stuff posts (poll like with commits?) ☭
 
** allow channel-specific filtering of commit (etc.?) poller reporting ☭
 
*** alternatively: begiak lacks a filter or two, sometimes fills up channels making S/N high. begiak should detect quiet channels and not output there.
 
** svnpoller and gitpoller's lookup functions (i.e., repeat information on specific revision)
 
*** make it work
 
*** make it give a url to online commit viewer (maybe url template provided as a config option?), e.g. https://sourceforge.net/p/apertium/svn/57171/ ☭
 
* user tracking
 
** greet new users (never seen) with a hello message telling them to idle (able to enable/disable) ☭
 
** fix <code>.seen</code> forgetting everything after a restart ☭
 
* timezones
 
*** find some way to get standard abbreviations, e.g. scraping it from somewhere? ☭
 
*** better mapping of city names to timezones
 
* queues
 
** .queue display seems to be broken ☭
 
** allow displaying (/listing?) queues for other users too ☭
 
** figure out how to deal with queues longer than irc message length ☭
 
** return a better error message when a queue doesn't exist (i.e., not "that's not a command" for ".queue hargle add bargle") ☭
 
** allow admin users to modify and delete others' queues ☭
 
* ethnologue plugin ☭
 
** Make logic for number of native speakers better (e.g., tur currently reports 350K, spa 7.5M) ☭
 
* .pester - pesters pesteree once per day (or other period of time) until pesterer says problem is solved; i.e., pesteree can postpone or dismiss ☭
 
   
== Help! ==
+
== Administration ==
Begiak is controlled by an init script (/etc/init.d/begiak.sh) on bytemark, and can be started, stopped, and restarted by anyone with sudo access.
+
Begiak is controlled by an init script (/etc/init.d/begiak.sh, found at [https://github.com/apertium/phenny/blob/master/init.sh]) on Bytemark, and can be started, stopped, and restarted by anyone with sudo access.
   
 
[[Category:Bots]]
 
[[Category:Bots]]

Revision as of 16:14, 25 January 2020

begiak is the IRC bot in the #apertium IRC channel. It serves several purposes, including to showcase some applications of the apertium translation API, getting information about languages and other topics, and providing various forms of reminders, as well as a couple features that are just for fun..

Background

Begiak was set up by conor_f for GCI 2012, and several modules were written and fixed by sushain, Qasim, and a number of other GCI students since then. The core code base is the mutantmonkey port to Python3 of the phenny bot. Our codebase is currently hosted at [1].

Begiak means "the eyes" in Basque.

Features

Begiak recognises the following commands.

  • .awikstats update <lang> — update the wikipage apertium-LANG/stats (note: will dump a bunch of info in private chat)
  • .follow <nick> <lg1-lg2> [follower] — Follow someone and translate as they speak. (Translations are sent as notices to the follower (follower feature is admin only!))
  • .following — List people currently being followed.
  • .iso639 <lg> — look up ISO 639-1, -2 and -3 language codes either by code or by language name. Codes sourced from Ethnologue.com (639-3) and Wikipedia (-1 and -2)
  • .isodb status — see if the database updater (.isodb update) is running
  • .issue <title> — create a new GitHub issue.
  • .listpairs <lg> — List language pairs available for apertium translation
  • .listlangs — List languages available for apertium translation
  • .t <lg1-lg2> [ | lg2-lg3 ...] <text> — Apertium translate
  • .unfollow <nick> — Stop following a user.
  • .8ball — magic 8 ball
  • .beats — Shows the internet time in Swatch beats
  • .botsnack — Give begiak a snack for being good
  • .c — Calculator using SymPy.
  • .chill — Measure the current channel chillness level.
  • .choose <choice1> <choice2> — begiak will choose one of the two options (randomly).
  • .ety — Look up the etymology of a word
  • .fcc <callsign> — Look up a callsign issued by the FCC
  • .fight <nick> — have begiak fight someone for you.
  • .hug <nick> — have begiak hug someone for you.
  • .in — Set a reminder
  • .linx <url> — Upload url to linx.li
  • .npl — Shows the time from NPL's SNTP server
  • .nsfw <link> — for when a link isn't safe for work
  • .pesters
    • begiak: pester <nick> <message> — Sends a message to nick every hour they're around (or something. settable in config)
    • .pesters snooze <nick> — 'snooze' a pester from nick
    • .pesters <dismiss|rm|remove> <to|from> <nick> — to stop pestering/being pestered by nick
  • Search commands:
    • The search commands are used to point other users to the output of several supported commands which are as follows:
      • Apertium Wiki (.awik)
      • Wikipedia (.wik)
      • Urban Dictionary (.urb)
      • Wiktionary (.w)
      • DuckDuckGo Search (.search)
    • Replace .wik or .awik with any of the above commands for appropriate output like 'svineet, "India, officially the Republic of India (Bhārat Gaṇarājya),[18][19][c] is a country in South Asia" - https://en.wikipedia.org/wiki/India' for .wik India -> svineet
      • .awik Begiak -> svineet
      • .awik Begiak → svineet
      • nick: .wik India
      • nick, .wik India
      • .awik India -> nick
  • .seen — When was the last time a user was seen?
  • .time [timezone] — Returns current time in timezone (can be a city or a time zone e.g UTC). If timezone is empty, returns current time in GMT time zone.
  • .tz — Timezone converter Converts a time from one timezone to another. (e.g., .tz 335EST in CET, or .tz 335EST in London)
  • .tells — See a summary of outstanding reminders you've sent to others using "begiak: tell"
    • begiak: tell <nick> <message> [**pm**] — Tells someone something the next time they say something in a channel begiak is monitoring. The **pm** option has the message sent privately.
    • .tells <nick> — List your reminders currently queued to that nick
    • .tells rm <num> — Delete a queued reminder using its number from .tells nick
  • .alias — manage aliases
    • .alias add <nick> — adds an alias for your nick of nick
    • .alias rm <nick> — removes an alias for nick nick
    • .alias list <nick> — lists existing aliases for nick
  • .u <char> — Search for a unicode character
  • .weather <city> — Get the weather for a city
  • .yi — Shows whether it is currently yi or not

Admin

These are admin-only, or only useful to admins.

  • .isodb update — update the local database of ISO 639 codes
  • .greeting — Manage Greetings
    • .greeting add <name> <message> — Add a greeting
    • .greeting del <name> - Delete a greeting
  • .gitserver [status|start|stop] — get the githook-server's status/start it/stop it. See Begiak's git plugin for more info.
  • .tzdb — Manage timezone database
    • .tzdb update — Updates a timezones database (admin only)
    • .tzdb status — Returns a status of updating a timezones database

Unknown

These functions/plugins either don't seem to work or need some figuring out:

  • .tfw
  • lastfm
  • mylife (.fml .mlia)
  • oblique
  • .whereis nick — Tells you nick's current status.
  • .queue — Manage lists.
    • .queue new name [item1, item2 ...] — Make a new queue
    • .queue name — Display a queue
    • .queue delete name — Delete a queue
    • .queue name add item — Add an item
    • .queue name remove item — Remove an item
    • .queue name pop — Pop an item off the queue
    • .queue name swap item1, item2 — Swap two items
  • .py — Evaluate an expression in python (This runs as a sandboxed web service, not on your computer)
  • .wikicount lg — Get the number of articles an official or incubated Wikipedia for the specified language has, given a Wikipedia code or partial language name.
  • .(ml|mailinglist) poll — Poll for new messages in apertium mailing lists (this is automatically done every five minutes).
  • .(ml|mailinglist) last <list> — Get the last message in a specified list.

Help! It crashed!

Begiak has a known bug that causes it to repeatedly quit and rejoin. Please don't report this as an issue; we already know about it. If you know how to fix it, however, please do tell us.

In the event of a crash, you can use ebegiak, hosted by scoopgracie, for the tell feature. All non-tell commands have been removed from ebegiak.

Development

A good tutorial on creating Phenny modules can be found here. Also, note that some commands start with a period and others start with "begiak: "; new commands should probably use a period.

Administration

Begiak is controlled by an init script (/etc/init.d/begiak.sh, found at [2]) on Bytemark, and can be started, stopped, and restarted by anyone with sudo access.