Module: Woothee::Misc
- Extended by:
- Util
- Defined in:
- lib/woothee/misc.rb
Class Method Summary collapse
- .challenge_desktoptools(ua, result) ⇒ Object
- .challenge_http_library(ua, result) ⇒ Object
- .challenge_maybe_rss_reader(ua, result) ⇒ Object
- .challenge_smartphone_patterns(ua, result) ⇒ Object
Methods included from Util
update_category, update_map, update_os, update_os_version, update_version
Class Method Details
.challenge_desktoptools(ua, result) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/woothee/misc.rb', line 9 def self.challenge_desktoptools(ua, result) data = case when ua.index('AppleSyndication/') then Woothee::DataSet.get('SafariRSSReader') when ua.index('compatible; Google Desktop/') then Woothee::DataSet.get('GoogleDesktop') when ua.index('Windows-RSS-Platform') then Woothee::DataSet.get('WindowsRSSReader') else nil end return false unless data update_map(result, data) true end |
.challenge_http_library(ua, result) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/woothee/misc.rb', line 33 def self.challenge_http_library(ua, result) data,version = case when ua =~ /^(?:Apache-HttpClient\/|Jakarta Commons-HttpClient\/|Java\/)/o || ua =~ /[- ]HttpClient(\/|$)/o [Woothee::DataSet.get('HTTPLibrary'), 'Java'] when ua.index('Java(TM) 2 Runtime Environment,') [Woothee::DataSet.get('HTTPLibrary'), 'Java'] when ua =~ /^Wget/o [Woothee::DataSet.get('HTTPLibrary'), 'wget'] when ua =~ /^(?:libwww-perl|WWW-Mechanize|LWP::Simple|LWP |lwp-trivial)/o [Woothee::DataSet.get('HTTPLibrary'), 'perl'] when ua =~ /^(?:Ruby|feedzirra|Typhoeus)/o [Woothee::DataSet.get('HTTPLibrary'), 'ruby'] when ua =~ /^(Python-urllib\/|Twisted )/o [Woothee::DataSet.get('HTTPLibrary'), 'python'] when ua =~ /^(?:PHP|WordPress|CakePHP|PukiWiki|PECL::HTTP)(?:\/| |$)/o || ua =~ /(?:PEAR |)HTTP_Request(?: class|2)/o [Woothee::DataSet.get('HTTPLibrary'), 'php'] when ua.index('curl/') == 0 [Woothee::DataSet.get('HTTPLibrary'), 'curl'] else [nil,nil] end return false unless data update_map(result, data) update_version(result, version) true end |
.challenge_maybe_rss_reader(ua, result) ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/woothee/misc.rb', line 60 def self.challenge_maybe_rss_reader(ua, result) data = if ua =~ /rss(?:reader|bar|[-_ \/;()]|[ +]*\/)/oi || ua =~ /headline-reader/oi Woothee::DataSet.get('VariousRSSReader') elsif ua.index('cococ/') Woothee::DataSet.get('VariousRSSReader') else nil end return false unless data update_map(result, data) true end |
.challenge_smartphone_patterns(ua, result) ⇒ Object
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/woothee/misc.rb', line 22 def self.challenge_smartphone_patterns(ua, result) if ua.index('CFNetwork/') data = Woothee::DataSet.get('iOS') update_category(result, data[Woothee::KEY_CATEGORY]) update_os(result, data[Woothee::KEY_NAME]) return true end false end |