亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ysearch.rb

?? yahoo api,包括各版本的
?? RB
字號:
#!/usr/bin/env ruby

# =Ruby API for Yahoo! Search Web Services
#
#  See http://developer.yahoo.net/
#  (C) 2005-2006 Premshree Pillai
#  http://premshree.livejournal.com/ 
#
# === LICENSE:
#   
#  BSD(-compatible)
#
# === EXAMPLE:
#  obj = WebSearch.new('YOUR-APP_ID', 'query')
#  obj.parse_results #returns a result hash
#
# === HISTORY:
#  - 0.2 JUN-29-2005:
#	- MyWeb2 support (tag search, url search, related tags)
#  - 0.1 MAR-01-2005: Initial release
#
# === BUGS?
#  premshree.pillai at gmail dot com
#
# === TODO:
#  - Clean-up code
#  - Refactor

require 'net/http'
require 'rexml/document'
include REXML

$AUTHOR = "Premshree Pillai"
$VERSION = "0.2"
$DATE = "2005-06-29 10:12"

##
# Mapping between various Yahoo! Search services
##
$SERVICES = {
	    'video_search' => ['VideoSearchService', 'videoSearch', 'Video Search'],
            'image_search' => ['ImageSearchService', 'imageSearch', 'Image Search'],
            'web_search' => ['WebSearchService', 'webSearch', 'Web Search'],
            'news_search' => ['NewsSearchService', 'newsSearch', 'News Search'],
            'web_related' => ['WebSearchService', 'relatedSuggestion', 'Web Search Related Suggestion'],
            'spelling' => ['WebSearchService', 'spellingSuggestion', 'Web Search Spelling Suggestion'],
	    'myweb2_url'	=> ['MyWebService', 'urlSearch', 'URL search'],
	    'myweb2_tag'	=> ['MyWebService', 'tagSearch', 'Tag search'],
	    'myweb2_related'	=> ['MyWebService', 'relatedTags', 'Related tags'],
}

