browser 2.5.2 → 5.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. checksums.yaml +5 -5
  2. data/.github/ISSUE_TEMPLATE.md +1 -1
  3. data/.github/workflows/tests.yml +57 -0
  4. data/.gitignore +1 -0
  5. data/.prettierignore +1 -0
  6. data/.rubocop.yml +22 -107
  7. data/CHANGELOG.md +192 -11
  8. data/FUNDING.yml +3 -0
  9. data/Gemfile +2 -0
  10. data/README.md +139 -89
  11. data/Rakefile +11 -3
  12. data/bot_exceptions.yml +2 -0
  13. data/bots.yml +302 -247
  14. data/browser.gemspec +12 -7
  15. data/gemfiles/rails6_0.gemfile +6 -0
  16. data/gemfiles/rails6_1.gemfile +6 -0
  17. data/lib/browser/accept_language.rb +12 -9
  18. data/lib/browser/action_controller.rb +1 -3
  19. data/lib/browser/aliases.rb +5 -5
  20. data/lib/browser/alipay.rb +2 -2
  21. data/lib/browser/base.rb +101 -19
  22. data/lib/browser/blackberry.rb +3 -3
  23. data/lib/browser/bot/empty_user_agent_matcher.rb +11 -0
  24. data/lib/browser/bot/keyword_matcher.rb +11 -0
  25. data/lib/browser/bot/known_bots_matcher.rb +11 -0
  26. data/lib/browser/bot.rb +39 -27
  27. data/lib/browser/browser.rb +65 -54
  28. data/lib/browser/chrome.rb +18 -5
  29. data/lib/browser/detect_version.rb +5 -5
  30. data/lib/browser/device/android.rb +20 -0
  31. data/lib/browser/device/blackberry_playbook.rb +1 -1
  32. data/lib/browser/device/ipad.rb +1 -1
  33. data/lib/browser/device/iphone.rb +1 -1
  34. data/lib/browser/device/ipod_touch.rb +1 -1
  35. data/lib/browser/device/kindle.rb +1 -1
  36. data/lib/browser/device/kindle_fire.rb +1 -1
  37. data/lib/browser/device/playstation3.rb +1 -1
  38. data/lib/browser/device/playstation4.rb +1 -1
  39. data/lib/browser/device/psp.rb +1 -1
  40. data/lib/browser/device/psvita.rb +1 -1
  41. data/lib/browser/device/samsung.rb +33 -0
  42. data/lib/browser/device/surface.rb +2 -4
  43. data/lib/browser/device/switch.rb +19 -0
  44. data/lib/browser/device/tv.rb +1 -1
  45. data/lib/browser/device/unknown.rb +1 -1
  46. data/lib/browser/device/wii.rb +1 -1
  47. data/lib/browser/device/wiiu.rb +1 -1
  48. data/lib/browser/device/xbox_360.rb +1 -1
  49. data/lib/browser/device/xbox_one.rb +1 -1
  50. data/lib/browser/device.rb +47 -30
  51. data/lib/browser/duck_duck_go.rb +22 -0
  52. data/lib/browser/edge.rb +6 -2
  53. data/lib/browser/electron.rb +2 -2
  54. data/lib/browser/facebook.rb +4 -2
  55. data/lib/browser/firefox.rb +2 -2
  56. data/lib/browser/google_search_app.rb +21 -0
  57. data/lib/browser/huawei_browser.rb +21 -0
  58. data/lib/browser/instagram.rb +21 -0
  59. data/lib/browser/internet_explorer.rb +9 -10
  60. data/lib/browser/maxthon.rb +21 -0
  61. data/lib/browser/meta/base.rb +0 -1
  62. data/lib/browser/meta/generic_browser.rb +1 -3
  63. data/lib/browser/meta.rb +12 -13
  64. data/lib/browser/micro_messenger.rb +2 -2
  65. data/lib/browser/middleware/context/additions.rb +1 -1
  66. data/lib/browser/middleware.rb +4 -3
  67. data/lib/browser/miui_browser.rb +21 -0
  68. data/lib/browser/nokia.rb +2 -2
  69. data/lib/browser/opera.rb +2 -2
  70. data/lib/browser/otter.rb +2 -2
  71. data/lib/browser/phantom_js.rb +2 -2
  72. data/lib/browser/platform/adobe_air.rb +2 -2
  73. data/lib/browser/platform/android.rb +1 -1
  74. data/lib/browser/platform/base.rb +3 -2
  75. data/lib/browser/platform/blackberry.rb +2 -2
  76. data/lib/browser/platform/chrome_os.rb +1 -1
  77. data/lib/browser/platform/firefox_os.rb +1 -1
  78. data/lib/browser/platform/ios.rb +17 -4
  79. data/lib/browser/platform/kai_os.rb +23 -0
  80. data/lib/browser/platform/linux.rb +1 -1
  81. data/lib/browser/platform/mac.rb +5 -3
  82. data/lib/browser/platform/{other.rb → unknown.rb} +3 -3
  83. data/lib/browser/platform/windows.rb +2 -2
  84. data/lib/browser/platform/windows_mobile.rb +1 -1
  85. data/lib/browser/platform/windows_phone.rb +1 -1
  86. data/lib/browser/platform.rb +37 -28
  87. data/lib/browser/qq.rb +5 -5
  88. data/lib/browser/rails.rb +11 -5
  89. data/lib/browser/safari.rb +19 -4
  90. data/lib/browser/samsung_browser.rb +21 -0
  91. data/lib/browser/snapchat.rb +21 -0
  92. data/lib/browser/sougou_browser.rb +24 -0
  93. data/lib/browser/sputnik.rb +21 -0
  94. data/lib/browser/uc_browser.rb +2 -2
  95. data/lib/browser/{generic.rb → unknown.rb} +6 -8
  96. data/lib/browser/version.rb +1 -1
  97. data/lib/browser/weibo.rb +2 -2
  98. data/lib/browser/yandex.rb +21 -0
  99. data/lib/browser.rb +2 -2
  100. data/samsung.yml +138 -0
  101. data/search_engines.yml +2 -2
  102. data/test/browser_test.rb +42 -10
  103. data/test/rails_test.rb +10 -0
  104. data/test/sample_app.rb +14 -0
  105. data/test/test_helper.rb +9 -1
  106. data/test/ua.yml +147 -109
  107. data/test/ua_bots.yml +98 -45
  108. data/test/ua_search_engines.yml +7 -6
  109. data/test/unit/accept_language_test.rb +24 -0
  110. data/test/unit/adobe_air_test.rb +1 -1
  111. data/test/unit/alipay_test.rb +6 -0
  112. data/test/unit/blackberry_test.rb +0 -6
  113. data/test/unit/bots_test.rb +37 -27
  114. data/test/unit/chrome_test.rb +8 -19
  115. data/test/unit/console_test.rb +2 -2
  116. data/test/unit/device_test.rb +60 -3
  117. data/test/unit/duck_duck_go_test.rb +37 -0
  118. data/test/unit/edge_test.rb +49 -5
  119. data/test/unit/facebook_test.rb +20 -0
  120. data/test/unit/firefox_test.rb +0 -3
  121. data/test/unit/google_search_app_test.rb +54 -0
  122. data/test/unit/huawei_browser_test.rb +25 -0
  123. data/test/unit/instagram_test.rb +30 -0
  124. data/test/unit/internet_explorer_test.rb +0 -12
  125. data/test/unit/ios_test.rb +7 -5
  126. data/test/unit/kai_os_test.rb +31 -0
  127. data/test/unit/kindle_test.rb +0 -2
  128. data/test/unit/maxthon_test.rb +25 -0
  129. data/test/unit/meta_test.rb +10 -2
  130. data/test/unit/micro_messenger_test.rb +21 -6
  131. data/test/unit/miui_browser_test.rb +25 -0
  132. data/test/unit/opera_test.rb +1 -2
  133. data/test/unit/platform_test.rb +34 -8
  134. data/test/unit/qq_test.rb +12 -0
  135. data/test/unit/safari_test.rb +12 -7
  136. data/test/unit/samsung_browser_test.rb +23 -0
  137. data/test/unit/snapchat_test.rb +40 -0
  138. data/test/unit/sougou_browser_test.rb +41 -0
  139. data/test/unit/sputnik_test.rb +22 -0
  140. data/test/unit/yandex_test.rb +37 -0
  141. metadata +83 -26
  142. data/.bundle/config +0 -2
  143. data/.travis.yml +0 -16
  144. data/bin/rake +0 -17
  145. data/gemfiles/rails4.gemfile +0 -4
  146. data/lib/browser/meta/modern.rb +0 -11
