Difference between revisions of "Begiak"

From Apertium
Jump to navigation Jump to search
m (Add link to Begiak's git plugin documentation)
(→‎AI Features: Change the title to something more logical)
(46 intermediate revisions by 11 users not shown)
Line 3: Line 3:
   
 
== 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]] and Qasim. 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. 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 means "the eyes" in [[Basque]].
 
Begiak means "the eyes" in [[Basque]].
Line 16: Line 16:
 
* etc.
 
* etc.
   
== AI Features ==
+
== Features ==
 
Begiak recognises the following commands.
 
Begiak recognises the following commands.
   
 
=== Apertium features ===
 
=== Apertium features ===
 
These are special apertium-related or #apertium-specific commands, or were designed with apertium in mind.
 
These are special apertium-related or #apertium-specific commands, or were designed with apertium in mind.
* .awik — Search for something on Apertium wiki.
+
* .awik — Search for something on Apertium wiki or point a user to a Apertium wiki page.
  +
* .awikstats – "awikstats update LANG" should update the wikipage apertium-LANG/stats
 
* .(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)
 
* .(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)
* .fight ''nick'' — have begiak fight someone for you.
 
 
* .follow ''nick'' ''lg1-lg2'' ''(follower)'' — Follow someone and translate as they speak. (Translations are sent as notices to the follower (admin only!))
 
* .follow ''nick'' ''lg1-lg2'' ''(follower)'' — Follow someone and translate as they speak. (Translations are sent as notices to the follower (admin only!))
 
* .following — List people currently being followed.
 
* .following — List people currently being followed.
 
* .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.
 
* .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.
 
 
* .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)
 
* .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 update — update the local database of ISO 639 codes (admin only!)
 
* .isodb update — update the local database of ISO 639 codes (admin only!)
 
* .isodb status — see if the database updater (.isodb update) is running
 
* .isodb status — see if the database updater (.isodb update) is running
  +
* .issue — create a new GitHub issue.
 
* .listpairs (''lg'') — List language pairs available for apertium translation
 
* .listpairs (''lg'') — List language pairs available for apertium translation
 
* .listlangs — List languages available for apertium translation
 
* .listlangs — List languages available for apertium translation
  +
* .(ml|mailinglist) poll — Poll for new messages in apertium mailing lists (this is automatically done every five minutes).
* .noexceptions (''nick'') — Tells someone there aren't ever any exceptions
 
  +
* .(ml|mailinglist) last ''list'' — Get the last message in a specified list.
 
* .t ... ''lg1-lg2 ( | lg2-lg3 ...)'' — Apertium translate
 
* .t ... ''lg1-lg2 ( | lg2-lg3 ...)'' — Apertium translate
 
* .unfollow ''nick'' — Stop following a user.
 
* .unfollow ''nick'' — Stop following a user.
Line 43: Line 44:
 
=== General features ===
 
=== General features ===
 
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).
 
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).
  +
 
* .8ball — magic 8 ball
 
* .8ball — magic 8 ball
 
* .away (''status'') — Sets your status to away
 
* .away (''status'') — Sets your status to away
Line 48: Line 50:
 
* .beats — Shows the internet time in Swatch beats
 
* .beats — Shows the internet time in Swatch beats
 
* .botsnack — Give begiak a snack for being good
 
* .botsnack — Give begiak a snack for being good
* .c — Query Google calculator
+
* .c — Calculator using SymPy.
* .catfacts — Random facts about cats
 
 
* .chill — Measure the current channel chillness level.
 
* .chill — Measure the current channel chillness level.
 
* .choose ''choice1'' ''choice2'' — begiak will choose one of the two options (randomly).
 
* .choose ''choice1'' ''choice2'' — begiak will choose one of the two options (randomly).
 
* .ety — Look up the etymology of a word
 
* .ety — Look up the etymology of a word
 
* .fcc ''callsign'' — Look up a callsign issued by the FCC
 
* .fcc ''callsign'' — Look up a callsign issued by the FCC
 
* .fight ''nick'' — have begiak fight someone for you.
 
* .g — Search on Google
 
* .g — Search on Google
 
* .gc — Get the number of results on Google
 
* .gc — Get the number of results on Google
Line 59: Line 61:
 
** .greeting add ''name'' ''message'' — Add a greeting
 
** .greeting add ''name'' ''message'' — Add a greeting
 
** .greeting del ''name'' - Delete a greeting
 
** .greeting del ''name'' - Delete a greeting
 
* .hug ''nick'' — have begiak hug someone for you.
 
* .in — Set a reminder
 
