Module: Aua::Agents::SearchBot

Defined in:
lib/aua/agents/search_bot.rb

Constant Summary collapse

PATTERN_BING =
/bingbot\/([\d\.]+)/
PATTERN_BAIDU =
/Baiduspider\/?([\d\.]+)?/
PATTERN_GOOGLE =
/Googlebot(-Mobile)?\/?([\d\.]+)?/

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extend?(agent) ⇒ Boolean

Returns:

  • (Boolean)


6
7
8
9
10
11
12
13
# File 'lib/aua/agents/search_bot.rb', line 6

def self.extend?(agent)
  agent.raw =~ PATTERN_BING ||
  agent.app_comments[1] == "Yahoo! Slurp" ||
  agent.raw =~ PATTERN_BAIDU ||
  agent.raw =~ PATTERN_GOOGLE ||
  agent.app == "msnbot" ||
  agent.app == "FLUX-Toolchain"
end

Instance Method Details

#nameObject



19
20
21
22
23
24
25
26
27
28
# File 'lib/aua/agents/search_bot.rb', line 19

def name
  @name ||= begin
    return :Bingbot if raw =~ PATTERN_BING
    return :YahooSlurp if app_comments[1] == "Yahoo! Slurp"
    return :Baiduspider if raw =~ PATTERN_BAIDU
    return $1 ? :GooglebotMobile : :Googlebot if raw =~ PATTERN_GOOGLE
    return :DWDSCrawler if app == "FLUX-Toolchain"
    app.to_sym
  end
end

#typeObject



15
16
17
# File 'lib/aua/agents/search_bot.rb', line 15

def type
  :SearchBot
end

#versionObject



30
31
32
33
34
35
36
37
# File 'lib/aua/agents/search_bot.rb', line 30

def version
  @version ||= begin
    return $1 if raw =~ PATTERN_BING
    return $1  if raw =~ PATTERN_BAIDU
    return $2  if raw =~ PATTERN_GOOGLE
    super
  end
end