data/bots.yml CHANGED
@@ -1,249 +1,304 @@
1
- 200pleasebot: "200PleaseBot"
2
- 360spider: "360Spider"
3
- abot: "CrawlDaddy, abot"
4
- addthis: "AddThis"
5
- adldxbot: "Microsoft Bing Ads"
6
- admantx: "ADmantX Platform Semantic Analyzer"
7
- adsbot-google: "Google Adwords"
8
- advbot: "AdvBot"
9
- ahrefsbot: "Ahrefs backlinks research tool"
10
- alexa: "Alexa Crawler"
11
- apache-httpclient: "Java http library"
12
- apachebench: "ApacheBench (ab)"
1
+ ---
2
+ 200pleasebot: 200PleaseBot
3
+ 360spider: 360Spider
4
+ abot: CrawlDaddy, abot
5
+ addthis: AddThis
6
+ adldxbot: Microsoft Bing Ads
7
+ admantx: ADmantX Platform Semantic Analyzer
8
+ adsbot-google: Google Adwords
9
+ adstxtcrawler: AdsTxtCrawler
10
+ advbot: AdvBot
11
+ ahrefsbot: Ahrefs backlinks research tool
12
+ alexa: Alexa Crawler
13
+ anderspink: AndersPinkBot
14
+ apache-httpclient: Java http library
15
+ apachebench: ApacheBench (ab)
13
16
  apis-google: APIs-Google
