0.4.0 - GUIs and DOMs

I contemplated making this version 0.3.3, so that no-one got hit by
surprise about the whole “no more user_info” thing, but decided this
was a large enough update to warrant it. The first change, and far away
the most noticeable, is the GUI. Yes, a graphical user interface. You
still call it the same way, and it can still be called with arguments.
Give it a shot! Be sure to watch for notifications (wink wink). There
are still bugs to work on, namely how a loading sentence will appear,
but these will hopefully be sorted. The next big change is how the
modules are loaded. With users being decided later now, and with the
removal of user_info, we’ve had to be smarter about how we load some of
this information, particularly models that have to declare a noun or
verb based on a user settings. Now, modules are loaded after the first
sentence request. This means that the first request may take a fraction
of a second longer, but the rest of the time it will be snappy. The GUI
itself has seen a lick of paint, and it is overall much smoother. Next
up is a new part to the PAUL API: DOM objects. Yes, for all the modules
out there that need to scrape a bit of web page data, this is the
object for you. It can be called in two ways: by initialising it with a
string of HTML (i.e. paul.DOM(html)), and by using
paul.DOM.fromURL(url) to create it from a URL. Either way, you get a
DOM object you can run around. See the documentation inside the PAUL
directory for more info. The Wikipedia module has been cleaned up to
take advantage of the new APIs, and should serve as a shining example
of how to use them. client, server and user_info have been removed as
was indicated. If your module was not updated in time, it will now
crash. The writing has been on the wall for a while, so you should have
moved on. New to the brain is the ability to have simple user-defined
actions. Now, inside the preferences files, is the ability to have Paul
call a script for a given phrase. This means that users can use
“Automator” to have the computer do something for them, and Paul can
act as a launcher for it. Finally, a medley of bug-fixes in math,
paul.get_user_title, loader, discover and the READMEs. As you can
probably tell, some of this has been in the works for a while. At least
it is now released! Enjoy!