diff options
author | Casey Link <unnamedrambler@gmail.com> | 2008-07-04 11:37:50 -0400 |
---|---|---|
committer | Casey Link <unnamedrambler@gmail.com> | 2008-07-04 11:50:11 -0400 |
commit | b64cd2161349e45fba778cf2e25c9ab99d5e9dc0 (patch) | |
tree | f00d848ab10da95c29312f23ed699aeff2fe4f79 | |
parent | 6045de0659fe340a6a95d6ee4984a5a4753ce3cc (diff) |
grouphug plugin: add support for posting confessions with 'create' auth.
-rw-r--r-- | data/rbot/plugins/grouphug.rb | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/data/rbot/plugins/grouphug.rb b/data/rbot/plugins/grouphug.rb index f08f5753..889c4746 100644 --- a/data/rbot/plugins/grouphug.rb +++ b/data/rbot/plugins/grouphug.rb @@ -11,15 +11,41 @@ class GrouphugPlugin < Plugin REG = Regexp.new('<div class="content">\s*<p>(.*?)</p>\s+</div>', Regexp::MULTILINE) + REGPOST = Regexp.new('title>(.*?) \| Group Hug') def initialize super @confessions = Array.new end def help( plugin, topic="" ) - return "Grouphug plugin. Confess! Usage: 'confess' for random confession, 'confess <number>' for specific one." + return _("Grouphug plugin. Confess! Usage: 'confess' for random confession, 'confess <number>' for specific one, 'confess <confession>' to share your own confession, but you must have create auth. Confessions must be at least 10 words.") end + def post_confession(m, params) + c = params[:confession] + if c.length < 10 + diff = 10 - c.length + m.reply _("Confession must be at least 10 words. You need %{m} more.") % {:m => diff} + return + end + uri = "http://beta.grouphug.us/confess" + form_id = "form_id=confession_node_form" + op = "op=Submit" + changed = "changed=" + body = "body=#{c}" + msg = [form_id,body,changed,op].join("&") + + response = bot.httputil.post(uri, msg) + debug response.body + if response.class == Net::HTTPOK + num = response.body.scan(REGPOST) + m.reply _("Confession posted: http://beta.grouphug.us/confessions/%{n}") % {:n => num} + else + m.reply _("I couldn't share your confession.") + end + end + + def confess(m, params) opts = { :cache => false } path = "random" @@ -54,8 +80,11 @@ end plugin = GrouphugPlugin.new +plugin.default_auth('create', false) + plugin.map "grouphug [:num]", :thread => true, :action => :confess, :requirements => { :num => /\d+/ } plugin.map "confess [:num]", :thread => true, :action => :confess, :requirements => { :num => /\d+/ } +plugin.map "confess *confession", :thread => true, :action => :post_confession, :auth_path => 'create' |