X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=data%2Frbot%2Fplugins%2Ftumblr.rb;h=755cbce85c909bee6aa657590ca87b6c3692dcf0;hb=7d2f6b2aa00632f55df231c72cec7661af8845f1;hp=ee19ba237cb60717141a7565b436c1207451c2a6;hpb=941deba9bc3943f1bfcce524c7ac2ec0f270b2ec;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/data/rbot/plugins/tumblr.rb b/data/rbot/plugins/tumblr.rb index ee19ba23..755cbce8 100644 --- a/data/rbot/plugins/tumblr.rb +++ b/data/rbot/plugins/tumblr.rb @@ -9,7 +9,7 @@ # # Submit URLs to channel-specific tumblr accounts # -# TODO support video better (e.g. Vimeo or anything else with embed) +# TODO support other video providers (maybe detect embed codes?) # TODO support image better (e.g. pages with a single big image) # TODO customize caption/description format # TODO do not reblog own posts (maybe?) @@ -31,6 +31,7 @@ class TumblrPlugin < Plugin DESC = "&description=%{desc}" REBLOG = "&post-id=%{id}&reblog-key=%{reblog}" COMMENT = "&comment=%{desc}" + TAGS = "&tags=%{tags}" def help(plugin, topic="") case topic @@ -56,6 +57,7 @@ class TumblrPlugin < Plugin line = "<#{nick}> #{line}" end html_line = line ? CGI.escapeHTML(line) : line + tags = line ? line.scan(/\[([^\]]+)\]/).flatten : [] req = LOGIN % account ready = false @@ -82,7 +84,7 @@ class TumblrPlugin < Plugin req << (data % { :id => id, :reblog => reblog, - :desc => CGI.escape(htmlline) + :desc => CGI.escape(html_line) }) ready = true end @@ -97,7 +99,7 @@ class TumblrPlugin < Plugin data = PHOTO data << CAPTION if line else - if url.match(%r{^http://(\w+\.)?youtube\.com/watch.*}) + if url.match(%r{^http://(\w+\.)?(youtube\.com/watch.*|vimeo.com/\d+)}) data = VIDEO data << CAPTION if line else @@ -105,9 +107,11 @@ class TumblrPlugin < Plugin data << NAME if line end end + data << TAGS unless tags.empty? req << (data % { :src => CGI.escape(url), :desc => CGI.escape(html_line), + :tags => CGI.escape(tags.join(',')), :name => CGI.escape(line) }) end