@@ -28,6 +28,227 @@ import Utils from './utils.js';
2828const commonVersionIdentifier = / v e r s i o n \/ ( \d + ( \. ? _ ? \d + ) + ) / i;
2929
3030const browsersList = [
31+ /* GPTBot */
32+ {
33+ test : [ / g p t b o t / i] ,
34+ describe ( ua ) {
35+ const browser = {
36+ name : 'GPTBot' ,
37+ } ;
38+ const version = Utils . getFirstMatch ( / g p t b o t \/ ( \d + ( \. \d + ) + ) / i, ua ) || Utils . getFirstMatch ( commonVersionIdentifier , ua ) ;
39+
40+ if ( version ) {
41+ browser . version = version ;
42+ }
43+
44+ return browser ;
45+ } ,
46+ } ,
47+
48+ /* ChatGPT-User */
49+ {
50+ test : [ / c h a t g p t - u s e r / i] ,
51+ describe ( ua ) {
52+ const browser = {
53+ name : 'ChatGPT-User' ,
54+ } ;
55+ const version = Utils . getFirstMatch ( / c h a t g p t - u s e r \/ ( \d + ( \. \d + ) + ) / i, ua ) || Utils . getFirstMatch ( commonVersionIdentifier , ua ) ;
56+
57+ if ( version ) {
58+ browser . version = version ;
59+ }
60+
61+ return browser ;
62+ } ,
63+ } ,
64+
65+ /* OAI-SearchBot */
66+ {
67+ test : [ / o a i - s e a r c h b o t / i] ,
68+ describe ( ua ) {
69+ const browser = {
70+ name : 'OAI-SearchBot' ,
71+ } ;
72+ const version = Utils . getFirstMatch ( / o a i - s e a r c h b o t \/ ( \d + ( \. \d + ) + ) / i, ua ) || Utils . getFirstMatch ( commonVersionIdentifier , ua ) ;
73+
74+ if ( version ) {
75+ browser . version = version ;
76+ }
77+
78+ return browser ;
79+ } ,
80+ } ,
81+
82+ /* ClaudeBot */
83+ {
84+ test : [ / c l a u d e b o t / i, / c l a u d e - w e b / i, / c l a u d e - u s e r / i, / c l a u d e - s e a r c h b o t / i] ,
85+ describe ( ua ) {
86+ const browser = {
87+ name : 'ClaudeBot' ,
88+ } ;
89+ const version = Utils . getFirstMatch ( / (?: c l a u d e b o t | c l a u d e - w e b | c l a u d e - u s e r | c l a u d e - s e a r c h b o t ) \/ ( \d + ( \. \d + ) + ) / i, ua ) || Utils . getFirstMatch ( commonVersionIdentifier , ua ) ;
90+
91+ if ( version ) {
92+ browser . version = version ;
93+ }
94+
95+ return browser ;
96+ } ,
97+ } ,
98+
99+ /* Omgilibot */
100+ {
101+ test : [ / o m g i l i b o t / i, / w e b z i o - e x t e n d e d / i] ,
102+ describe ( ua ) {
103+ const browser = {
104+ name : 'Omgilibot' ,
105+ } ;
106+ const version = Utils . getFirstMatch ( / (?: o m g i l i b o t | w e b z i o - e x t e n d e d ) \/ ( \d + ( \. \d + ) + ) / i, ua ) || Utils . getFirstMatch ( commonVersionIdentifier , ua ) ;
107+
108+ if ( version ) {
109+ browser . version = version ;
110+ }
111+
112+ return browser ;
113+ } ,
114+ } ,
115+
116+ /* Diffbot */
117+ {
118+ test : [ / d i f f b o t / i] ,
119+ describe ( ua ) {
120+ const browser = {
121+ name : 'Diffbot' ,
122+ } ;
123+ const version = Utils . getFirstMatch ( / d i f f b o t \/ ( \d + ( \. \d + ) + ) / i, ua ) || Utils . getFirstMatch ( commonVersionIdentifier , ua ) ;
124+
125+ if ( version ) {
126+ browser . version = version ;
127+ }
128+
129+ return browser ;
130+ } ,
131+ } ,
132+
133+ /* PerplexityBot */
134+ {
135+ test : [ / p e r p l e x i t y b o t / i] ,
136+ describe ( ua ) {
137+ const browser = {
138+ name : 'PerplexityBot' ,
139+ } ;
140+ const version = Utils . getFirstMatch ( / p e r p l e x i t y b o t \/ ( \d + ( \. \d + ) + ) / i, ua ) || Utils . getFirstMatch ( commonVersionIdentifier , ua ) ;
141+
142+ if ( version ) {
143+ browser . version = version ;
144+ }
145+
146+ return browser ;
147+ } ,
148+ } ,
149+
150+ /* Perplexity-User */
151+ {
152+ test : [ / p e r p l e x i t y - u s e r / i] ,
153+ describe ( ua ) {
154+ const browser = {
155+ name : 'Perplexity-User' ,
156+ } ;
157+ const version = Utils . getFirstMatch ( / p e r p l e x i t y - u s e r \/ ( \d + ( \. \d + ) + ) / i, ua ) || Utils . getFirstMatch ( commonVersionIdentifier , ua ) ;
158+
159+ if ( version ) {
160+ browser . version = version ;
161+ }
162+
163+ return browser ;
164+ } ,
165+ } ,
166+
167+ /* YouBot */
168+ {
169+ test : [ / y o u b o t / i] ,
170+ describe ( ua ) {
171+ const browser = {
172+ name : 'YouBot' ,
173+ } ;
174+ const version = Utils . getFirstMatch ( / y o u b o t \/ ( \d + ( \. \d + ) + ) / i, ua ) || Utils . getFirstMatch ( commonVersionIdentifier , ua ) ;
175+
176+ if ( version ) {
177+ browser . version = version ;
178+ }
179+
180+ return browser ;
181+ } ,
182+ } ,
183+
184+ /* Meta-WebIndexer */
185+ {
186+ test : [ / m e t a - w e b i n d e x e r / i] ,
187+ describe ( ua ) {
188+ const browser = {
189+ name : 'Meta-WebIndexer' ,
190+ } ;
191+ const version = Utils . getFirstMatch ( / m e t a - w e b i n d e x e r \/ ( \d + ( \. \d + ) + ) / i, ua ) || Utils . getFirstMatch ( commonVersionIdentifier , ua ) ;
192+
193+ if ( version ) {
194+ browser . version = version ;
195+ }
196+
197+ return browser ;
198+ } ,
199+ } ,
200+
201+ /* Meta-ExternalAds */
202+ {
203+ test : [ / m e t a - e x t e r n a l a d s / i] ,
204+ describe ( ua ) {
205+ const browser = {
206+ name : 'Meta-ExternalAds' ,
207+ } ;
208+ const version = Utils . getFirstMatch ( / m e t a - e x t e r n a l a d s \/ ( \d + ( \. \d + ) + ) / i, ua ) || Utils . getFirstMatch ( commonVersionIdentifier , ua ) ;
209+
210+ if ( version ) {
211+ browser . version = version ;
212+ }
213+
214+ return browser ;
215+ } ,
216+ } ,
217+
218+ /* Meta-ExternalAgent */
219+ {
220+ test : [ / m e t a - e x t e r n a l a g e n t / i] ,
221+ describe ( ua ) {
222+ const browser = {
223+ name : 'Meta-ExternalAgent' ,
224+ } ;
225+ const version = Utils . getFirstMatch ( / m e t a - e x t e r n a l a g e n t \/ ( \d + ( \. \d + ) + ) / i, ua ) || Utils . getFirstMatch ( commonVersionIdentifier , ua ) ;
226+
227+ if ( version ) {
228+ browser . version = version ;
229+ }
230+
231+ return browser ;
232+ } ,
233+ } ,
234+
235+ /* Meta-ExternalFetcher */
236+ {
237+ test : [ / m e t a - e x t e r n a l f e t c h e r / i] ,
238+ describe ( ua ) {
239+ const browser = {
240+ name : 'Meta-ExternalFetcher' ,
241+ } ;
242+ const version = Utils . getFirstMatch ( / m e t a - e x t e r n a l f e t c h e r \/ ( \d + ( \. \d + ) + ) / i, ua ) || Utils . getFirstMatch ( commonVersionIdentifier , ua ) ;
243+
244+ if ( version ) {
245+ browser . version = version ;
246+ }
247+
248+ return browser ;
249+ } ,
250+ } ,
251+
31252 /* Googlebot */
32253 {
33254 test : [ / g o o g l e b o t / i] ,
@@ -130,12 +351,12 @@ const browsersList = [
130351 } ,
131352 } ,
132353
133- /* MetaWebCrawler */
354+ /* FacebookExternalHit */
134355 {
135356 test : [ / f a c e b o o k e x t e r n a l h i t / i, / f a c e b o o k c a t a l o g / i] ,
136357 describe ( ) {
137358 return {
138- name : 'MetaWebCrawler ' ,
359+ name : 'FacebookExternalHit ' ,
139360 } ;
140361 } ,
141362 } ,
0 commit comments