14
- appengine-google: "Google App Engine"
15
- applebot: "Apple Bot"
16
- archive.org_bot: "Internet Archive (archive.org)"
17
- ask jeeves: "Ask Jeeves"
18
- asynchttpclient: "Java http and WebSocket client library"
19
- awe.sm: "Awe.sm URL expander"
20
- baidu: "Baidu"
21
- bdcbot: "Big Data Corp"
22
- bingbot: "Microsoft Bing"
23
- bingpreview: "Microsoft Bing preview"
24
- bitlybot: "bit.ly bot"
25
- blekkobot: "Blekkobot"
26
- blexbot: "BLEXBot (webmeup)"
27
- bot@linkfluence.net: "Linkfluence bot"
28
- bufferbot: "BufferBot"
29
- buibui-checkbot: "buibui"
30
- butterfly: "Topsy Labs"
31
- buzztalk: "buzztalk"
32
- catchbot: "CatchBot (catchbot.com)"
33
- check_http: "Nagios monitor"
34
- cliqzbot: "Cliqzbot"
35
- cmradar/0.1: "CMRadar/0.1"
36
- coldfusion: "ColdFusion http library"
37
- commoncrawl: "CCBot"
38
- comodo ssl checker: 'COMODO SSL Checker'
39
- comodo-webinspector-crawler: "Comodo"
40
- crowsnest: "Crowsnest"
41
- curabot: "cura.yt"
42
- curl: "curl unix CLI http client"
43
- dap/nethttp: "DAP/NetHTTP"
44
- datagnionbot: "datagnion.com/bot.html"
45
- daumoa: "Korean portal and search engine indexing bot"
46
- developers.google.com/+/web/snippet/: "Google Plus"
47
- diffbot: "Diffbot"
48
- digitalpersona fingerprint software: "HP Fingerprint scanner"
49
- domain re-animator bot: "Domain Re-Animator Bot"
50
- domainsbot: "DomainsBot"
51
- domaintunocrawler: "DomainTuno"
52
- dotbot: "Dot Bot"
53
- duckduck: "Duck Duck Go"
54
- elb-healthchecker: "AWS ELB HealthChecker"
55
- embedly: "Embedly"
56
- eoaagent: "EOAAgent"
57
- eventmachine httpclient: "Ruby http library"
58
- everyonesocialbot: "EveryoneSocial"
59
- evrinid: "Evri bot"
60
- exabot: "Exalead's bot"
61
- exaleadcloudview: "ExaleadCloudView"
62
- facebookexternalhit: "Facebook Bot"
63
- facebot: "Facebook Bot"
64
- feedburner: "RSS bot"
65
- feedfetcher-google: "Google Feedfetcher"
66
- findxbot: "Findxbot"
67
- flipboardproxy: "FlipboardProxy"
68
- friendfeedbot: "FriendFeed"
69
- genieo: "Genieo Web filter bot"
70
- getprismatic.com: "getprismatic.com"
71
- gigabot: "Gigabot spider"
72
- gimme60bot: "Gimme60 (gimme60.com)"
73
- gimmeusabot: "Gimme60 (gimme60.com)"
74
- go http package: "Go http library"
75
- google page speed insights: "Google Page Speed Insights"
76
- google Web Preview: "Google Instant Previews crawler"
77
- google-structured-data-testing-tool: "Google-StructuredDataTestingTool"
78
- google-structureddatatestingtool: "Google-StructuredDataTestingTool"
79
- googlebot: "Google Bot"
80
- googlestackdrivermonitoring-uptimechecks: "GoogleStackdriverMonitoring-UptimeChecks"
81
- grapeshotcrawler: "GrapeshotCrawler"
82
- gravitybot: "Gravity Bot"
83
- hatena::bookmark: "Hatena::Bookmark"
84
- heritrix: "heritrix"
85
- htmlparser: "HTMLParser"
86
- http_request2: "HTTP_Request2"
87
- httpclient: "HTTPClient"
88
- https://developers.google.com/+/web/snippet: "Google+ Snippet Fetcher"
89
- hubspot: "HubSpot"
90
- ia_archiver: "Internet Archive (WayBackMachine)"
91
- icoreservice: "iCoreService"
92
- idmarch: "idmarch.org/bot.html"
93
- inagist: "URL resolver"
94
- insieve: "Insieve Bot"
95
- insitesbot: "Insitesbot"
96
- instapaper: "Instapaper"
97
- istellabot: "IstellaBot"
98
- jack: "jack"
99
- jakarta commons: "Jakarta Commons HttpClient"
100
- java: "Generic Java http library"
101
- jetslide: "Jetslide"
102
- js-kit: "URL resolver"
103
- kemvibot: "Kemvi"
104
- kimengi: "Kimengi Bot"
105
- knows.is: "knows.is"
106
- kojitsubot: "Kojitsubot"
107
- komodiabot: "KomodiaBot"
108
- kraken: "kraken"
109
- laconica: "Laconica"
110
- libwww-perl: "Perl client-server library"
111
- lijit crawler: "Lijit"
112
- linkdexbot: "Linkdex Bot"
113
- linkedinbot: "LinkedIn"
114
- linkscrawler: "LinksCrawler"
115
- linode: "Linode Longview"
116
- lipperhey: "Lipperhey"
117
- livelapbot: "Livelapbot"
118
- loadtimebot: "Load Time Bot"
119
- longurl: "URL expander service"
120
- ltx71: "ltx71.com"
121
- lumibot: "Lumibot"
122
- lwp-trivial: "Another Perl library"
123
- magpie-crawler: "magpie-crawler"
124
- mail.ru_bot: "Mail.ru Bot"
125
- meanpathbot: "meanpath"
126
- mediapartners-google: "Google Adsense bot"
127
- megaindex.ru: "MegaIndex"
128
- memorybot: "mignify.com/bot.html"
129
- metauri: "MetaURI"
130
- mfe_expand: "Mcafee spider"
131
- mir web crawler: "MIR web crawler"
132
- mj12bot: "Majestic-12 spider"
133
- mojeekbot: "Mojeek UK search crawler"
134
- mrchrome: "MrChrome"
135
- ms search 6.0 robot: "MS Search 6.0 Robot"
136
- msnbot-media: "Microsoft media bot"
137
- msnbot: "Microsoft bot"
138
- nerdybot: "NerdyBot"
139
- netcraft: "Netcraft"
140
- netstate: "netEstate NE Crawler"
141
- netvibes: "Personalized dashboard bot"
142
- netzcheckbot: "netzcheck"
143
- newrelicmonitor: "NewRelic monitor"
144
- newrelicpinger: "NewRelicPinger"
145
- newsme: "newsme"
146
- niki-bot: "niki-bot"
147
- ning: "NING - Yet Another Twitter Swarmer"
148
- nutch: "Apache search spider"
149
- openhosebot: "OpenHoseBot"
150
- orangebot: "OrangeBot"
151
- pagesinventory: "pagesinventory.com"
152
- panopta: "Monitoring service"
153
- paperlibot: "PaperLi"
154
- peerindex: "peerindex"
155
- percolatecrawler: "PercolateCrawler"
156
- perfectmarketkwtbot: "PerfectMarket"
157
- phantomjs: "PhantomJS"
158
- pingdom: "Pingdom monitoring"
159
- pinterest: "Pinterest"
160
- plukkie: "botje.com/plukkie.htm"
161
- privacyawarebot: "PrivacyAwareBot"
162
- proximic: "Proximic Spider"
163
- psbot-page: "Picsearch"
164
- publiclibraryarchive.org: "publiclibraryarchive.org"
165
- pycurl: "Python http library"
166
- python-httplib2: "Python-httplib2"
167
- python-requests: "Python http library"
168
- python-urllib: "Python http library"
169
- queryseeker: "QuerySeekerSpider"
170
- quicklook: "QuickLook"
171
- re-animator: "Domain Re-Animator Bot"
172
- readability: "Readability"
173
- rebelmouse: "RebelMouse"
174
- redditbot: "Reddit Bot"
175
- relateiq: "RelateIQ"
176
- riddler: "Riddler Bot"
177
- rogerbot: "SeoMoz spider"
178
- rssmicro: "RSS/Atom Feed Robot (rssmicro.com)"
179
- ruby: "Ruby"
180
- scrapy: "Scrapy"
17
+ appengine-google: Google App Engine
18
+ applebot: Apple Bot
19
+ archive.org_bot: Internet Archive (archive.org)
20
+ archiveteam archivebot: ArchiveTeam ArchiveBot
21
+ ask jeeves: Ask Jeeves
22
+ asynchttpclient: Java http and WebSocket client library
23
+ awe.sm: Awe.sm URL expander
24
+ baidu: Baidu
25
+ barkrowler: Barkrowler
26
+ bdcbot: Big Data Corp
27
+ bingbot: Microsoft Bing
28
+ bingpreview: Microsoft Bing preview
29
+ bitlybot: bit.ly bot
30
+ blekkobot: Blekkobot
31
+ blexbot: BLEXBot (webmeup)
32
+ bot@linkfluence.net: Linkfluence bot
33
+ bubing: BUbiNG
34
+ bufferbot: BufferBot
35
+ buibui-checkbot: buibui
36
+ butterfly: Topsy Labs
37
+ buzzbot: Buzzbot
38
+ buzztalk: buzztalk
39
+ catchbot: CatchBot (catchbot.com)
40
+ check_http: Nagios monitor
41
+ chrome-lighthouse: Chrome-Lighthouse
42
+ cipacrawler: CipaCrawler
43
+ cliqzbot: Cliqzbot
44
+ cloudflare: CloudFlare-AlwaysOnline
45
+ cmradar/0.1: CMRadar/0.1
46
+ coldfusion: ColdFusion http library
47
+ commoncrawl: CCBot
48
+ comodo ssl checker: COMODO SSL Checker
49
+ comodo-webinspector-crawler: Comodo
50
+ copypants: BotPants
51
+ crowsnest: Crowsnest
52
+ curabot: cura.yt
53
+ curl: curl unix CLI http client
54
+ dap/nethttp: DAP/NetHTTP
55
+ datafeedwatch: DataFeedWatch
56
+ datagnionbot: datagnion.com/bot.html
57
+ datanyze: Datanyze
58
+ daumoa: Korean portal and search engine indexing bot
59
+ developers.google.com/+/web/snippet/: Google Plus
60
+ diffbot: Diffbot
61
+ digitalpersona fingerprint software: HP Fingerprint scanner
62
+ domain re-animator bot: Domain Re-Animator Bot
63
+ domainsbot: DomainsBot
64
+ domaintunocrawler: DomainTuno
65
+ dotbot: Dot Bot
66
+ duckduckbot: Duck Duck Go
67
+ elb-healthchecker: AWS ELB HealthChecker
68
+ embedly: Embedly
69
+ eoaagent: EOAAgent
70
+ everyonesocialbot: EveryoneSocial
71
+ evrinid: Evri bot
72
+ exabot: Exalead's bot
73
+ exaleadcloudview: ExaleadCloudView
74
+ ez publish: eZ Publish Link Validator
75
+ facebookexternalhit: Facebook Bot
76
+ facebot: Facebook Bot
77
+ feedburner: RSS bot
78
+ feedfetcher-google: Google Feedfetcher
79
+ findxbot: Findxbot
80
+ flipboardproxy: FlipboardProxy
81
+ friendfeedbot: FriendFeed
82
+ fyrebot: Fyrebot
83
+ garlik: GarlikCrawler
84
+ genieo: Genieo Web filter bot
85
+ germcrawler: GermCrawler
86
+ getprismatic.com: getprismatic.com
87
+ gigabot: Gigabot spider
88
+ gimme60bot: Gimme60 (gimme60.com)
89
+ gimmeusabot: Gimme60 (gimme60.com)
90
+ go http package: Go http library
91
+ go-http-client: Go http client
92
+ google page speed insights: Google Page Speed Insights
93
+ google web preview: Google Instant Previews crawler
94
+ google-site-verification: Google Site Verification
95
+ google-structured-data-testing-tool: Google Structured Data Testing Tool
96
+ google-structureddatatestingtool: Google Structured Data Testing Tool
97
+ google-xrawler: Google Shopping
98
+ googlebot: Google Bot
99
+ googleimageproxy: Google Image Proxy
100
+ googlestackdrivermonitoring-uptimechecks: Google Stackdriver Monitoring - Uptime Checks
101
+ grapeshotcrawler: GrapeshotCrawler
102
+ gravitybot: Gravity Bot
103
+ hatena::bookmark: Hatena::Bookmark
104
+ heritrix: heritrix
105
+ https://developers.google.com/+/web/snippet: Google+ Snippet Fetcher
106
+ httrack: HTTrack
107
+ hubspot: HubSpot
108
+ ia_archiver: Internet Archive (WayBackMachine)
109
+ icoreservice: iCoreService
110
+ idmarch: idmarch.org/bot.html
111
+ implisensebot: ImplisenseBot
112
+ inagist: URL resolver
113
+ insieve: Insieve Bot
114
+ insitesbot: Insitesbot
115
+ instapaper: Instapaper
116
+ istellabot: IstellaBot
117
+ jaunt: Jaunt - Java Web Scraping & JSON Querying
118
+ jetslide: Jetslide
119
+ jobseeker: jobseeker.com.au/bot.html
120
+ jooble: Jooble
121
+ js-kit: URL resolver
122
+ kemvibot: Kemvi
123
+ kimengi: Kimengi Bot
124
+ knows.is: knows.is
125
+ kojitsubot: Kojitsubot
126
+ komodiabot: KomodiaBot
127
+ kraken: kraken
128
+ laconica: Laconica
129
+ lijit crawler: Lijit
130
+ linkdexbot: Linkdex Bot
131
+ linkedinbot: LinkedIn
132
+ linkscrawler: LinksCrawler
133
+ linode: Linode Longview
134
+ lipperhey: Lipperhey
135
+ livelapbot: Livelapbot
136
+ loadtimebot: Load Time Bot
137
+ longurl: URL expander service
138
+ ltx71: ltx71.com
139
+ lumibot: Lumibot
140
+ magpie-crawler: magpie-crawler
141
+ mail.ru_bot: Mail.ru Bot
142
+ mappydata: Mappy
143
+ mastodon: Mastodon URL expander
144
+ mauibot: MauiBot
145
+ meanpathbot: meanpath
146
+ mediapartners-google: Google Adsense bot
147
+ megaindex.ru: MegaIndex
148
+ memorybot: mignify.com/bot.html
149
+ metauri: MetaURI
150
+ mfe_expand: Mcafee spider
151
+ mir web crawler: MIR web crawler
152
+ mj12bot: Majestic-12 spider
153
+ mojeekbot: Mojeek UK search crawler
154
+ ms search 6.0 robot: MS Search 6.0 Robot
155
+ msnbot-media: Microsoft media bot
156
+ msnbot: Microsoft bot
157
+ nerdybot: NerdyBot
158
+ netcraft: Netcraft
159
+ netstate: netEstate NE Crawler
160
+ netvibes: Personalized dashboard bot
161
+ netzcheckbot: netzcheck
162
+ newrelicmonitor: NewRelic monitor
163
+ newrelicpinger: NewRelicPinger
164
+ newsme: newsme
165
+ niki-bot: niki-bot
166
+ ning: NING - Yet Another Twitter Swarmer
167
+ nutch: Apache search spider
168
+ openhosebot: OpenHoseBot
169
+ orangebot: OrangeBot
170
+ paessler: paessler.com - PRTG Network Monitor
171
+ pagesinventory: pagesinventory.com
172
+ panopta: Monitoring service
173
+ paperlibot: PaperLi
174
+ peerindex: peerindex
175
+ percolatecrawler: PercolateCrawler
176
+ perfectmarketkwtbot: PerfectMarket
177
+ phantomjs: PhantomJS
178
+ pingdom: Pingdom monitoring
179
+ pinterest: Pinterest
180
+ plukkie: botje.com/plukkie.htm
181
+ pr-cy.ru: PR-CY.RU
182
+ privacyawarebot: PrivacyAwareBot
183
+ proximic: Proximic Spider
184
+ psbot-page: Picsearch
185
+ pu_in: Pu_iN Crawler
186
+ publiclibraryarchive.org: publiclibraryarchive.org
187
+ pycurl: Python http library
188
+ python-httplib2: Python-httplib2
189
+ python-requests: Python http library
190
+ python-urllib: Python http library
191
+ queryseeker: QuerySeekerSpider
192
+ quick-crawler: Quick-Crawler
193
+ quicklook: QuickLook
194
+ re-animator: Domain Re-Animator Bot
195
+ readability: Readability
196
+ rebelmouse: RebelMouse
197
+ redditbot: Reddit Bot
198
+ relateiq: RelateIQ
199
+ riddler: Riddler Bot
200
+ rogerbot: SeoMoz spider
201
+ rssmicro: RSS/Atom Feed Robot (rssmicro.com)
202
+ scouturlmonitor: ScoutURLMonitor
203
+ scrapy: Scrapy
181
204
  screaming frog seo spider: Screaming Frog SEO Spider