##
# The base class. All other search classes
# inherit from this.
##
class Search
    def initialize(app_id)
	@NAME = "Search"
	@SERVICE = "Search"
	@PROTOCOL = "http"
	@SERVER = "search.yahooapis.com"
	@VERSION = "V1"
	@NEXT_QID = 1

        @service = { "name" => @NAME,
                      "protocol" => @PROTOCOL,
                      "server" => @SERVER,
                      "version" => @VERSION,
                      "service" => @SERVICE }

        @app_id = app_id
        @valid_params = {}

        @qid = @NEXT_QID
        @NEXT_QID = @NEXT_QID + 1

        init_valid_params()
        reset()
    end

    def init_valid_params()
	# todo
    end

    def reset()
        @params = {}
        @url = nil
    end

    def get_svc_name()
        return @service["name"]
    end
    def set_svc_name(value)
        @service["name"] = value
    end

    def get_svc_protocol()
        return @service["protocol"]
    end
    def set_svc_protocol(value)
        @service["protocol"] = value
    end

    def get_svc_service()
        return @service["service"]
    end
    def set_svc_service(value)
        @service["service"] = value
    end

    def get_svc_server()
        return @service["server"]
    end
    def set_svc_server(value)
        @service["server"] = value
    end

    def get_svc_version()
        return @service["version"]
    end
    def set_svc_version(value)
        @service["version"] = value
    end

    def get_app_id()
        return @app_id
    end
    def set_app_id(app_id)
        if app_id.class.to_s == 'String' and app_id =~ /^[a-zA-Z0-9 _()\[\]*+\-=,.:\\\@]{8,40}$/
	    begin
                @app_id = app_id
		#update(@params, {'app_id' => @app_id})
	    rescue
		p "'app_id' can only contain a-zA-Z0-9 _()\[\]*+\-=,.:\\\@"
	    end
	end
    end

    def set_params(args)
	 args.each { |param, value|
	    set_param(param, value)
	 }
    end

    def get_param(param)
        if @params.keys.include?(param)
            return @params[param]
        else
            return @valid_params[param][1]
	end
    end

    def set_param(param, value)
    	@params[param] = value
    end

    def update(var, hsh)
	hsh.each { |param, value|
	    var[param] = value
	}
    end
    def encode_params()
    	encoded_params = ''
	@params.each { |param, value|
	    encoded_params = encoded_params + "#{param}=#{value}&"
	}
	return URI.encode(encoded_params)
    end

    def get_valid_params()
        return @valid_params.keys
    end

    def get_url()
        params = @params
        update(@params, {"appid" => @app_id})
        @url = "#{@service['protocol']}://#{@service['server']}/#{@service['service']}/#{@service['version']}/#{@service['name']}?" + encode_params
        return @url
    end

    def open()
        url = get_url()
	resp = Net::HTTP.get_response(URI.parse(url))
	@data = resp.body
        return @data
    end

    # converts all the XML that the webservice returns
    # into Ruby data structs
    def parse_results()
    	open()
	xml_string = @data
	doc = Document.new(xml_string)
	results = []
	results_nos = []
	results_titles = []
	results_summaries = []
	results_urls = []
	results_clickurls = []
	results_moddates = []
	results_mimetypes = []

	# myweb2
	results_users = []
	results_notes = []
	results_dates = []
	results_tags = []
	results_freqs = []

	doc.elements.each('ResultSet/Result') { |element|
			results_nos << ''
	}
	doc.elements.each('ResultSet/Result/Title') { |element|
			results_titles << element.text
	}
	doc.elements.each('ResultSet/Result/Summary') { |element|
			results_summaries << element.text
	}
	doc.elements.each('ResultSet/Result/Url') { |element|
			results_urls << element.text
	}
	doc.elements.each('ResultSet/Result/ClickUrl') { |element|
			results_clickurls << element.text
	}
	doc.elements.each('ResultSet/Result/ModificationDate') { |element|
			results_moddates << element.text
	}
	doc.elements.each('ResultSet/Result/MimeType') { |element|
			results_mimetypes << element.text
	}
	doc.elements.each('ResultSet/Result/User') { |element|
			results_users << element.text
	}
	doc.elements.each('ResultSet/Result/Note') { |element|
			results_notes << element.text
	}
	doc.elements.each('ResultSet/Result/Date') { |element|
			results_dates << element.text
	}
	doc.elements.each('ResultSet/Result/Tag') { |element|
			results_tags << element.text
	}
	doc.elements.each('ResultSet/Result/Frequency') { |element|
			results_freqs << element.text
	}
	count = 0
	results_nos.length.times {
		# TODO: return keys that have values
		results << {
			'Title' => results_titles[count],
			'Summary' => results_summaries[count],
			'Url' => results_urls[count],
			'ClickUrl' => results_clickurls[count],
			'ModificationDate' => results_moddates[count],
			'MimeType' => results_mimetypes[count],
			'User' => results_users[count],
			'Note' => results_notes[count],
			'Date' => results_dates[count],
			'Tag' => results_tags[count],
			'Frequency' => results_freqs[count],
		}
		count = count + 1
	}
	return results
    end

    # basic parameters
    def get_query()
        return get_param("query")
    end
    def set_query(value)
        set_param("query", value)
    end

    def get_results()
        return get_param("results")
    end
    def set_results(value)
        set_param("results", value)
    end

    def get_start()
        return get_param("start")
    end
    def set_start(value)
        set_param("start", value)
    end

    def set_tag(value)
        set_param("tag", value)
    end

    def set_yid(value)
        set_param("yid", value)
    end

    def set_sort(value)
        set_param("sort", value)
    end

    def set_reverse_sort(value)
        set_param("reverse_sort", value)
    end

    def set_url(value)
        set_param("url", value)
    end

    # common params
    def get_type()
        return get_param("type")
    end
    def set_type(value)
        set_param("type", value)
    end

    def get_format()
        return get_param("format")
    end
    def set_format(value)
        set_param("format", value)
    end

    def get_adult_ok()
        return get_param("adult_ok")
    end
    def set_adult_ok(value)
        set_param("adult_ok", value)
    end
