Changeset 6083

Show
Ignore:
Timestamp:
02/03/08 06:19:47 (7 years ago)
Author:
drry
Message:

lang/ruby/chokan/trunk/plugins/nico_search.rb
lang/ruby/chokan/trunk/plugins/google_calc.rb
lang/ruby/chokan/trunk/plugins/google_search.rb:

  • 制限をオプションに追加しました。
  • prefix の繰り返し数でも指定可能にしました。(例: ggg shunirr)
  • ほか。
Location:
lang/ruby/chokan/trunk/plugins
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • lang/ruby/chokan/trunk/plugins/google_calc.rb

    r6017 r6083  
    77 
    88        def initialize(config, chokan) 
    9                 HYDE === 156.0 && HYDE === 156.0 && HYDE === 156.0 
     9                HYDE.is_a?(Numeric) && HYDE === 156.0 
    1010                super 
    11                 HYDE === 156.0 && HYDE === 156.0 && HYDE === 156.0 
    1211                @prefix = @config['prefix'] || 'c ' 
    13                 HYDE === 156.0 && HYDE === 156.0 && HYDE === 156.0 
    1412        end 
    1513 
  • lang/ruby/chokan/trunk/plugins/google_search.rb

    r6018 r6083  
    99        def description 
    1010                <<-DESCRIPTION.gsub(/^\s+/, '') 
    11                         このプラグインは API を利用しておらず、真っ黒です。 
    12                         ご利用は自己責任となります。 
     11                        このプラグインは Google の API を利用しておらず、真っ黒です。 
     12                        絶対に利用しないでください。 
     13                        <http://www.google.com/accounts/TOS> 
    1314                DESCRIPTION 
    1415        end 
     
    1819                @prefix = @config['prefix'] || 'g' 
    1920                @number = @config['number'] || 3 
     21                @limit  = @config['limit']  || 10 
    2022        end 
    2123 
    2224        def on_privmsg(prefix, channel, message) 
    2325                case message 
    24                 when /^#{@prefix}(?::(\d+))?\s+(.+)$/ 
    25                         result = search(Regexp.last_match[2], Regexp.last_match[1]) 
     26                when / 
     27                        ^ 
     28                        #{@prefix} 
     29                        (?: :(\d+)            (?# 1: :N) 
     30                          | ((?:#{@prefix})+) (?# 2: repetition of the prefix) 
     31                        )? 
     32                        \s+ 
     33                        (.+)                  (?# 3: search words) 
     34                        $ 
     35                /x 
     36                        words  = $3 
     37                        number = $1 && $1.to_i || 
     38                                 $2 && $2.scan(@prefix).size + 1 
     39                        result = search words, number 
    2640                        result.each { |line| notice(channel, line) } 
    2741                end 
     
    2943 
    3044        private 
    31         def search (string, number=nil) 
    32                 number = number && number.to_i <= @number * 2 \ 
    33                        ? number.to_i : @number 
     45        def search (string, shu=nil) 
    3446                result   = Array.new 
    3547                keywords = string.split(/\s+/).collect{ |item| URI.escape(item, /[^-.!~*'()\w]/n) }.join('+') 
    36                 Net::HTTP.start('www.google.co.jp', 80) do |http| 
    37                         request_uri = "/search?q=#{keywords}&ie=utf-8&oe=utf-8&lr=lang_ja&num=#{number}" 
    38                         response = http.get(request_uri) 
     48                number   = shu.nil? || shu.zero? ? @number : shu <= @limit ? shu : @limit 
     49                uri      = URI.parse("http://www.google.co.jp/search?q=#{keywords}&ie=utf-8&oe=utf-8&lr=lang_ja&num=#{number}") 
     50                Net::HTTP.start(uri.host, uri.port) do |http| 
     51                        response = http.get(uri.request_uri) 
    3952                        if response.code.to_i == 200 then 
    4053                                document = Hpricot(response.body) 
  • lang/ruby/chokan/trunk/plugins/nico_search.rb

    r6064 r6083  
    1111                @prefix = @config['prefix'] || 'ns' 
    1212                @number = @config['number'] || 3 
     13                @limit  = @config['limit']  || 10 
    1314        end 
    1415 
     
    1617                case message 
    1718                when /^#{@prefix}(?::(\d+))?\s+(.+)$/ 
    18                         result = search(Regexp.last_match[2], Regexp.last_match[1]) 
     19                        result = search(Regexp.last_match[2], Regexp.last_match[1] && Regexp.last_match[1].to_i) 
    1920                        result.each { |line| notice(channel, line) } 
    2021                end 
     
    2223 
    2324        private 
    24         def search (string, number=nil) 
    25                 number = number && number.to_i <= @number * 2 \ 
    26                         ? number.to_i : @number 
    27                 result   = Array.new 
    28                 keywords = string.split(/\s+/).collect{ |item| URI.escape(item, /[^-.!~*'()\w]/n) }.join('+') 
    29                 login_uri = "https://secure.nicovideo.jp/secure/login?mail=#{@config['user']}&password=#{@config['pass']}&site=niconico" 
     25        def search (string, shu=nil) 
     26                number     = shu.nil? || shu.zero? ? @number : shu <= @limit ? shu : @limit 
     27                result     = Array.new 
     28                keywords   = string.split(/\s+/).collect{ |item| URI.escape(item, /[^-.!~*'()\w]/n) }.join('+') 
     29                login_uri  = "https://secure.nicovideo.jp/secure/login?mail=#{@config['user']}&password=#{@config['pass']}&site=niconico" 
    3030                search_uri = "http://www.nicovideo.jp/search/#{keywords}?sort=v" 
    3131