chiark / gitweb /
currency command, written by Owen Dunn
authorMatthew Vernon <matthewv@chiark.greenend.org.uk>
Mon, 1 Aug 2011 11:26:35 +0000 (12:26 +0100)
committerMatthew Vernon <matthewv@chiark.greenend.org.uk>
Mon, 1 Aug 2011 11:26:35 +0000 (12:26 +0100)
Servus-chiark.py
commands.py

index 81f8076dfd7ad925c42946b4715a833797cae818..e0eb741ebeb2bcc9a4f3ec4a87f6ae14ed4097b9 100644 (file)
@@ -169,6 +169,7 @@ commands = {"karma": (c.karmaq,karmadb),
            "nsfw": (c.nsfwq,urldb),
            "nws": (c.nsfwq,urldb),
            "units": c.unitq,
+           "currency":c.currencyq,
            "help": c.helpq,
             "say": c.sayq,
             "do": c.doq, 
index d22655e7fab72147322a6a03afba55e1fd1a1d4a..882b67abdfbdd57c6e95efe65d5fd984dd120e79 100644 (file)
@@ -242,6 +242,26 @@ def defineq(bot, cmd, nick, conn, public):
     except IOError: # if the connection times out. This blocks. :(
          bot.automsg(public,nick,"The web's broken. Waah!")
 
+# Look up a currency conversion via xe.com
+def currencyq(bot, cmd, nick, conn, public):
+    args = ' '.join(cmd.split()[1:]).split(' as ')
+    if len(args) != 2 or len(args[0]) != 3 or len(args[1]) != 3:
+        conn.notice(nick, "syntax: currency arg1 as arg2")
+        return
+    targ = ("http://www.xe.com/ucc/convert.cgi?From=%s&To=%s" % (args[0], args[1]))
+    try:
+        currencypage = urllib.urlopen(targ).read()
+        match = re.search(r"(1&nbsp;%s&nbsp;=&nbsp;[\d\.]+&nbsp;%s)" % (args[0],args[1]),currencypage,re.MULTILINE)
+        if match == None:
+            bot.automsg(public,nick,"Dear Chief Secretary, there is no money.")
+        else:
+            conversion = match.group(1);
+            conversion = conversion.replace('&nbsp;',' ');
+            bot.automsg(public,nick,conversion + " (from xe.com)")
+    except IOError: # if the connection times out. This blocks. :(
+        bot.automsg(public,nick,"The web's broken. Waah!")
+                 
+
 ### say to msg/channel            
 def sayq(bot, cmd, nick, conn, public):
     if irc_lower(nick) == irc_lower(bot.owner):