end



class VideoSearch < Search
    def initialize(app_id, query, type='all', results=10, start=1, format=nil, adult_ok=0)
        super Search
    	set_app_id(app_id)
    	set_svc_service($SERVICES['video_search'][0])
	set_svc_name($SERVICES['video_search'][1])
	set_query(query)
	set_type(type)
	set_results(results)
	set_start(start)
	set_format(format)
	set_adult_ok(adult_ok)
    end
end



class ImageSearch < Search
    def initialize(app_id, query, type='all', results=10, start=1, format=nil, adult_ok=0)
        super Search
    	set_app_id(app_id)
    	set_svc_service($SERVICES['image_search'][0])
	set_svc_name($SERVICES['image_search'][1])
	set_query(query)
	set_type(type)
	set_results(results)
	set_start(start)
	set_format(format)
	set_adult_ok(adult_ok)
    end
end



class WebSearch < Search
    def initialize(app_id, query, type='all', results=10, start=1, format=nil, adult_ok=0)
        super Search
    	set_app_id(app_id)
    	set_svc_service($SERVICES['web_search'][0])
	set_svc_name($SERVICES['web_search'][1])
	set_query(query)
	set_type(type)
	set_results(results)
	set_start(start)
	set_format(format)
	set_adult_ok(adult_ok)
    end

    def get_similar_ok()
        return get_param("similar_ok")
    end
    def set_similar_ok(value)
        set_param("similar_ok", value)
    end

    def get_language()
        return get_param("language")
    end
    def set_language(value)
        set_param("language", value)
    end
end



class NewsSearch < Search
    def initialize(app_id, query, type='all', results=10, start=1, format=nil, adult_ok=0)
        super Search
    	set_app_id(app_id)
    	set_svc_service($SERVICES['news_search'][0])
	set_svc_name($SERVICES['news_search'][1])
	set_query(query)
	set_type(type)
	set_results(results)
	set_start(start)
	set_format(format)
	set_adult_ok(adult_ok)
    end

    def get_type()
        return get_param("type")
    end
    def set_type(value)
        set_param("type", value)
    end

    def get_sort()
        return get_param("sort")
    end
    def set_sort(value)
        set_param("sort", value)
    end

    def get_language()
        return get_param("language")
    end
    def set_language(value)
        set_param("language", value)
    end
end



class RelatedSuggestion < Search
    def initialize(app_id, query, type='all', results=10, start=1, format=nil, adult_ok=0)
        super Search
    	set_app_id(app_id)
    	set_svc_service($SERVICES['web_related'][0])
	set_svc_name($SERVICES['web_related'][1])
	set_query(query)
	set_type(type)
	set_results(results)
	set_start(start)
	set_format(format)
	set_adult_ok(adult_ok)
    end
end



class SpellingSuggestion < Search
    def initialize(app_id, query, type='all', results=10, start=1, format=nil, adult_ok=0)
        super Search
    	set_app_id(app_id)
    	set_svc_service($SERVICES['spelling'][0])
	set_svc_name($SERVICES['spelling'][1])
	set_query(query)
	set_type(type)
	set_results(results)
	set_start(start)
	set_format(format)
	set_adult_ok(adult_ok)
    end

    def get_query()
        return get_param("query")
    end
    def set_query(value)
        set_param("query",value)
    end
end


##
# MyWeb2
##
class UrlSearch < Search
    def initialize(app_id, tag, yahooid='', sort='date', reverse_sort=0, results=10, start=1)
        super Search
    	set_app_id(app_id)
    	set_svc_service($SERVICES['myweb2_url'][0])
	set_svc_name($SERVICES['myweb2_url'][1])
	set_tag(tag)
	set_yid(yahooid)
	set_sort(sort)
	set_reverse_sort(reverse_sort)
	set_results(results)
	set_start(start)
    end
