X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=data%2Frbot%2Fplugins%2Fimdb.rb;h=58684a721cbfd550a25c837f8a3a82e1887291d8;hb=b640b14d732d457fec50b89738206a911ec9de7a;hp=652d744246c237850f41e49e6d06edaeec5446ad;hpb=b55a8df8f8d3b796991f9770fe27c3452fa471e6;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/data/rbot/plugins/imdb.rb b/data/rbot/plugins/imdb.rb index 652d7442..58684a72 100644 --- a/data/rbot/plugins/imdb.rb +++ b/data/rbot/plugins/imdb.rb @@ -11,8 +11,6 @@ # # License:: MIT license -require 'uri/common' - class Imdb IMDB = "http://us.imdb.com" TITLE_OR_NAME_MATCH = /]*)>([^<]*)<\/a>/ @@ -325,11 +323,11 @@ class Imdb extra = nil if txt.match(/^(.*)\s+\.\.\.\.\s+(.*)$/) role = $1 - extra = "(#{$2})" + extra = "(#{$2.ircify_html})" else role = txt end - next if role_req and role.downcase != role_req.downcase + next if role_req and not role.match(/^#{role_req}/i) if comm extra ||= "" extra += comm.ircify_html if comm @@ -395,7 +393,14 @@ class ImdbPlugin < Plugin :desc => "Whether searching movies by person/year should also return TV series") def help(plugin, topic="") - "imdb => search http://www.imdb.org for : prefix with 'name' or 'title' if you only want to search for people or films respectively, e.g.: imdb name ed wood" + case plugin + when "movies" + "movies by in [as ] => display the movies in the where which was ; can be one of actor, actress, director or anything: if it's omitted, the role is defined by the prefix: \"movies by ...\" implies director, \"movies with ...\" implies actor or actress; the years can be specified as \"in the 60s\" or as \"in 1953\"" + when /characters?/ + "character played by in => show the character played by in movie . characters in => show the actors and characters in movie " + else + "imdb => search http://www.imdb.org for : prefix with 'name' or 'title' if you only want to search for people or films respectively, e.g.: imdb name ed wood. see also movies and characters" + end end attr_reader :i @@ -422,7 +427,7 @@ class ImdbPlugin < Plugin end end if info.length == 1 - m.reply Utils.decode_html_entities info.first.join("\n") + m.reply Utils.decode_html_entities(info.first.join("\n")) else m.reply info.map { |si| Utils.decode_html_entities si.join(" | ") @@ -437,15 +442,16 @@ class ImdbPlugin < Plugin who = params[:who].to_s years = params[:years] role = params[:role] - if not role + if role and role.downcase == 'anything' + role = nil + elsif not role case params[:prefix].intern when :with - role = /actor|actress/ + role = /actor|actress/i when :by - role = /director/ + role = 'director' end end - role = nil if role.downcase = 'anything' name_urls = i.search(who, :type => :name) unless name_urls