* .in — Set a reminder
 
* .imdb — Search imdb
 
* .imdb — Search imdb
Line 65: Line 68:
 
* .nsfw ''link'' - for when a link isn't safe for work
 
* .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)
 
* .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 hour 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>
  +
*** <code>.awik Begiak -> svineet</code>
  +
*** <code>.awik Begiak → svineet</code>
  +
*** <code>nick: .wik India</code>
  +
*** <code>nick, .wik India</code>
  +
*** <code>.awik point nick India</code>
 
* .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 77: Line 99:
 
* .stache ''url'' — Moustachify an image
 
* .stache ''url'' — Moustachify an image
 
* .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.
 
* .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 — Manage database
 
** .tzdb update — Updates a timezones database
 
** .tzdb update — Updates a timezones database
Line 82: Line 105:
 
* .title — Get the title of a link
 
* .title — Get the title of a link
 
* .tells — See a summary of outstanding reminders you've sent to others using "begiak: tell"
 
* .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 ''nick'' — List your reminders currently queued to that nick
 
** .tells rm ''num'' — Delete a queued reminder using its number from .tells ''nick''
 
** .tells rm ''num'' — Delete a queued reminder using its number from .tells ''nick''
  +
** .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''
 
* .tock — Shows the time from the USNO's atomic clock
 
* .tock — Shows the time from the USNO's atomic clock
 
* .u — Search for a unicode character
 
* .u — Search for a unicode character
Line 92: Line 119:
 
* .weather — Get the weather for a city
 
* .weather — Get the weather for a city
 
* .whereis ''nick'' — Tells you nick's current status.
 
* .whereis ''nick'' — Tells you nick's current status.
* .wik — Search for something on Wikipedia
+
* .wik — Search for something on Wikipedia or point another user to a Wikipedia page.
 
* .wuvt — Find out what radio station WUVT is currently playing
 
* .wuvt — Find out what radio station WUVT is currently playing
 
* .yi — Shows whether it is currently yi or not
 
* .yi — Shows whether it is currently yi or not
* 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.
 
 
* begiak: "parlez-vous français"? — Translate a phrase (google translate)
 
* begiak: "parlez-vous français"? — Translate a phrase (google translate)
 
* begiak: reload ''module'' — reload a module (admin only!)
 
* begiak: reload ''module'' — reload a module (admin only!)
Line 108: Line 134:
   
 
== Wishlist ==
 
== Wishlist ==
  +
You can see the old wishlist [[Talk:Begiak#Old_Wishlist|here]]
* Apertium and APY
 
** ability to query apertium modes besides translation ☭
 
* awikstats:
 
** count .rlx sizes ☭
 
** count number of transfer rules ☭
 
** <s>add a Category:Datastats so there's an easy way to get to all the stats</s>
 
** ignore post-* (used to work?)
 
** use each file's rev for pairs with their own monodices, e.g. [[Apertium-en-es/stats]] ☭
 
* tell/ask
 
** alises for nicks, so that spectre/spectie/spectei can get tell messages regardless of which nick they were sent to ☭
 
** delete things from tell/ask queue ☭
 
** make <code>tell</code> split overly long messages into multiple ones for display as to not exceed the max IRC message length ☭
 
* 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
 
* mediawiki plugins
** have awik plugin search the apertium wiki and return top hit if a page isn't found (like wikipedia plugin)
+
** have better logic for text that's displayed for a page/section (need examples where it fails!)
 
*** where the first thing is <nowiki>[[…|En français]]</nowiki> (though really, we should have a real template on the wiki for translations)
** <s>have wikipedia plugin support subsections like awik plugin</s>
 
 
*** where there's immediately a subsection? (cf. [[Talk:Begiak]])
** 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?
 
** 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.)
 
* Pollers (svn, git, etc.)
 
** show short links to new apertium-stuff posts (poll like with commits?) ☭
 
** 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.
 
*** 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)
 
** svnpoller and gitpoller's lookup functions (i.e., repeat information on specific revision)
 
*** make it work
 
*** 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/ ☭
 
*** 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/ ☭
* <strike>fix <code>.bot-slap</code> to only be triggered when begiak is mentioned</strike>
 
* 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
 
* timezones
** have better timezone support
+
** better mapping of city names to timezones
*** find some way to get standard abbreviations, e.g. scraping it from somewhere? ☭
 
*** better mapping of city names to timezones
 
** timezone translation plugin (e.g., .tz 335EST in CET)
 
* 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 ☭
 