end



class TagSearch < Search
    def initialize(app_id, url, yahooid='', sort='date', reverse_sort=0, results=10, start=1)
        super Search
    	set_app_id(app_id)
    	set_svc_service($SERVICES['myweb2_tag'][0])
	set_svc_name($SERVICES['myweb2_tag'][1])
	set_url(url)
	set_yid(yahooid)
	set_sort(sort)
	set_reverse_sort(reverse_sort)
	set_results(results)
	set_start(start)
    end
end



class RelatedTags < Search
    def initialize(app_id, tag, yahooid='', sort='date', reverse_sort=0, results=10, start=1)
        super Search
    	set_app_id(app_id)
    	set_svc_service($SERVICES['myweb2_related'][0])
	set_svc_name($SERVICES['myweb2_related'][1])
	set_tag(tag)
	set_yid(yahooid)
	set_sort(sort)
	set_reverse_sort(reverse_sort)
	set_results(results)
	set_start(start)
    end
end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费视频在线观看| 国产三级三级三级精品8ⅰ区| 国产一区二区三区电影在线观看| 亚洲国产日产av| 一区二区三区在线免费| 亚洲午夜国产一区99re久久| 中文字幕一区二区三区不卡在线 | 91精品国产综合久久福利| 欧美三片在线视频观看| 日韩欧美一二区| 精品国产凹凸成av人网站| 久久精品一区二区三区不卡| 国产精品乱人伦中文| 亚洲另类在线一区| 免费观看日韩电影| 成人精品免费视频| 在线亚洲免费视频| 91麻豆精品国产91久久久更新时间| 欧美美女黄视频| 久久先锋影音av| 亚洲黄网站在线观看| 日韩精彩视频在线观看| 成a人片亚洲日本久久| 欧美人牲a欧美精品| 国产精品久久久久久久久果冻传媒 | 国产一区二区三区免费观看| av一区二区三区在线| 日韩欧美国产一区二区在线播放 | 偷拍日韩校园综合在线| 欧洲激情一区二区| 亚洲chinese男男1069| 欧美亚日韩国产aⅴ精品中极品| 亚洲综合色区另类av| 在线不卡a资源高清| 国产一区二区三区免费| 国产精品欧美一区喷水| 欧美中文字幕亚洲一区二区va在线 | 99视频在线观看一区三区| 午夜视频一区在线观看| 国产成人在线视频网址| 日韩精品一区二区在线观看| 日韩国产高清在线| 欧美裸体bbwbbwbbw| 日韩电影在线观看网站| 日韩欧美一级二级三级| 激情图片小说一区| 国产亚洲综合在线| a在线欧美一区| 亚洲一级二级在线| 欧美日韩视频在线第一区| 丝袜美腿亚洲一区| 日韩精品在线一区| 99久久99久久免费精品蜜臀| 中文字幕一区二区三区视频| 色老头久久综合| 美女视频一区在线观看| 久久久久久久久久电影| 99re热这里只有精品视频| 婷婷丁香激情综合| 国产精品午夜电影| 欧美伦理影视网| 高清国产一区二区| 日韩高清在线一区| 国产在线不卡视频| 亚洲综合自拍偷拍| 99re66热这里只有精品3直播| 国产精品欧美久久久久无广告| 成人短视频下载| 久久久99久久精品欧美| 亚洲18女电影在线观看| 精品88久久久久88久久久| 美女在线观看视频一区二区| 国产午夜精品一区二区| 欧美日韩国产区一| 成人免费av网站| 日韩影院免费视频| 亚洲精品免费电影| 国产精品免费人成网站| 日韩精品一区二区三区在线播放 | 国产在线播精品第三| 天堂一区二区在线| 亚洲激情欧美激情| 亚洲欧美日韩综合aⅴ视频| 久久婷婷成人综合色| 日韩欧美国产综合| 这里只有精品电影| 欧美精品第1页| 欧美日韩在线播| 99久久精品国产麻豆演员表| 国产美女在线精品| 国产高清一区日本| 成人免费看黄yyy456| 高清视频一区二区| 白白色亚洲国产精品| 91亚洲精品一区二区乱码| 91麻豆国产精品久久| 色域天天综合网| 91福利国产成人精品照片| 91久久一区二区| 欧美午夜宅男影院| 精品久久久久av影院| 国产欧美精品一区二区色综合朱莉 | 91在线国产福利| 欧美日韩国产不卡| 精品国产乱码久久久久久影片| 久久精品在线免费观看| 亚洲日本在线观看| 麻豆精品国产91久久久久久| 国产成人av资源| 欧美日韩亚洲国产综合| 久久久久97国产精华液好用吗| 中文字幕日韩av资源站| 日本在线不卡视频| 色哟哟在线观看一区二区三区| 欧美日韩国产免费| 日韩一区日韩二区| 美女一区二区久久| 欧美日韩黄视频| 成人免费在线观看入口| 国产一区视频在线看| 欧美日韩中文国产| 亚洲一区二区三区不卡国产欧美| 国产精品一区二区无线| 777久久久精品| 亚洲成人你懂的| 色成年激情久久综合| 国产欧美日韩综合精品一区二区| 午夜欧美电影在线观看| 在线亚洲一区观看| 亚洲最大成人综合| 久久久久久久久久电影| 中文av一区特黄| 国产一区二区三区高清播放| 26uuu另类欧美| 麻豆精品在线观看| 欧美va亚洲va| 国内精品视频666| 国产亚洲一区二区三区在线观看| 青椒成人免费视频| 亚洲精品在线免费播放| 美腿丝袜亚洲综合| 久久伊人蜜桃av一区二区| 国产一区二区成人久久免费影院| 久久久不卡网国产精品二区| 国产一区二区视频在线播放| 国产欧美精品一区aⅴ影院 | 91在线免费看| 亚洲成人动漫av| 精品国产青草久久久久福利| 国产在线看一区| 亚洲欧美偷拍三级| 欧美一区二区三区在线电影| 国产精品小仙女| 一区二区成人在线视频| 精品久久久久久久久久久久久久久久久| 精品一区二区三区影院在线午夜| 中文字幕av资源一区| 色偷偷久久一区二区三区| 经典三级在线一区| 一区二区三区精品| 国产精品美女视频| 欧美电影免费提供在线观看| 一本色道久久综合亚洲aⅴ蜜桃| 日韩av中文在线观看| 亚洲区小说区图片区qvod| 欧美哺乳videos| 欧美精品 国产精品| 99久久国产综合精品色伊| 精品一区二区三区在线观看| 亚洲精品国产一区二区三区四区在线| 精品国产一二三| 日韩女优毛片在线| 日韩视频在线一区二区| 欧美日韩一区二区三区在线看| 成人av网址在线| 91啪在线观看| 91麻豆福利精品推荐| 97久久精品人人做人人爽| 国产精品91xxx| 成人免费视频一区二区| 粉嫩蜜臀av国产精品网站| 国产一区二区三区在线观看精品 | 国产精品一区二区久激情瑜伽| 欧美日韩精品专区| 国产亚洲一区二区三区在线观看| 亚洲一区二区三区视频在线| 国产激情视频一区二区三区欧美 | 欧美美女喷水视频| 国产精品麻豆久久久| 久草热8精品视频在线观看| 91福利社在线观看| 久久久久综合网| 国产在线观看一区二区| 91精品国产高清一区二区三区| 亚洲欧美偷拍三级| 99麻豆久久久国产精品免费| 久久综合一区二区| 国产资源精品在线观看| 日韩欧美国产一区在线观看| 日韩在线一二三区|