rbot
14 years agomarkov: removed unnecessary mutexes gitorious/1 voker57/markov
Voker57 [Sat, 19 Dec 2009 15:50:56 +0000 (18:50 +0300)] 
markov: removed unnecessary mutexes

These were slowing down learning process greatly and do not make sense as far
as I can see: learning is always done only by single thread anyway.

14 years agomarkov: close registry correctly
Voker57 [Sat, 19 Dec 2009 15:47:43 +0000 (18:47 +0300)] 
markov: close registry correctly

14 years agomarkov: Intern only when it makes sense
Voker57 [Sat, 19 Dec 2009 15:44:41 +0000 (18:44 +0300)] 
markov: Intern only when it makes sense

14 years agomarkov: stats
Voker57 [Sat, 19 Dec 2009 14:36:48 +0000 (17:36 +0300)] 
markov: stats

14 years agomarkov: Moved weighted pick to separate function
Voker57 [Wed, 16 Dec 2009 11:59:40 +0000 (14:59 +0300)] 
markov: Moved weighted pick to separate function

14 years agomarkov: learn message after maybe replying to it.
Voker57 [Wed, 16 Dec 2009 09:39:18 +0000 (12:39 +0300)] 
markov: learn message after maybe replying to it.

14 years agomarkov: bidirectional line generating
Voker57 [Wed, 16 Dec 2009 09:14:11 +0000 (12:14 +0300)] 
markov: bidirectional line generating

14 years agomarkov: ignore word patterns
Voker57 [Mon, 14 Dec 2009 17:13:17 +0000 (20:13 +0300)] 
markov: ignore word patterns

14 years agomarkov: fixed parameter type
Voker57 [Sun, 13 Dec 2009 21:00:58 +0000 (00:00 +0300)] 
markov: fixed parameter type

14 years agomarkov: use not only first two first words for building phrase
Voker57 [Sat, 12 Dec 2009 18:49:33 +0000 (21:49 +0300)] 
markov: use not only first two first words for building phrase

14 years agomarkov: separate probability for answering when adressed
Voker57 [Sat, 12 Dec 2009 18:46:42 +0000 (21:46 +0300)] 
markov: separate probability for answering when adressed

14 years agomarkov: read-only list
Voker57 [Sat, 12 Dec 2009 18:45:03 +0000 (21:45 +0300)] 
markov: read-only list

14 years agomarkov: made delay an option, fixed non-replied status
Voker57 [Sat, 12 Dec 2009 18:35:34 +0000 (21:35 +0300)] 
markov: made delay an option, fixed non-replied status

14 years agoMessage 'prefixed?' method
Giuseppe Bilotta [Mon, 25 Jan 2010 21:05:21 +0000 (22:05 +0100)] 
Message 'prefixed?' method