* <s>fix support for branches of a svn repo. Example being the [http://visl.sdu.dk/svn/visl/tools/vislcg3/trunk/ vislcg3 repository] which is merely a branch of an otherwise closed source repository. Begiak currently only reports on a revision if the previous revision was also for that branch. E.g., Begiak reported about revision 9647 and 9646, but not 9645 because 9644 did not modify anything in the vislcg3 branch. This is a consistently seen pattern.</s>
 
* <s>fix begiak <code>.help</code> to display stuff about Apertium</s>
 
* <s>is the githook server automatically loading yet?</s>
 
* <s>wiktionary in other languages if there's some way to do it that makes sense (.ety and .w)</s>
 
* <s>find an easier way (or clean up the current method) to poll for SVN updates</s>
 
* <s>find out why the "fml" command isn't working as expected</s>
 
* <s>svn/git: logic of multiple files (display up to 3 filenames; if more than 3 files, display 2 filenames and the message "and X other files" (it should always be plural))</s>
 
* <s>svn/git: when updates are received (either by polling or a hook), don't display the time of the update. Maybe have a default dispalyTime=True (or False) in the display function, and adjust the appropriate functions to send the non-default.</s>
 
* <s>svn: when multiple updates occur since last poll, display both</s>
 
* <s>.botslap</s>
 
   
 
== Help! ==
 
== Help! ==

Revision as of 15:33, 19 January 2020

begiak is the irc bot in the #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.

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. It runs on apertium.vm.bytemark.co.uk. The code base is the mutantmonkey port to python3 of the phenny bot. Our codebase is currently hosted by Jonathan in his github.

Begiak means "the eyes" in Basque.

Repositories monitored

The following svn repositories are monitored by begiak. Begiak polls for updates when it receives a ping from the server. Also see below for some ways to manually update

Features

Begiak recognises the following commands.

Apertium features

These are special apertium-related or #apertium-specific commands, or were designed with apertium in mind.

  • .awik — Search for something on Apertium wiki or point a user to a Apertium wiki page.
  • .awikstats – "awikstats update LANG" should update the wikipage apertium-LANG/stats
  • .(eth|lg|ethno|logue|ethnologue) lg — Search Ethnologue.com for information on a desired language (given ISO 639 code or language name)
  • .follow nick lg1-lg2 (follower) — Follow someone and translate as they speak. (Translations are sent as notices to the follower (admin only!))
  • .following — List people currently being followed.
  • .gitserver [status|start|stop] — get the githook-server's status/start it/stop it. See Begiak's git plugin for more info.
  • .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 update — update the local database of ISO 639 codes (admin only!)
  • .isodb status — see if the database updater (.isodb update) is running
  • .issue — create a new GitHub issue.
  • .listpairs (lg) — List language pairs available for apertium translation
  • .listlangs — List languages available for apertium translation
  • .(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.
  • .t ... lg1-lg2 ( | lg2-lg3 ...) — Apertium translate
  • .unfollow nick — Stop following a user.
  • .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.
  • begiak: esan! — Poll for svn updates ("esan!" means "say!" in Basque)
  • begiak: recent — Get most recent svn/git updates (Begiak's git plugin describes the git part)
  • begiak: info <repo> <rev> — Get information on a given revision of a given SVN or git repository (Begiak's git plugin describes the git part)

General features

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).

  • .8ball — magic 8 ball
  • .away (status) — Sets your status to away
  • .back (status) — Sets your status to being available.
  • .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.
  • .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
  • .hug nick — have begiak hug someone for you.
  • .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 hour 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( .awik )
      • Wikipedia( .wik )
      • Urban Dictionary( .urb )
      • Wikitionary( .w )
      • Clock( .time and .tz )
      • firespeaker quotes( .randquote )
      • Google Search ( .g )
    • 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 point nick India
  • .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
  • .seen — When was the last time a user was seen?
  • .slogan word — Sloganize a word
  • .stache url — Moustachify an image
  • .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
    • .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
  • .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!)

??

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

  • .tfw
  • rule34 disabled
  • lastfm
  • mylife (.fml .mlia)
  • oblique

Wishlist

You can see the old wishlist here

  • mediawiki plugins
    • have better logic for text that's displayed for a page/section (need examples where it fails!)
      • where the first thing is [[…|En français]] (though really, we should have a real template on the wiki for translations)
      • where there's immediately a subsection? (cf. Talk:Begiak)
    • generalise mediawiki plugin?
  • Pollers (svn, git, etc.)
    • show short links to new apertium-stuff posts (poll like with commits?) ☭
      • 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)
  • timezones
    • better mapping of city names to timezones

Help!

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.