GSoC/GCI Archive
Google Code-in 2013 Apertium

phenny queue plugin

completed by: mattr555

mentors: Jonathan Washington

Write a phenny plugin for begiak that allows people to keep personal queues.

You should be able to start a queue, something like this:

.queue toDoList wash dishes, do the laundry, make dinner

You need to be able to reorder the elements:

.queue toDoList swap 0, 2

.queue toDoList swap wash dishes, make dinner

You need to be able to mark things as done:

.queue toDoList remove do the laundry

You need to be able to check the queue, of course:

<firespeaker> .queue toDoList

<begiak> firespeaker: [toDoList] wash dishes, do the laundry, make dinner

Note that the above are just examples of how this plugin might look like in use.  Your implementation doesn't have to look exactly like this, but do consider what makes the most sense.  Creativity welcome.

Also note that the approach taken above is neutral as to ordering (whether the queue is FIFO or LIFO).  It may be best to keep this ambiguous, but consider the possibilities and decide what makes the most sense (in consultation with a mentor).

The queues should be stored in the normal phenny way, as a database of some sort in the ~/.phenny directory.  They should keep track of queues by user, but probably not by channel.

Also, you should be willing to implement an extra feature or two not mentioned here that the mentor may think of while playing with what you write.