browser 2.5.3 → 5.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. checksums.yaml +4 -4
  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 +170 -6
  8. data/FUNDING.yml +3 -0
  9. data/Gemfile +2 -0
  10. data/README.md +139 -89
  11. data/Rakefile +11 -2
  12. data/bot_exceptions.yml +2 -0
  13. data/bots.yml +302 -265
  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 +6 -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 +7 -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 +95 -60
  108. data/test/ua_search_engines.yml +7 -6
  109. data/test/unit/accept_language_test.rb +16 -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 -36
  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 -27
  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/gemfiles/rails5.gemfile +0 -4
  147. data/lib/browser/meta/modern.rb +0 -11
data/bots.yml CHANGED
@@ -1,267 +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
- anderspink: "AndersPinkBot"
12
- apache-httpclient: "Java http library"
13
- 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)
14
16
  apis-google: APIs-Google
15
- appengine-google: "Google App Engine"
16
- applebot: "Apple Bot"
17
- archive.org_bot: "Internet Archive (archive.org)"
18
- ask jeeves: "Ask Jeeves"
19
- asynchttpclient: "Java http and WebSocket client library"
20
- awe.sm: "Awe.sm URL expander"
21
- baidu: "Baidu"
22
- barkrowler: "Barkrowler"
23
- bdcbot: "Big Data Corp"
24
- bingbot: "Microsoft Bing"
25
- bingpreview: "Microsoft Bing preview"
26
- bitlybot: "bit.ly bot"
27
- blekkobot: "Blekkobot"
28
- blexbot: "BLEXBot (webmeup)"
29
- bot@linkfluence.net: "Linkfluence bot"
30
- bubing: "BUbiNG"
31
- bufferbot: "BufferBot"
32
- buibui-checkbot: "buibui"
33
- butterfly: "Topsy Labs"
34
- buzzbot: "Buzzbot"
35
- buzztalk: "buzztalk"
36
- catchbot: "CatchBot (catchbot.com)"
37
- check_http: "Nagios monitor"
38
- cipacrawler: "CipaCrawler"
39
- cliqzbot: "Cliqzbot"
40
- cloudflare: "CloudFlare-AlwaysOnline"
41
- cmradar/0.1: "CMRadar/0.1"
42
- coldfusion: "ColdFusion http library"
43
- commoncrawl: "CCBot"
44
- comodo ssl checker: 'COMODO SSL Checker'
45
- comodo-webinspector-crawler: "Comodo"
46
- copypants: "BotPants"
47
- crowsnest: "Crowsnest"
48
- curabot: "cura.yt"
49
- curl: "curl unix CLI http client"
50
- dap/nethttp: "DAP/NetHTTP"
51
- datagnionbot: "datagnion.com/bot.html"
52
- daumoa: "Korean portal and search engine indexing bot"
53
- developers.google.com/+/web/snippet/: "Google Plus"
54
- diffbot: "Diffbot"
55
- digitalpersona fingerprint software: "HP Fingerprint scanner"
56
- domain re-animator bot: "Domain Re-Animator Bot"
57
- domainsbot: "DomainsBot"
58
- domaintunocrawler: "DomainTuno"
59
- dotbot: "Dot Bot"
60
- duckduck: "Duck Duck Go"
61
- elb-healthchecker: "AWS ELB HealthChecker"
62
- embedly: "Embedly"
63
- eoaagent: "EOAAgent"
64
- eventmachine httpclient: "Ruby http library"
65
- everyonesocialbot: "EveryoneSocial"
66
- evrinid: "Evri bot"
67
- exabot: "Exalead's bot"
68
- exaleadcloudview: "ExaleadCloudView"
69
- facebookexternalhit: "Facebook Bot"
70
- facebot: "Facebook Bot"
71
- feedburner: "RSS bot"
72
- feedfetcher-google: "Google Feedfetcher"
73
- findxbot: "Findxbot"
74
- flipboardproxy: "FlipboardProxy"
75
- friendfeedbot: "FriendFeed"
76
- genieo: "Genieo Web filter bot"
77
- getprismatic.com: "getprismatic.com"
78
- gigabot: "Gigabot spider"
79
- gimme60bot: "Gimme60 (gimme60.com)"
80
- gimmeusabot: "Gimme60 (gimme60.com)"
81
- go http package: "Go http library"
82
- google page speed insights: "Google Page Speed Insights"
83
- google Web Preview: "Google Instant Previews crawler"
84
- google-site-verification: Google-Site-Verification
85
- google-structured-data-testing-tool: "Google-StructuredDataTestingTool"
86
- google-structureddatatestingtool: "Google-StructuredDataTestingTool"
87
- googlebot: "Google Bot"
88
- googlestackdrivermonitoring-uptimechecks: "GoogleStackdriverMonitoring-UptimeChecks"
89
- grapeshotcrawler: "GrapeshotCrawler"
90
- gravitybot: "Gravity Bot"
91
- hatena::bookmark: "Hatena::Bookmark"
92
- heritrix: "heritrix"
93
- htmlparser: "HTMLParser"
94
- http_request2: "HTTP_Request2"
95
- httpclient: "HTTPClient"
96
- https://developers.google.com/+/web/snippet: "Google+ Snippet Fetcher"
97
- hubspot: "HubSpot"
98
- ia_archiver: "Internet Archive (WayBackMachine)"
99
- icoreservice: "iCoreService"
100
- idmarch: "idmarch.org/bot.html"
101
- inagist: "URL resolver"
102
- insieve: "Insieve Bot"
103
- insitesbot: "Insitesbot"
104
- instapaper: "Instapaper"
105
- istellabot: "IstellaBot"
106
- jack: "jack"
107
- jakarta commons: "Jakarta Commons HttpClient"
108
- java: "Generic Java http library"
109
- jetslide: "Jetslide"
110
- jobseeker: "jobseeker.com.au/bot.html"
111
- js-kit: "URL resolver"
112
- kemvibot: "Kemvi"
113
- kimengi: "Kimengi Bot"
114
- knows.is: "knows.is"
115
- kojitsubot: "Kojitsubot"
116
- komodiabot: "KomodiaBot"
117
- kraken: "kraken"
118
- laconica: "Laconica"
119
- libwww-perl: "Perl client-server library"
120
- lijit crawler: "Lijit"
121
- linkdexbot: "Linkdex Bot"
122
- linkedinbot: "LinkedIn"
123
- linkscrawler: "LinksCrawler"
124
- linode: "Linode Longview"
125
- lipperhey: "Lipperhey"
126
- livelapbot: "Livelapbot"
127
- loadtimebot: "Load Time Bot"
128
- longurl: "URL expander service"
129
- ltx71: "ltx71.com"
130
- lumibot: "Lumibot"
131
- lwp-trivial: "Another Perl library"
132
- magpie-crawler: "magpie-crawler"
133
- mail.ru_bot: "Mail.ru Bot"
134
- mappydata: "Mappy"
135
- meanpathbot: "meanpath"
136
- mediapartners-google: "Google Adsense bot"
137
- megaindex.ru: "MegaIndex"
138
- memorybot: "mignify.com/bot.html"
139
- metauri: "MetaURI"
140
- mfe_expand: "Mcafee spider"
141
- mir web crawler: "MIR web crawler"
142
- mj12bot: "Majestic-12 spider"
143
- mojeekbot: "Mojeek UK search crawler"
144
- mrchrome: "MrChrome"
145
- ms search 6.0 robot: "MS Search 6.0 Robot"
146
- msnbot-media: "Microsoft media bot"
147
- msnbot: "Microsoft bot"
148
- nerdybot: "NerdyBot"
149
- netcraft: "Netcraft"
150
- netstate: "netEstate NE Crawler"
151
- netvibes: "Personalized dashboard bot"
152
- netzcheckbot: "netzcheck"
153
- newrelicmonitor: "NewRelic monitor"
154
- newrelicpinger: "NewRelicPinger"
155
- newsme: "newsme"
156
- niki-bot: "niki-bot"
157
- ning: "NING - Yet Another Twitter Swarmer"
158
- nutch: "Apache search spider"
159
- openhosebot: "OpenHoseBot"
160
- orangebot: "OrangeBot"
161
- paessler: "paessler.com - PRTG Network Monitor"
162
- pagesinventory: "pagesinventory.com"
163
- panopta: "Monitoring service"
164
- paperlibot: "PaperLi"
165
- peerindex: "peerindex"
166
- percolatecrawler: "PercolateCrawler"
167
- perfectmarketkwtbot: "PerfectMarket"
168
- phantomjs: "PhantomJS"
169
- pingdom: "Pingdom monitoring"
170
- pinterest: "Pinterest"
171
- plukkie: "botje.com/plukkie.htm"
172
- privacyawarebot: "PrivacyAwareBot"
173
- proximic: "Proximic Spider"
174
- psbot-page: "Picsearch"
175
- publiclibraryarchive.org: "publiclibraryarchive.org"
176
- pycurl: "Python http library"
177
- python-httplib2: "Python-httplib2"
178
- python-requests: "Python http library"
179
- python-urllib: "Python http library"
180
- queryseeker: "QuerySeekerSpider"
181
- quicklook: "QuickLook"
182
- re-animator: "Domain Re-Animator Bot"
183
- readability: "Readability"
184
- rebelmouse: "RebelMouse"
185
- redditbot: "Reddit Bot"
186
- relateiq: "RelateIQ"
187
- riddler: "Riddler Bot"
188
- rogerbot: "SeoMoz spider"
189
- rssmicro: "RSS/Atom Feed Robot (rssmicro.com)"
190
- ruby: "Ruby"
191
- 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
192
204
  screaming frog seo spider: Screaming Frog SEO Spider