182
- searchmetricsbot: "SearchmetricsBot"
183
- semrushbot: "SEO analysis bot"
184
- seokicks: "SEOKicks"
185
- seznambot: "SeznamBot"
186
- shopwiki: "ShopWiki"
187
- shortlinktranslate: "Link shortener"
188
- showyoubot: "Showyou iOS app spider"
189
- siege: "Joe Dog Siege"
190
- sistrix: "SISTRIX"
191
- siteuptime: "Site monitoring services"
192
- slack: "Slackbot-LinkExpanding"
193
- slackbot: "Slack Bot"
194
- slurp: "Yahoo spider"
195
- smtbot: "SimilarTech"
196
- socialrank: "SocialRankIOBot"
197
- sogou: "Chinese search engine"
198
- spbot: "OpenLinkProfiler"
199
- spider: "generic web spider"
200
- spinn3r: "Spinn3r aggregator"
201
- sputnikbot: "SputnikBot"
202
- squider: "Squider"
203
- statuscake: "StatusCake"
204
- stripe: "Stripe"
205
- swiftbot: "Swiftype Bot"
206
- test certificate info: "C http library?"
207
- tineye: "TinEye Bot"
208
- traackr: "Traackr Bot"
209
- trendictionbot: "Trendiction Search"
210
- turnitinbot: "TurnitinBot"
211
- tweetedtimes: "The Tweeted Times"
212
- tweetmemebot: "TweetMeMe Crawler"
213
- twikle: "Social web search bot"
214
- twitjobsearch: "TwitJobSearch"
215
- twitmunin: "Twitmunin"
216
- twitterbot: "Twitter URL expander"
217
- twurly: "Twurly"
218
- typhoeus: "Typhoeus"
219
- umbot: "uberMetrics"
220
- unwindfetch: "Gnip"
221
- uptimerobot: "Uptime Robot"
222
- vagabondo: "Vagabondo"
223
- vb project: "Visual Basic"
224
- vigil: "Vigil"
225
- vkshare: "VKontake Sharer"
226
- voilabot: "VoilaBot"
227
- vrcrawler: "Venture Radar"
228
- wasalive-bot: "Wasalive Bots"
229
- watchsumo: "WatchSumo"
230
- wbsearchbot: "Ware Bay Best Buys"
231
- webscout: "Webscout"
232
- wesee: "WeSEE"
233
- wget: "wget unix CLI http client"
234
- whatsapp: "WhatsApp"
235
- wordpress: "WordPress spider"
236
- wormly: "WormlyBot"
237
- wotbox: "Wotbox"
238
- xenu link sleuth: "Xenu Link Sleuth"
239
- xing-contenttabreceiver: "Xing bot"
240
- xovibot: "XoviBot"
241
- yacybot: "YaCy"
242
- yahoo-ad-monitoring: "Yahoo Ad monitoring"
243
- yandex: "Yandex"
244
- yeti: "Naver Corp"
245
- yourls: "YOURLS"
246
- zelist.ro: "feed parser"
247
- zibb: "ZIBB spider"
248
- zitebot: "Zite"
249
- zyborg: "Zyborg"
205
+ searchmetricsbot: SearchmetricsBot
206
+ semanticbot: Semanticbot
207
+ semrushbot: SEO analysis bot
208
+ seo-audit: seo-audit-check-bot
209
+ seobilitybot: SeobilityBot
210
+ seodiver: SEOdiver
211
+ seokicks: SEOKicks
212
+ seznambot: SeznamBot
213
+ shopwiki: ShopWiki
214
+ shortlinktranslate: Link shortener
215
+ showyoubot: Showyou iOS app spider
216
+ siege: Joe Dog Siege
217
+ sistrix: SISTRIX
218
+ sitecheck: SiteCheck sitecrawl
219
+ siteuptime: Site monitoring services
220
+ skypeuripreview: SkypeUriPreview
221
+ slack-imgproxy: Slack Image Proxy
222
+ slack-linkexpanding: Slack Link Expanding
223
+ slack: Slack Link Expanding
224
+ slackbot: Slackbot
225
+ slurp: Yahoo spider
226
+ smtbot: SimilarTech
227
+ snapchat: Snapchat
228
+ socialrank: SocialRankIOBot
229
+ sogou: Chinese search engine
230
+ spbot: OpenLinkProfiler
231
+ spinn3r: Spinn3r aggregator
232
+ sputnikbot: SputnikBot
233
+ squider: Squider
234
+ statuscake: StatusCake
235
+ swiftbot: Swiftype Bot
236
+ tangibleebot: TangibleeBot
237
+ teeraid: TeeRaidBot
238
+ test certificate info: C http library?
239
+ the knowledge ai: Knowledge AI Bot
240
+ tineye: TinEye Bot
241
+ traackr: Traackr Bot
242
+ trendictionbot: Trendiction Search
243
+ trendsmap: Trendsmap Resolver
244
+ turnitinbot: TurnitinBot
245
+ tweetedtimes: The Tweeted Times
246
+ tweetmemebot: TweetMeMe Crawler
247
+ twikle: Social web search bot
248
+ twitjobsearch: TwitJobSearch
249
+ twitmunin: Twitmunin
250
+ twitterbot: Twitter URL expander
251
+ twurly: Twurly
252
+ typhoeus: Typhoeus
253
+ umbot: uberMetrics
254
+ unwindfetch: Gnip
255
+ updown: Updown.io monitor
256
+ uptimerobot: Uptime Robot
257
+ vagabondo: Vagabondo
258
+ vb project: Visual Basic
259
+ vigil: Vigil
260
+ vkshare: VKontake Sharer
261
+ voilabot: VoilaBot
262
+ vrcrawler: Venture Radar
263
+ wasalive-bot: Wasalive Bots
264
+ watchsumo: WatchSumo
265
+ wbsearchbot: Ware Bay Best Buys
266
+ webceo: online-webceo-bot
267
+ webscout: Webscout
268
+ wesee: WeSEE
269
+ wget: wget unix CLI http client
270
+ whatsapp: WhatsApp
271
+ wikido: WikiDo
272
+ woorank: WooRank
273
+ wordpress: WordPress spider
274
+ woriobot: woriobot
275
+ wormly: WormlyBot
276
+ wotbox: Wotbox
277
+ xenu link sleuth: Xenu Link Sleuth
278
+ xing-contenttabreceiver: Xing bot
279
+ xovibot: XoviBot
280
+ yacybot: YaCy
281
+ yahoo-ad-monitoring: Yahoo Ad monitoring
282
+ yandex: Yandex
283
+ yanga: Yanga WorldSearch Bot
284
+ yeti: Naver Corp
285
+ yourls: YOURLS
286
+ zabbix: Zabbix
287
+ zelist.ro: feed parser
288
+ zibb: ZIBB spider
289
+ zitebot: Zite
290
+ zoombot: ZoomBot
291
+ zoominfobot: ZoominfoBot
292
+ zyborg: Zyborg
293
+
294
+ # Generic lib user agents go here.
295
+ eventmachine httpclient: Ruby http library
296
+ go 1.1 package http: Go 1.1 package http
297
+ htmlparser: HTMLParser
298
+ http_request2: HTTP_Request2
299
+ httpclient: HTTPClient
300
+ jakarta commons: Jakarta Commons HttpClient
301
+ java: Generic Java http library
302
+ libwww-perl: Perl client-server library
303
+ lwp-trivial: Another Perl library
304
+ ruby: Ruby
data/browser.gemspec CHANGED
@@ -1,16 +1,20 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "./lib/browser/version"
2
4
 