This is used to tell apart colloquial messages to the bot ("botname,
do this") from classic bot-style interface ("!do this").

14 years agomessage: Allow forcefully prepending of the nick when replying
Alex Legler [Mon, 21 Dec 2009 09:46:03 +0000 (10:46 +0100)] 
message: Allow forcefully prepending of the nick when replying

14 years agoircbot/rfc2812/message: Add banlist message handling
Alex Legler [Fri, 27 Nov 2009 12:35:36 +0000 (13:35 +0100)] 
ircbot/rfc2812/message: Add banlist message handling

14 years agoircbot: Delegate ERR_NOSUCHNICK and ERR_NOSUCHCHANNEL events to plugins
Alex Legler [Wed, 11 Nov 2009 21:37:07 +0000 (22:37 +0100)] 
ircbot: Delegate ERR_NOSUCHNICK and ERR_NOSUCHCHANNEL events to plugins

14 years agohangman: expand %{site} in help
Giuseppe Bilotta [Wed, 16 Dec 2009 22:38:01 +0000 (23:38 +0100)] 
hangman: expand %{site} in help

14 years agospotify: fail on load if Spotify module is not available
Raine Virta [Wed, 16 Dec 2009 20:33:30 +0000 (22:33 +0200)] 
spotify: fail on load if Spotify module is not available

14 years agospotify: handle errors
Raine Virta [Tue, 15 Dec 2009 21:57:51 +0000 (23:57 +0200)] 
spotify: handle errors

14 years agoadd spotify plugin
Raine Virta [Sun, 13 Dec 2009 20:31:14 +0000 (22:31 +0200)] 
add spotify plugin

14 years agolastfm: use Spotify from lib_spotify
Raine Virta [Sun, 13 Dec 2009 20:31:01 +0000 (22:31 +0200)] 
lastfm: use Spotify from lib_spotify

14 years agoadd lib_spotify plugin
Raine Virta [Sun, 13 Dec 2009 20:25:13 +0000 (22:25 +0200)] 
add lib_spotify plugin

14 years agolastfm: wrap artist name with bold in now_playing output
Raine Virta [Wed, 9 Dec 2009 09:14:56 +0000 (11:14 +0200)] 
lastfm: wrap artist name with bold in now_playing output

14 years agolastfm: use CGI.escape on query part of spotify searches
Raine Virta [Wed, 9 Dec 2009 09:11:13 +0000 (11:11 +0200)] 
lastfm: use CGI.escape on query part of spotify searches

14 years agolastfm: remove dashes from Spotify queries
Raine Virta [Mon, 7 Dec 2009 11:09:52 +0000 (13:09 +0200)] 
lastfm: remove dashes from Spotify queries

14 years agolastfm: show spotify links on now_playing if possible
Raine Virta [Sun, 6 Dec 2009 22:39:22 +0000 (00:39 +0200)] 
lastfm: show spotify links on now_playing if possible

14 years agolastfm: fix detection of invalid username on now_playing
Raine Virta [Sun, 6 Dec 2009 22:32:42 +0000 (00:32 +0200)] 
lastfm: fix detection of invalid username on now_playing

14 years agoWhen a translator fails to initialize, map its command to respond the reason
Yaohan Chen [Mon, 30 Nov 2009 19:44:11 +0000 (14:44 -0500)] 
When a translator fails to initialize, map its command to respond the reason

14 years agoSimplify support for using "auto" to detect source language
Yaohan Chen [Mon, 30 Nov 2009 19:19:55 +0000 (14:19 -0500)] 
Simplify support for using "auto" to detect source language

When "auto" is used as source language, Google Translate detects the
source language. However there is no need to hardcode Google Translate
as the only translator supporting "auto". If another translator supports
language detection, we can add "auto" to its supported source languages.
If no translator in default_list supports translating from "auto", the
existing code already responds with a message saying so.

14 years agotranslator: use google's RESTful interface for google_translate
Raine Virta [Sun, 29 Nov 2009 20:07:03 +0000 (22:07 +0200)] 
translator: use google's RESTful interface for google_translate

14 years agotranslator: fix random bug caused by undefined variables
Raine Virta [Sun, 29 Nov 2009 20:00:50 +0000 (22:00 +0200)] 
translator: fix random bug caused by undefined variables

14 years agoirclog: don't kill logger thread on false can_log_on
Giuseppe Bilotta [Fri, 6 Nov 2009 21:52:41 +0000 (22:52 +0100)] 
irclog: don't kill logger thread on false can_log_on

Change a return to a next. Leftover from the refactoring of the logger
into its own thread. Thanks to gelraen for spotting this.

14 years agoremote: bring up to date with changes in MessageMapper
Giuseppe Bilotta [Thu, 5 Nov 2009 11:45:56 +0000 (12:45 +0100)] 
remote: bring up to date with changes in MessageMapper

14 years agoremote: use permit? instead of allow?
Giuseppe Bilotta [Thu, 5 Nov 2009 10:47:56 +0000 (11:47 +0100)] 
remote: use permit? instead of allow?

We cannot signal back to the user from the UI anyway.

14 years agodice: restore + killed by ec5745fa7abd47b8ca12bd783b0759079dff9917
Giuseppe Bilotta [Tue, 3 Nov 2009 19:41:18 +0000 (20:41 +0100)] 
dice: restore + killed by ec5745fa7abd47b8ca12bd783b0759079dff9917

14 years agourban: fix numpages being nil in some cases
Raine Virta [Thu, 22 Oct 2009 11:35:57 +0000 (14:35 +0300)] 
urban: fix numpages being nil in some cases

14 years agotumblr: better guess for group name on ## channels
Giuseppe Bilotta [Sun, 1 Nov 2009 08:58:24 +0000 (09:58 +0100)] 
tumblr: better guess for group name on ## channels

14 years agoIRC Framework: Channel.npname()
Giuseppe Bilotta [Sun, 1 Nov 2009 08:52:30 +0000 (09:52 +0100)] 
IRC Framework: Channel.npname()

Returns the unprefixed part of a channel name

14 years agoRuby 1.9 compat: use String#[0,1] for channel prefixes
Giuseppe Bilotta [Sun, 1 Nov 2009 08:44:01 +0000 (09:44 +0100)] 
Ruby 1.9 compat: use String#[0,1] for channel prefixes

This ensures that checks are correct in both Ruby 1.8 and 1.9

14 years agohttputil.rb: fix http.no_expire_cache being IntegerValue
franz [Tue, 20 Oct 2009 07:07:27 +0000 (09:07 +0200)] 
httputil.rb: fix http.no_expire_cache being IntegerValue

It should be BooleanValue, otherwise false would get converted to 0
which would evaluate to true, meaning cache would never expire.

14 years agourban: fix page detection logic
Raine Virta [Wed, 21 Oct 2009 15:52:41 +0000 (18:52 +0300)] 
urban: fix page detection logic

numpages = s[%r{<div id='paginator'>.*?</div>}m].scan(/\d+/)
                                                ^
                            produces an error when regex returns nil

14 years agourban: fix regex for detecting an undefined term
Raine Virta [Wed, 21 Oct 2009 15:43:56 +0000 (18:43 +0300)] 
urban: fix regex for detecting an undefined term

14 years agoLoop until connected in reconnect()
Giuseppe Bilotta [Tue, 20 Oct 2009 18:22:22 +0000 (20:22 +0200)] 
Loop until connected in reconnect()

Untrapped connect() failures would raise up to the mainloop, causing a
burst of reconnect attempts without delay. Fix by rescuing in
reconnect() and retrying after waiting.

14 years agosearch plugin: handle image in results mogurakun/master
Giuseppe Bilotta [Thu, 24 Sep 2009 20:47:27 +0000 (22:47 +0200)] 
search plugin: handle image in results

Some results from Google can contain <img> tags as their 'text' part, so
use the new ircify_html feature to display them.

14 years agoircify_html: options to handle img tags
Giuseppe Bilotta [Thu, 24 Sep 2009 20:47:07 +0000 (22:47 +0200)] 
ircify_html: options to handle img tags

14 years agosearch plugin: cleanup and fix results Array vs String mismatch
Giuseppe Bilotta [Sat, 12 Sep 2009 19:50:02 +0000 (21:50 +0200)] 
search plugin: cleanup and fix results Array vs String mismatch

14 years agobasics: log the fact that we're not joining default channels
Giuseppe Bilotta [Tue, 8 Sep 2009 22:06:42 +0000 (00:06 +0200)] 
basics: log the fact that we're not joining default channels

This makes it easier to understand why the bot is not joining
when join_after_identify is set to true and the bot is not
identifying.

14 years agoruby 1.9: Exception#to_str
franz [Sun, 6 Sep 2009 08:46:05 +0000 (10:46 +0200)] 
ruby 1.9: Exception#to_str

Since in ruby 1.9 Exception#to_str was removed, change it to to #to_s

14 years agoruby 1.9: fix method_defined?
franz [Thu, 3 Sep 2009 20:02:16 +0000 (22:02 +0200)] 
ruby 1.9: fix method_defined?

method_defined? doesn't search in private methods, and :bound_targets is
private, so change it to respond_to?(method, include_private=true)

14 years agosearch: show long definitions with 'google define:stuff'
Giuseppe Bilotta [Mon, 31 Aug 2009 19:10:59 +0000 (21:10 +0200)] 
search: show long definitions with 'google define:stuff'

14 years agosearch plugin: update gdef
Giuseppe Bilotta [Mon, 31 Aug 2009 18:40:46 +0000 (20:40 +0200)] 
search plugin: update gdef

14 years agotumplr plugin: first draft
Giuseppe Bilotta [Mon, 31 Aug 2009 05:41:38 +0000 (07:41 +0200)] 
tumplr plugin: first draft

14 years agoRevert "utils: try nokogiri/hpricot if hpricot is not available"
Giuseppe Bilotta [Sun, 30 Aug 2009 19:56:11 +0000 (21:56 +0200)] 
Revert "utils: try nokogiri/hpricot if hpricot is not available"

This reverts commit 4ea25eba02d85b81dcee4302375d7d3e08cd52ac.

Not only the patch was missing an essential part, but Nokogiri is not
compatible enough with Hpricot anyway. Incompatibilities include
doc/"style|script" raising an "Undefined namespace prefix" error and the
non-existence of Hpricot::Elements.

If we want to support Nokogiri we'll need to write code for it on
purpose or redesign the Hpricot code so that it only uses the subset
supported by Nokogiri.

14 years agourl plugin: carry htmlinfo filtering output with the url_added event
Giuseppe Bilotta [Sun, 30 Aug 2009 14:42:16 +0000 (16:42 +0200)] 
url plugin: carry htmlinfo filtering output with the url_added event

14 years agohttputil: POST respose '201 Created' is good
Giuseppe Bilotta [Sun, 30 Aug 2009 14:41:08 +0000 (16:41 +0200)] 
httputil: POST respose '201 Created' is good

14 years agoutils: try nokogiri/hpricot if hpricot is not available
Giuseppe Bilotta [Sun, 30 Aug 2009 14:40:22 +0000 (16:40 +0200)] 
utils: try nokogiri/hpricot if hpricot is not available

14 years agosearch plugin: enhance 'lucky' output
Giuseppe Bilotta [Fri, 28 Aug 2009 22:56:22 +0000 (00:56 +0200)] 
search plugin: enhance 'lucky' output

'lucky' search only selects the first hit, so set hit to 1 and
enable 'single' mode. Also rework the results output, and make a custom
'title -- url' for lucky mode.

14 years agosearch plugin: update google search
Giuseppe Bilotta [Fri, 28 Aug 2009 11:02:29 +0000 (13:02 +0200)] 
search plugin: update google search

14 years agourl plugin: only chop non-word characters on 404
Giuseppe Bilotta [Thu, 27 Aug 2009 19:35:06 +0000 (21:35 +0200)] 
url plugin: only chop non-word characters on 404

Chopping everything causes long delays for non-existing pages with
long paths. Since the purpose of the retry-with-chop is to get the
right URL when punctuation is added after it, the solution is to
only chop non-word characters. This has to be done on the
unescaped URL because otherwise non-word characters like " that
expand to %22 will not be chopped.

14 years agoutils: avoid namespace conflict
Giuseppe Bilotta [Thu, 27 Aug 2009 19:06:19 +0000 (21:06 +0200)] 
utils: avoid namespace conflict

The time parsing refactoring introduced an unpleasant namespace
conflict by defining Utils::Time. Eliminate it by renaming it to
ParseTime

14 years agoreaction plugin: shorter help for replies
Giuseppe Bilotta [Thu, 27 Aug 2009 17:48:50 +0000 (19:48 +0200)] 
reaction plugin: shorter help for replies

14 years agoreaction plugin: 'ruby:' replies
Giuseppe Bilotta [Thu, 27 Aug 2009 17:33:07 +0000 (19:33 +0200)] 
reaction plugin: 'ruby:' replies

A reply can be prefixed with 'ruby:' to signify that it's a short ruby
snippet to be eval()ed. Adding these reactions is protected by default.

14 years agogettext: fix empty LANGUAGE env var ruby_19
franz [Mon, 29 Jun 2009 06:26:46 +0000 (08:26 +0200)] 
gettext: fix empty LANGUAGE env var

When LANGUAGE env var is set to empty value, it breaks
gettext in ruby, so we unset it if it's empty.

14 years agoruby 1.9: fix *methods.include?
franz [Sun, 28 Jun 2009 21:14:39 +0000 (23:14 +0200)] 
ruby 1.9: fix *methods.include?

Since in 1.9 methods arrays have symbols instead of strings, fix it by
changing into respond_to? and method_defined?

14 years agoruby 1.9: disable the Singleton monkeypatch for 1.9
franz [Mon, 15 Jun 2009 20:07:45 +0000 (22:07 +0200)] 
ruby 1.9: disable the Singleton monkeypatch for 1.9

this monkeypatch doesn't work on 1.9 - Singleton has no _load method

14 years agoruby 1.9: monkeypatch MonitorMixin and ConditionVariable
franz [Mon, 15 Jun 2009 19:59:56 +0000 (21:59 +0200)] 
ruby 1.9: monkeypatch MonitorMixin and ConditionVariable

ruby 1.9's ConditionVariable#wait is not implemented for timeout != nil,
this patch adds an implementation for it (see ruby-core:15847)

Also, since MonitorMixin is included into TCPSocket in rbot, and
TCPSocket#send != Object#send in ruby 1.9, i changed that to use
__send__.

14 years agoruby 1.9: fix Integer(nil)
franz [Mon, 15 Jun 2009 19:27:41 +0000 (21:27 +0200)] 
ruby 1.9: fix Integer(nil)

in 1.9, Integer(nil) raises TypeError, so we change "%d" to "%s"

14 years agoruby 1.9: convert Exception to string explicitly
franz [Mon, 15 Jun 2009 19:07:35 +0000 (21:07 +0200)] 
ruby 1.9: convert Exception to string explicitly

changed "string + exception" to "string #{e}", the
former yields 'can't convert <e> into String' in ruby 1.9

14 years agoircbot: fix indentation error
franz [Mon, 15 Jun 2009 19:06:56 +0000 (21:06 +0200)] 
ircbot: fix indentation error

14 years agoruby 1.9: get rid of colons in case statements
franz [Mon, 15 Jun 2009 18:53:00 +0000 (20:53 +0200)] 
ruby 1.9: get rid of colons in case statements

ruby 1.9 doesn't support colon as delimiter after when expression,
so we use newline as delimiter.

14 years agoruby 1.9: get rid of Array#nitems
franz [Mon, 15 Jun 2009 18:41:01 +0000 (20:41 +0200)] 
ruby 1.9: get rid of Array#nitems

Array#nitems is gone in ruby 1.9, changed rbot code to use
Array.compact.size, which works in both 1.8 & 1.9

14 years agoUtils: time parsing routines
Giuseppe Bilotta [Wed, 26 Aug 2009 18:52:31 +0000 (20:52 +0200)] 
Utils: time parsing routines

Add time parsing routines to Utils, to be used for human-to-computer
conversion of time offsets. Refactored and enhanced from the remind
plugin.

14 years agoSuppress warnings about unitialized variables
Giuseppe Bilotta [Sun, 16 Aug 2009 14:05:33 +0000 (16:05 +0200)] 
Suppress warnings about unitialized variables

hangman: an unneeded letters accessor was defined
ircbot: restore initializations removed by previous commit

14 years agoircbot: clean up ping timings on connect
Giuseppe Bilotta [Fri, 14 Aug 2009 12:49:42 +0000 (14:49 +0200)] 
ircbot: clean up ping timings on connect

14 years agonickserv: add 'ghosted' to nickserv.nick_avail
Giuseppe Bilotta [Thu, 13 Aug 2009 00:35:55 +0000 (02:35 +0200)] 
nickserv: add 'ghosted' to nickserv.nick_avail

14 years agobasics: UI reconnect command
Giuseppe Bilotta [Thu, 13 Aug 2009 00:17:15 +0000 (02:17 +0200)] 
basics: UI reconnect command

14 years agoBetter handling of MessageMapper failures
Giuseppe Bilotta [Fri, 7 Aug 2009 23:40:18 +0000 (01:40 +0200)] 
Better handling of MessageMapper failures

The plugin fallback method is now passed the list of failures.

Failures themselves are encapsulated in their own data type, making it
easier to handle failures that should inform the user with something
more detailed than the classic 'usage' pattern.

It's still up to the fallback method to make use (e.g. echo) the
relevant messages.

14 years agoextends: bring conjoin to Enumerable atj/master
Giuseppe Bilotta [Mon, 29 Jun 2009 22:41:58 +0000 (00:41 +0200)] 
extends: bring conjoin to Enumerable

Put #conjoin() in the Enumerable module, so that it can be shared by all
enumerables (e.g. ranges). Since #size() is not necessarily present, its
use is replaced by #count(), the result of which is cached because
it can be slow on objects missing #size().

14 years agocore/utils/extends.rb: add #conjoin for Array
Adam James [Tue, 16 Jun 2009 22:27:50 +0000 (23:27 +0100)] 
core/utils/extends.rb: add #conjoin for Array

14 years agolib/rbot/plugins.rb: remove executable bit
Adam James [Tue, 16 Jun 2009 22:27:03 +0000 (23:27 +0100)] 
lib/rbot/plugins.rb: remove executable bit

14 years agosearch: Google changed their WAP address
Giuseppe Bilotta [Fri, 12 Jun 2009 08:20:01 +0000 (10:20 +0200)] 
search: Google changed their WAP address

14 years ago* (gettext) relaxed check for bound_target() existance
dmitry kim [Sat, 6 Jun 2009 13:44:13 +0000 (17:44 +0400)] 
* (gettext) relaxed check for bound_target() existance

14 years ago* (plugins) note: misc cleanups
dmitry kim [Sat, 6 Jun 2009 12:34:53 +0000 (16:34 +0400)] 
* (plugins) note: misc cleanups

14 years ago+ (plugins) note
dmitry kim [Sat, 6 Jun 2009 12:08:30 +0000 (16:08 +0400)] 
+ (plugins) note

14 years agorss plugin: categories fix
Giuseppe Bilotta [Mon, 1 Jun 2009 22:41:56 +0000 (00:41 +0200)] 
rss plugin: categories fix

Don't break when the feed doesn't define categories.

14 years agoseen plugin: check if there's a previous action before using it
Giuseppe Bilotta [Sun, 24 May 2009 11:49:38 +0000 (13:49 +0200)] 
seen plugin: check if there's a previous action before using it

If the registry data is not an Array, there will be no 'before'
information stored, so just use the normal output.

14 years agofactoids: fix error message when no fact is found
Giuseppe Bilotta [Fri, 22 May 2009 15:52:34 +0000 (17:52 +0200)] 
factoids: fix error message when no fact is found

When the search is called as 'facts search' the 'words' parameter is
not defined, so customize the message depending on wether we have that
or 'rx'.

14 years agomultiple plugins: Changes to remove parenthesize warnings.
David Gadling [Thu, 21 May 2009 18:53:19 +0000 (11:53 -0700)] 
multiple plugins: Changes to remove parenthesize warnings.

All of these modules/plugins were generating warnings like this:
  warning: parenthesize argument(s) for future version
This patch should fix all the warnings without affecting functionality.

14 years agosearch: gtime instead of time
Giuseppe Bilotta [Wed, 20 May 2009 12:44:53 +0000 (14:44 +0200)] 
search: gtime instead of time

The time command is already defined by the corresponding plugin, so use
gtime (like gdef and gcalc) for the Google clock.

14 years agosearch: Added a time command that gets the time from Google. !time london
David Gadling [Mon, 30 Mar 2009 18:43:24 +0000 (11:43 -0700)] 
search: Added a time command that gets the time from Google. !time london

14 years agoquiz: Make maximum number of jokers configurable.
David Gadling [Tue, 5 May 2009 21:57:13 +0000 (14:57 -0700)] 
quiz: Make maximum number of jokers configurable.

14 years agoyoutube: fixes for older XML parsers
David Gadling [Mon, 18 May 2009 22:40:38 +0000 (15:40 -0700)] 
youtube: fixes for older XML parsers

REXML in (at least) Ruby 1.8.6 doesn't support the @attr xpath to get
an attribute value. Use the slightly more verbose way of doing it.

14 years agorss plugin: categories
Giuseppe Bilotta [Sat, 16 May 2009 13:59:28 +0000 (15:59 +0200)] 
rss plugin: categories

Some feeds have more than one category. Make all of them available in
the :categories stream key.

14 years agoquiz plugin: simplify local file loading
Giuseppe Bilotta [Mon, 11 May 2009 14:20:18 +0000 (16:20 +0200)] 
quiz plugin: simplify local file loading

14 years agoircbot: reinstante @bot.channels
Giuseppe Bilotta [Wed, 6 May 2009 15:48:22 +0000 (17:48 +0200)] 
ircbot: reinstante @bot.channels

When the new IRC framework was introduced, the old @channels Hash and
its accessor for @bot were dismissed.

Reintroduce it for backwards compatibility.

15 years agotranslator: fix sentences not working with omitted language parameters
Raine Virta [Wed, 29 Apr 2009 22:35:28 +0000 (01:35 +0300)] 
translator: fix sentences not working with omitted language parameters

15 years agotranslator: replace underscores with spaces when showing the translator
Raine Virta [Wed, 29 Apr 2009 21:53:57 +0000 (00:53 +0300)] 
translator: replace underscores with spaces when showing the translator

Because "provided by google_translate" is ugly.

15 years agoremove fish.rb and map translate in translator.rb
Raine Virta [Wed, 29 Apr 2009 21:52:41 +0000 (00:52 +0300)] 
remove fish.rb and map translate in translator.rb

Translator plugin supports babelfish, and getting rid of this plugin
allows us to use ´translate´ command for better purposes.

15 years agotranslator: make source language optional
Raine Virta [Wed, 29 Apr 2009 21:47:12 +0000 (00:47 +0300)] 
translator: make source language optional

In which case we use Google translate's source language auto-detection feature.