193
- searchmetricsbot: "SearchmetricsBot"
194
- semanticbot: "Semanticbot"
195
- semrushbot: "SEO analysis bot"
196
- seo-audit: "seo-audit-check-bot"
197
- seodiver: "SEOdiver"
198
- seokicks: "SEOKicks"
199
- seznambot: "SeznamBot"
200
- shopwiki: "ShopWiki"
201
- shortlinktranslate: "Link shortener"
202
- showyoubot: "Showyou iOS app spider"
203
- siege: "Joe Dog Siege"
204
- sistrix: "SISTRIX"
205
- siteuptime: "Site monitoring services"
206
- slack: "Slackbot-LinkExpanding"
207
- slackbot: "Slack Bot"
208
- slurp: "Yahoo spider"
209
- smtbot: "SimilarTech"
210
- socialrank: "SocialRankIOBot"
211
- sogou: "Chinese search engine"
212
- spbot: "OpenLinkProfiler"
213
- spider: "generic web spider"
214
- spinn3r: "Spinn3r aggregator"
215
- sputnikbot: "SputnikBot"
216
- squider: "Squider"
217
- statuscake: "StatusCake"
218
- stripe: "Stripe"
219
- swiftbot: "Swiftype Bot"
220
- teeraid: "TeeRaidBot"
221
- test certificate info: "C http library?"
222
- tineye: "TinEye Bot"
223
- traackr: "Traackr Bot"
224
- trendictionbot: "Trendiction Search"
225
- turnitinbot: "TurnitinBot"
226
- tweetedtimes: "The Tweeted Times"
227
- tweetmemebot: "TweetMeMe Crawler"
228
- twikle: "Social web search bot"
229
- twitjobsearch: "TwitJobSearch"
230
- twitmunin: "Twitmunin"
231
- twitterbot: "Twitter URL expander"
232
- twurly: "Twurly"
233
- typhoeus: "Typhoeus"
234
- umbot: "uberMetrics"
235
- unwindfetch: "Gnip"
236
- uptimerobot: "Uptime Robot"
237
- vagabondo: "Vagabondo"
238
- vb project: "Visual Basic"
239
- vigil: "Vigil"
240
- vkshare: "VKontake Sharer"
241
- voilabot: "VoilaBot"
242
- vrcrawler: "Venture Radar"
243
- wasalive-bot: "Wasalive Bots"
244
- watchsumo: "WatchSumo"
245
- wbsearchbot: "Ware Bay Best Buys"
246
- webceo: "online-webceo-bot"
247
- webscout: "Webscout"
248
- wesee: "WeSEE"
249
- wget: "wget unix CLI http client"
250
- whatsapp: "WhatsApp"
251
- wordpress: "WordPress spider"
252
- woriobot: "woriobot"
253
- wormly: "WormlyBot"
254
- wotbox: "Wotbox"
255
- xenu link sleuth: "Xenu Link Sleuth"
256
- xing-contenttabreceiver: "Xing bot"
257
- xovibot: "XoviBot"
258
- yacybot: "YaCy"
259
- yahoo-ad-monitoring: "Yahoo Ad monitoring"
260
- yandex: "Yandex"
261
- yanga: "Yanga WorldSearch Bot"
262
- yeti: "Naver Corp"
263
- yourls: "YOURLS"
264
- zelist.ro: "feed parser"
265
- zibb: "ZIBB spider"
266
- zitebot: "Zite"
267
- 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"