3
5
  Gem::Specification.new do |s|
4
- s.required_ruby_version = ">= 2.0"
5
6
  s.name = "browser"
6
7
  s.version = Browser::VERSION
7
8
  s.platform = Gem::Platform::RUBY
8
9
  s.authors = ["Nando Vieira"]
9
10
  s.email = ["fnando.vieira@gmail.com"]
10
- s.homepage = "http://github.com/fnando/browser"
11
+ s.homepage = "https://github.com/fnando/browser"
11
12
  s.summary = "Do some browser detection with Ruby."
12
13
  s.description = s.summary
13
14
  s.license = "MIT"
15
+ s.required_ruby_version = ">= 2.5.0"
16
+
17
+ s.metadata["changelog_uri"] = "https://github.com/fnando/browser/blob/main/CHANGELOG.md"
14
18
 
15
19
  s.files = `git ls-files`.split("\n")
16
20
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
@@ -20,13 +24,14 @@ Gem::Specification.new do |s|
20
24
  s.require_paths = ["lib"]
21
25
 
22
26
  s.add_development_dependency "bundler", ">= 0"
23
- s.add_development_dependency "rake"
24
- s.add_development_dependency "rails"
25
- s.add_development_dependency "rack-test"
26
27
  s.add_development_dependency "minitest"
28
+ s.add_development_dependency "minitest-autotest"
27
29
  s.add_development_dependency "minitest-utils"
28
30
  s.add_development_dependency "pry-meta"
29
- s.add_development_dependency "minitest-autotest"
30
- s.add_development_dependency "codeclimate-test-reporter"
31
+ s.add_development_dependency "rack-test"
32
+ s.add_development_dependency "rails"
33
+ s.add_development_dependency "rake"
31
34
  s.add_development_dependency "rubocop"
35
+ s.add_development_dependency "rubocop-fnando"
36
+ s.add_development_dependency "simplecov"
32
37
  end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+ gemspec path: ".."
5
+
6
+ gem "rails", "~> 6.0"
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+ gemspec path: ".."
5
+
6
+ gem "rails", "~> 6.1"