Difference between revisions of "Begiak"
Line 11: | Line 11: | ||
* HFST |
* HFST |
||
* vislcg3 |
* vislcg3 |
||
* phenny |
|||
== AI Features == |
== AI Features == |
Revision as of 22:51, 16 January 2013
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.
Contents
Background
Begiak was set up by conor_f for GCI 2012, and several modules were written and fixed by sushain and Qasim. 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
- apertium.svn.sourceforge.net
- HFST
- vislcg3
- phenny
AI 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.
- .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!))
- .following — List people currently being followed.
- .hug nick — have begiak hug someone for you.
- .iso639 lg — look up ISO 639-2 and -3 language codes either by code or by language name.
- .listpairs (lg) — List language pairs available for apertium translation
- .listlangs — List languages available for apertium translation
- .noexceptions (nick) — Tells someone there aren't ever any exceptions
- .t ... lg1-lg2 ( | lg3-lg4 ...) — Apertium translate
- .unfollow nick — Stop following a user.
- begiak: esan! — Poll for svn updates ("esan!" means "say!" in Basque)
- begiak: recent — Get most recent svn updates
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 — Query Google calculator
- .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
- .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)
- .seen — When was the last time a user was seen?
- .slogan word — Sloganize a word
- .stache url — Moustachify an image
- .time — Return the current time
- .title — Get the title of a link
- .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
- .wuvt — Find out what radio station WUVT is currently playing
- .yi — Shows whether it is currently yi or not
- begiak: tell nick something — Send a message to nick
- 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: reload module — reload a module (admin only!)
??
These functions/plugins either don't seem to work or need some figuring out:
- .tfw
- rule34
- lastfm
- mylife
- oblique
Wishlist
- is the githook server automatically loading yet?
- find an easier way (or clean up the current method) to poll for SVN updates
- wiktionary in other languages if there's some way to do it that makes sense (.ety and .w)
- find out why the "posted" command isn't working as expected
- document any command that does not have information
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))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.
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.