fake_agent 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4f35fbd901ae5b0dcbffadf42c94b1e0363c50d2c680e832d594174262208ab1
4
- data.tar.gz: f41687bd6f2dabc069d91916cc3be43f04248bd04576013052f6f8dab6f2fee5
3
+ metadata.gz: a31505b4abcec1e5e1fcc7bcddd5724683e10e794a5b12f2cfc99fd407f504cd
4
+ data.tar.gz: c12cb715076e0c720a2ace2e8a4666bbaa5960dd5c7030c36160e18871724b75
5
5
  SHA512:
6
- metadata.gz: 54971441f999d22df8e370d999b4cbef8e8136c111f201797ddc70c170a7d223b8c993d7e0e0a7f0afb4912d68007feddb53309b9b5f921d4b953db86c9ddc34
7
- data.tar.gz: 9efbb1c693a54a5bd2286668572c6b04cb53415fce3c64c5ad499a459b139a1a652e3003abd3ad0221eab2980dc5e59495dd85141018abb6418dbe55906e1967
6
+ metadata.gz: 22188c2bda7aa55a6dd84e7900ec6d0200c158c6c94d563976d340b8fdfb0eb46747cd74fac185924f9574b297f2f635bcfab642b9e7d712812162238474f0bd
7
+ data.tar.gz: 3ffc91c344ca9bf93c55e1f3a54186af2479fad5459e5b98e4a365c0918c84cc33df0013912434d242434e861a541b4c28d7a0871fe4f4230522ce6b10281cc9
data/lib/browsers.json CHANGED
@@ -1 +1 @@
1
- [{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0 Unique/97.7.7239.70","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0 Trailer/92.3.3357.27","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0 Viewer/99.9.9009.89","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0 Trailer/93.3.3695.30","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0 GLS/100.10.9850.99","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0 GLS/100.10.9979.100","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0 Agency/98.8.8188.80","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0 GLS/100.10.9415.94","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0 AtContent/95.5.5392.49","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Mobile Safari/537.36 EdgA/121.0.0.0","percent":100,"type":"mobile","system":"Edge Mobile 121.0 Android","browser":"edge","version":121,"os":"android"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 EdgiOS/121.2277.107 Mobile/15E148 Safari/605.1.15","percent":100,"type":"mobile","system":"Edge Mobile 121.2277 iOS","browser":"edge","version":121.2277,"os":"ios"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0 Herring/95.1.1930.31","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0 Unique/97.7.7286.70","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0","percent":100,"type":"pc","system":"Edge 121.0 Windows","browser":"edge","version":121,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0","percent":100,"type":"pc","system":"Firefox 123.0 Windows","browser":"firefox","version":123,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0","percent":100,"type":"pc","system":"Firefox 123.0 Windows","browser":"firefox","version":123,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0","percent":100,"type":"pc","system":"Firefox 123.0 Windows","browser":"firefox","version":123,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0 Config/91.2.2121.13","percent":100,"type":"pc","system":"Firefox 123.0 Windows","browser":"firefox","version":123,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0 OpenWave/94.4.4504.39","percent":100,"type":"pc","system":"Firefox 123.0 Windows","browser":"firefox","version":123,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0","percent":100,"type":"pc","system":"Firefox 123.0 Windows","browser":"firefox","version":123,"os":"win10"},{"useragent":"Mozilla/5.0 (Android 8.1.0; Mobile; rv:123.0) Gecko/123.0 Firefox/123.0","percent":100,"type":"mobile","system":"Firefox Mobile 123.0 Android","browser":"firefox","version":123,"os":"android"},{"useragent":"Mozilla/5.0 (X11; Linux x86_64; rv:123.0) Gecko/20100101 Firefox/123.0","percent":100,"type":"pc","system":"Firefox 123.0 Linux","browser":"firefox","version":123,"os":"linux"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0","percent":100,"type":"pc","system":"Firefox 123.0 Windows","browser":"firefox","version":123,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0","percent":100,"type":"pc","system":"Firefox 123.0 Windows","browser":"firefox","version":123,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0 Config/92.2.7601.2","percent":100,"type":"pc","system":"Firefox 123.0 Windows","browser":"firefox","version":123,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0","percent":100,"type":"pc","system":"Firefox 123.0 Windows","browser":"firefox","version":123,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0","percent":100,"type":"pc","system":"Firefox 123.0 Windows","browser":"firefox","version":123,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0","percent":100,"type":"pc","system":"Firefox 123.0 Windows","browser":"firefox","version":123,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0","percent":100,"type":"pc","system":"Firefox 123.0 Windows","browser":"firefox","version":123,"os":"win10"},{"useragent":"Mozilla/5.0 (Android 11; Mobile; rv:123.0) Gecko/123.0 Firefox/123.0","percent":100,"type":"mobile","system":"Firefox Mobile 123.0 Android","browser":"firefox","version":123,"os":"android"},{"useragent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5; rv:123.0esr) Gecko/20100101 Firefox/123.0esr","percent":100,"type":"pc","system":"Firefox 123.0 Mac OS X","browser":"firefox","version":123,"os":"macos"},{"useragent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36","percent":100,"type":"mobile","system":"Chrome Mobile 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36","percent":100,"type":"pc","system":"Chrome 122.0 Windows","browser":"chrome","version":122,"os":"win10"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 15_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/122.0.6261.62 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Chrome Mobile iOS 122.0 iOS","browser":"chrome","version":122,"os":"ios"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36","percent":100,"type":"pc","system":"Chrome 122.0 Windows","browser":"chrome","version":122,"os":"win10"},{"useragent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36","percent":100,"type":"mobile","system":"Chrome Mobile 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36","percent":100,"type":"pc","system":"Chrome 122.0 Windows","browser":"chrome","version":122,"os":"win10"},{"useragent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36","percent":100,"type":"mobile","system":"Chrome Mobile 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36","percent":100,"type":"mobile","system":"Chrome Mobile 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36","percent":100,"type":"pc","system":"Chrome 122.0 Windows","browser":"chrome","version":122,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36","percent":100,"type":"pc","system":"Chrome 122.0 Windows","browser":"chrome","version":122,"os":"win10"},{"useragent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36","percent":100,"type":"mobile","system":"Chrome Mobile 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36","percent":100,"type":"mobile","system":"Chrome Mobile 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/122.0.6261.62 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Chrome Mobile iOS 122.0 iOS","browser":"chrome","version":122,"os":"ios"},{"useragent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36","percent":100,"type":"mobile","system":"Chrome Mobile 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36","percent":100,"type":"pc","system":"Chrome 122.0 Windows","browser":"chrome","version":122,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36","percent":100,"type":"pc","system":"Chrome 122.0 Windows","browser":"chrome","version":122,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36","percent":100,"type":"pc","system":"Chrome 122.0 Windows","browser":"chrome","version":122,"os":"win10"},{"useragent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36","percent":100,"type":"pc","system":"Chrome 122.0 Mac OS X","browser":"chrome","version":122,"os":"macos"},{"useragent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36","percent":100,"type":"mobile","system":"Chrome Mobile 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36","percent":100,"type":"pc","system":"Chrome 122.0 Windows","browser":"chrome","version":122,"os":"win10"},{"useragent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36","percent":100,"type":"pc","system":"Chrome 122.0 Mac OS X","browser":"chrome","version":122,"os":"macos"},{"useragent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36","percent":100,"type":"mobile","system":"Chrome Mobile 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36","percent":100,"type":"mobile","system":"Chrome Mobile 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Agency/98.8.8175.80","percent":100,"type":"pc","system":"Chrome 122.0 Windows","browser":"chrome","version":122,"os":"win10"},{"useragent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36","percent":100,"type":"mobile","system":"Chrome Mobile 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36","percent":100,"type":"pc","system":"Chrome 122.0 Windows","browser":"chrome","version":122,"os":"win10"},{"useragent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36","percent":100,"type":"mobile","system":"Chrome Mobile 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36","percent":100,"type":"mobile","system":"Chrome Mobile 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36","percent":100,"type":"pc","system":"Chrome 122.0 Windows","browser":"chrome","version":122,"os":"win10"},{"useragent":"Mozilla/5.0 (Linux; Android 11; moto e20 Build/RONS31.267-94-14) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.64 Mobile Safari/537.36","percent":100,"type":"mobile","system":"Chrome Mobile 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36","percent":100,"type":"tablet","system":"Chrome 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36","percent":100,"type":"pc","system":"Chrome 122.0 Windows","browser":"chrome","version":122,"os":"win10"},{"useragent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36","percent":100,"type":"mobile","system":"Chrome Mobile 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36","percent":100,"type":"mobile","system":"Chrome Mobile 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36","percent":100,"type":"pc","system":"Chrome 122.0 Windows","browser":"chrome","version":122,"os":"win10"},{"useragent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36","percent":100,"type":"mobile","system":"Chrome Mobile 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36","percent":100,"type":"pc","system":"Chrome 122.0 Windows","browser":"chrome","version":122,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36","percent":100,"type":"pc","system":"Chrome 122.0 Windows","browser":"chrome","version":122,"os":"win10"},{"useragent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36","percent":100,"type":"mobile","system":"Chrome Mobile 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36","percent":100,"type":"pc","system":"Chrome 122.0 Windows","browser":"chrome","version":122,"os":"win10"},{"useragent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36","percent":100,"type":"mobile","system":"Chrome Mobile 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (Linux; Android 8.1.0; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36 PTST/240201.144844","percent":100,"type":"mobile","system":"Chrome Mobile 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (Linux; Android 8.1.0; C5 2019 Build/OPM2.171019.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.64 Mobile Safari/537.36","percent":100,"type":"mobile","system":"Chrome Mobile 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36","percent":100,"type":"mobile","system":"Chrome Mobile 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36","percent":100,"type":"mobile","system":"Chrome Mobile 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36","percent":100,"type":"pc","system":"Chrome 122.0 Windows","browser":"chrome","version":122,"os":"win10"},{"useragent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36","percent":100,"type":"mobile","system":"Chrome Mobile 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36","percent":100,"type":"mobile","system":"Chrome Mobile 122.0 Android","browser":"chrome","version":122,"os":"android"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Trailer/93.3.3516.28","percent":100,"type":"pc","system":"Chrome 122.0 Windows","browser":"chrome","version":122,"os":"win10"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Config/92.2.2788.20","percent":100,"type":"pc","system":"Chrome 122.0 Windows","browser":"chrome","version":122,"os":"win10"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0.1 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Mobile Safari 17.0 iOS","browser":"safari","version":17,"os":"ios"},{"useragent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Safari/605.1.15","percent":100,"type":"pc","system":"Safari 17.0 Mac OS X","browser":"safari","version":17,"os":"macos"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Mobile Safari 17.0 iOS","browser":"safari","version":17,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Mobile Safari 17.0 iOS","browser":"safari","version":17,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Mobile Safari 17.0 iOS","browser":"safari","version":17,"os":"ios"},{"useragent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0.1 Safari/605.1.15","percent":100,"type":"pc","system":"Safari 17.0 Mac OS X","browser":"safari","version":17,"os":"macos"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 DuckDuckGo/7 Safari/605.1.15","percent":100,"type":"mobile","system":"DuckDuckGo Mobile 7.0 iOS","browser":"DuckDuckGo Mobile","version":7,"os":"ios"},{"useragent":"Mozilla/5.0 (iPad; CPU OS 17_0_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0.1 Mobile/15E148 Safari/604.1","percent":100,"type":"tablet","system":"Mobile Safari 17.0 iOS","browser":"safari","version":17,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/121.0.2277.99 Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Edge Mobile 121.0 iOS","browser":"edge","version":121,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/120.0.2210.150 Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Edge Mobile 120.0 iOS","browser":"edge","version":120,"os":"ios"},{"useragent":"Mozilla/5.0 (iPad; CPU OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"tablet","system":"Mobile Safari 17.0 iOS","browser":"safari","version":17,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/120.0.2210.141 Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Edge Mobile 120.0 iOS","browser":"edge","version":120,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 DuckDuckGo/7 Safari/605.1.15","percent":100,"type":"mobile","system":"DuckDuckGo Mobile 7.0 iOS","browser":"DuckDuckGo Mobile","version":7,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/121.0.2277.107 Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Edge Mobile 121.0 iOS","browser":"edge","version":121,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/120.0.2210.126 Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Edge Mobile 120.0 iOS","browser":"edge","version":120,"os":"ios"},{"useragent":"Mozilla/5.0 (iPad; CPU OS 17_0_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"tablet","system":"Mobile Safari 17.0 iOS","browser":"safari","version":17,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 DuckDuckGo/7 Safari/605.1.15","percent":100,"type":"mobile","system":"DuckDuckGo Mobile 7.0 iOS","browser":"DuckDuckGo Mobile","version":7,"os":"ios"},{"useragent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 DuckDuckGo/7 Safari/605.1.15","percent":100,"type":"pc","system":"Safari 17.0 Mac OS X","browser":"safari","version":17,"os":"macos"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/120.0.2210.150 Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Edge Mobile 120.0 iOS","browser":"edge","version":120,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) AvastSecureBrowser/5.3.1 Mobile/15E148 Version/17.0 Safari/605.1.15","percent":100,"type":"mobile","system":"Mobile Safari UI/WKWebView 17.0 iOS","browser":"safari","version":17,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/120.0.2210.116 Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Edge Mobile 120.0 iOS","browser":"edge","version":120,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/120.0.2210.86 Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Edge Mobile 120.0 iOS","browser":"edge","version":120,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/119.0.2151.105 Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Edge Mobile 119.0 iOS","browser":"edge","version":119,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/119.0.2151.96 Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Edge Mobile 119.0 iOS","browser":"edge","version":119,"os":"ios"},{"useragent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Safari/605.1.15","percent":100,"type":"pc","system":"Safari 17.0 Mac OS X","browser":"safari","version":17,"os":"macos"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1 OPX/2.2.0","percent":100,"type":"mobile","system":"Mobile Safari 17.0 iOS","browser":"safari","version":17,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0.3 Mobile/15E148 Safari/604.1 RDDocuments/8.7.2.978","percent":100,"type":"mobile","system":"Mobile Safari 17.0 iOS","browser":"safari","version":17,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/117.0.2045.48 Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Edge Mobile 117.0 iOS","browser":"edge","version":117,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/121.0.2277.107 Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Edge Mobile 121.0 iOS","browser":"edge","version":121,"os":"ios"},{"useragent":"Mozilla/5.0 (X11; Ubuntu; Linux x86_64) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Safari/605.1.15","percent":100,"type":"pc","system":"Safari 17.0 Ubuntu","browser":"safari","version":17,"os":"linux"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1 Ddg/17.0","percent":100,"type":"mobile","system":"Mobile Safari 17.0 iOS","browser":"safari","version":17,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/120.0.2210.86 Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Edge Mobile 120.0 iOS","browser":"edge","version":120,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/120.0.2210.105 Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Edge Mobile 120.0 iOS","browser":"edge","version":120,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/119.0.2151.105 Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Edge Mobile 119.0 iOS","browser":"edge","version":119,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/119.0.2151.78 Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Edge Mobile 119.0 iOS","browser":"edge","version":119,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/119.0.2151.65 Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Edge Mobile 119.0 iOS","browser":"edge","version":119,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/118.0.2088.68 Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Edge Mobile 118.0 iOS","browser":"edge","version":118,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1 OPT/4.3.1","percent":100,"type":"mobile","system":"Mobile Safari 17.0 iOS","browser":"safari","version":17,"os":"ios"},{"useragent":"Mozilla/5.0 (iPad; CPU OS 17_0_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/605.1.15","percent":100,"type":"tablet","system":"Mobile Safari 17.0 iOS","browser":"safari","version":17,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Mobile Safari 17.0 iOS","browser":"safari","version":17,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/116.0.1938.79 Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Edge Mobile 116.0 iOS","browser":"edge","version":116,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1 OPT/4.2.3","percent":100,"type":"mobile","system":"Mobile Safari 17.0 iOS","browser":"safari","version":17,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/116.0.1938.72 Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Edge Mobile 116.0 iOS","browser":"edge","version":116,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1 OPX/2.1.0","percent":100,"type":"mobile","system":"Mobile Safari 17.0 iOS","browser":"safari","version":17,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/116.0.1938.56 Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Edge Mobile 116.0 iOS","browser":"edge","version":116,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1 OPX/2.0.1","percent":100,"type":"mobile","system":"Mobile Safari 17.0 iOS","browser":"safari","version":17,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1 RDDocuments/8.4.8.940","percent":100,"type":"mobile","system":"Mobile Safari 17.0 iOS","browser":"safari","version":17,"os":"ios"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/121.0.2277.107 Version/17.0 Mobile/15E148 Safari/604.1","percent":100,"type":"mobile","system":"Edge Mobile 121.0 iOS","browser":"edge","version":121,"os":"ios"}]
1
+ [{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36","platform":"desktop","system":"windows","browser":"chrome"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36","platform":"desktop","system":"windows","browser":"chrome"},{"useragent":"Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36","platform":"desktop","system":"windows","browser":"chrome"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.2651.86","platform":"desktop","system":"windows","browser":"edge"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0","platform":"desktop","system":"windows","browser":"firefox"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:129.0) Gecko/20100101 Firefox/129.0","platform":"desktop","system":"windows","browser":"firefox"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 OPR/112.0.0.0","platform":"desktop","system":"windows","browser":"opera"},{"useragent":"Mozilla/5.0 (Windows NT 10.0; WOW64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 OPR/112.0.0.0","platform":"desktop","system":"windows","browser":"opera"},{"useragent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 14_6_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36","platform":"desktop","system":"macos","browser":"chrome"},{"useragent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 14_6_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.2651.86","platform":"desktop","system":"macos","browser":"edge"},{"useragent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 14.6; rv:128.0) Gecko/20100101 Firefox/128.0","platform":"desktop","system":"macos","browser":"firefox"},{"useragent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 14.6; rv:129.0) Gecko/20100101 Firefox/129.0","platform":"desktop","system":"macos","browser":"firefox"},{"useragent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 14.6; rv:128.0) Gecko/20100101 Firefox/128.0","platform":"desktop","system":"macos","browser":"firefox"},{"useragent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 14_6_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 OPR/112.0.0.0","platform":"desktop","system":"macos","browser":"opera"},{"useragent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 14_6_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15","platform":"desktop","system":"macos","browser":"safari"},{"useragent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36","platform":"desktop","system":"linux","browser":"chrome"},{"useragent":"Mozilla/5.0 (X11; Linux i686; rv:128.0) Gecko/20100101 Firefox/128.0","platform":"desktop","system":"linux","browser":"firefox"},{"useragent":"Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0","platform":"desktop","system":"linux","browser":"firefox"},{"useragent":"Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:128.0) Gecko/20100101 Firefox/128.0","platform":"desktop","system":"linux","browser":"firefox"},{"useragent":"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0","platform":"desktop","system":"linux","browser":"firefox"},{"useragent":"Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0","platform":"desktop","system":"linux","browser":"firefox"},{"useragent":"Mozilla/5.0 (X11; Linux i686; rv:129.0) Gecko/20100101 Firefox/129.0","platform":"desktop","system":"linux","browser":"firefox"},{"useragent":"Mozilla/5.0 (X11; Linux x86_64; rv:129.0) Gecko/20100101 Firefox/129.0","platform":"desktop","system":"linux","browser":"firefox"},{"useragent":"Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:129.0) Gecko/20100101 Firefox/129.0","platform":"desktop","system":"linux","browser":"firefox"},{"useragent":"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:129.0) Gecko/20100101 Firefox/129.0","platform":"desktop","system":"linux","browser":"firefox"},{"useragent":"Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:129.0) Gecko/20100101 Firefox/129.0","platform":"desktop","system":"linux","browser":"firefox"},{"useragent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 OPR/112.0.0.0","platform":"desktop","system":"linux","browser":"opera"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/127.0.6533.107 Mobile/15E148 Safari/604.1","platform":"mobile","system":"ios","browser":"chrome"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 EdgiOS/127.2651.96 Mobile/15E148 Safari/605.1.15","platform":"mobile","system":"ios","browser":"edge"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 14_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/129.0 Mobile/15E148 Safari/605.1.15","platform":"mobile","system":"ios","browser":"firefox"},{"useragent":"Mozilla/5.0 (iPhone; CPU iPhone OS 17_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Mobile/15E148 Safari/604.1","platform":"mobile","system":"ios","browser":"safari"},{"useragent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.6533.103 Mobile Safari/537.36","platform":"mobile","system":"android","browser":"chrome"},{"useragent":"Mozilla/5.0 (Linux; Android 14; SM-A205U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.6533.103 Mobile Safari/537.36","platform":"mobile","system":"android","browser":"chrome"},{"useragent":"Mozilla/5.0 (Linux; Android 14; SM-A102U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.6533.103 Mobile Safari/537.36","platform":"mobile","system":"android","browser":"chrome"},{"useragent":"Mozilla/5.0 (Linux; Android 14; SM-G960U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.6533.103 Mobile Safari/537.36","platform":"mobile","system":"android","browser":"chrome"},{"useragent":"Mozilla/5.0 (Linux; Android 14; SM-N960U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.6533.103 Mobile Safari/537.36","platform":"mobile","system":"android","browser":"chrome"},{"useragent":"Mozilla/5.0 (Linux; Android 14; LM-Q720) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.6533.103 Mobile Safari/537.36","platform":"mobile","system":"android","browser":"chrome"},{"useragent":"Mozilla/5.0 (Linux; Android 14; LM-X420) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.6533.103 Mobile Safari/537.36","platform":"mobile","system":"android","browser":"chrome"},{"useragent":"Mozilla/5.0 (Linux; Android 14; LM-Q710(FGN)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.6533.103 Mobile Safari/537.36","platform":"mobile","system":"android","browser":"chrome"},{"useragent":"Mozilla/5.0 (Linux; Android 10; HD1913) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.6533.103 Mobile Safari/537.36 EdgA/127.0.2651.82","platform":"mobile","system":"android","browser":"edge"},{"useragent":"Mozilla/5.0 (Linux; Android 10; SM-G973F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.6533.103 Mobile Safari/537.36 EdgA/127.0.2651.82","platform":"mobile","system":"android","browser":"edge"},{"useragent":"Mozilla/5.0 (Linux; Android 10; Pixel 3 XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.6533.103 Mobile Safari/537.36 EdgA/127.0.2651.82","platform":"mobile","system":"android","browser":"edge"},{"useragent":"Mozilla/5.0 (Linux; Android 10; ONEPLUS A6003) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.6533.103 Mobile Safari/537.36 EdgA/127.0.2651.82","platform":"mobile","system":"android","browser":"edge"},{"useragent":"Mozilla/5.0 (Android 14; Mobile; rv:128.0) Gecko/128.0 Firefox/128.0","platform":"mobile","system":"android","browser":"firefox"},{"useragent":"Mozilla/5.0 (Android 14; Mobile; LG-M255; rv:128.0) Gecko/128.0 Firefox/128.0","platform":"mobile","system":"android","browser":"firefox"},{"useragent":"Mozilla/5.0 (Linux; Android 10; VOG-L29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.6533.103 Mobile Safari/537.36 OPR/76.2.4027.73374","platform":"mobile","system":"android","browser":"opera"},{"useragent":"Mozilla/5.0 (Linux; Android 10; SM-G970F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.6533.103 Mobile Safari/537.36 OPR/76.2.4027.73374","platform":"mobile","system":"android","browser":"opera"},{"useragent":"Mozilla/5.0 (Linux; Android 10; SM-N975F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.6533.64 Mobile Safari/537.36 OPR/76.2.4027.73374","platform":"mobile","system":"android","browser":"opera"},{"useragent":"Mozilla/5.0 (iPad; CPU OS 17_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/127.0.6533.107 Mobile/15E148 Safari/604.1","platform":"tablet","system":"ios","browser":"chrome"},{"useragent":"Mozilla/5.0 (iPad; CPU OS 14_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/129.0 Mobile/15E148 Safari/605.1.15","platform":"tablet","system":"ios","browser":"firefox"},{"useragent":"Mozilla/5.0 (iPad; CPU OS 17_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Mobile/15E148 Safari/604.1","platform":"tablet","system":"ios","browser":"safari"}]
data/lib/fake_agent.rb CHANGED
@@ -5,73 +5,338 @@ require "json"
5
5
 
6
6
  module FakeAgent
7
7
  class FakeAgent
8
- @browsers = %w[edge chrome safari firefox]
9
- @os = %w[windows macos linux android ios]
10
- @platforms = %w[pc mobile tablet]
8
+ @browsers = %w[edge chrome safari firefox opera]
9
+ @systems = %w[windows macos linux android ios]
10
+ @platforms = %w[desktop mobile tablet]
11
11
  agents = File.read(File.join(__dir__, "browsers.json"))
12
12
  @data = JSON.parse(agents)
13
13
 
14
14
  class << self
15
- def random
16
- get_agent(@data)
15
+ ##
16
+ # Produces a random user agent
17
+ #
18
+ # @param browsers [Array<String>, String, nil]
19
+ # @param systems [Array<String>, String, nil]
20
+ # @param platforms [Array<String>, String, nil]
21
+ #
22
+ # @return [String]
23
+ #
24
+ # @example
25
+ # FakeAgent::FakeAgent.random
26
+ # @example
27
+ # FakeAgent::FakeAgent.random(browsers: "chrome")
28
+ # @example
29
+ # FakeAgent::FakeAgent.random(browsers: %w[chrome safari firefox opera edge])
30
+ # @example
31
+ # FakeAgent::FakeAgent.random(systems: "windows")
32
+ # @example
33
+ # FakeAgent::FakeAgent.random(systems: %w[windows macos linux android ios])
34
+ # @example
35
+ # FakeAgent::FakeAgent.random(platforms: "mobile")
36
+ # @example
37
+ # FakeAgent::FakeAgent.random(platforms: %w[desktop mobile tablet])
38
+ # @example
39
+ # FakeAgent::FakeAgent.random(browsers: "chrome", systems: "windows", platforms: "desktop")
40
+ # @example
41
+ # FakeAgent::FakeAgent.random(browsers: %w[chrome firefox opera edge], systems: "windows", platforms: "desktop")
42
+ # @example
43
+ # FakeAgent::FakeAgent.random(browsers: %w[chrome firefox], systems: %w[windows macos])
44
+ def random(browsers: @browsers, systems: @systems, platforms: @platforms)
45
+ get_agent(browsers: Array(browsers), systems: Array(systems), platforms: Array(platforms))
17
46
  end
18
47
 
19
- def chrome
20
- get_agent(@data.select { |x| x["browser"] == "chrome" })
48
+ # Generates a user agent string for Chrome
49
+ #
50
+ # @param systems [Array<String>, String, nil]
51
+ # @param platforms [Array<String>, String, nil]
52
+ #
53
+ # @return [String]
54
+ #
55
+ # @example
56
+ # FakeAgent::FakeAgent.chrome
57
+ # @example
58
+ # FakeAgent::FakeAgent.chrome(systems: "windows")
59
+ # @example
60
+ # FakeAgent::FakeAgent.chrome(systems: %w[windows macos linux android ios])
61
+ # @example
62
+ # FakeAgent::FakeAgent.chrome(platforms: "mobile")
63
+ # @example
64
+ # FakeAgent::FakeAgent.chrome(platforms: %w[desktop mobile tablet])
65
+ # @example
66
+ # FakeAgent::FakeAgent.chrome(systems: %w[windows linux], platforms: "desktop")
67
+ def chrome(systems: @systems, platforms: @platforms)
68
+ get_agent(browsers: %w[chrome], systems: Array(systems), platforms: Array(platforms))
21
69
  end
22
70
 
23
- def safari
24
- get_agent(@data.select { |x| x["browser"] == "safari" })
71
+ # Generates a user agent string for Safari
72
+ #
73
+ # @param systems [Array<String>, String, nil]
74
+ # @param platforms [Array<String>, String, nil]
75
+ #
76
+ # @return [String]
77
+ #
78
+ # @example
79
+ # FakeAgent::FakeAgent.safari
80
+ # @example
81
+ # FakeAgent::FakeAgent.safari(systems: "macos")
82
+ # @example
83
+ # FakeAgent::FakeAgent.safari(systems: %w[macos ios])
84
+ # @example
85
+ # FakeAgent::FakeAgent.safari(platforms: "mobile")
86
+ # @example
87
+ # FakeAgent::FakeAgent.safari(platforms: %w[desktop mobile tablet])
88
+ # @example
89
+ # FakeAgent::FakeAgent.safari(systems: %w[macos ios], %w[desktop mobile tablet])
90
+ def safari(systems: @systems, platforms: @platforms)
91
+ get_agent(browsers: %w[safari], systems: Array(systems), platforms: Array(platforms))
25
92
  end
26
93
 
27
- def firefox
28
- get_agent(@data.select { |x| x["browser"] == "firefox" })
94
+ # Generates a user agent string for Firefox
95
+ #
96
+ # @param systems [Array<String>, String, nil]
97
+ # @param platforms [Array<String>, String, nil]
98
+ #
99
+ # @return [String]
100
+ # @example
101
+ # FakeAgent::FakeAgent.firefox
102
+ # @example
103
+ # FakeAgent::FakeAgent.firefox(systems: "windows")
104
+ # @example
105
+ # FakeAgent::FakeAgent.firefox(systems: %w[windows macos linux android ios])
106
+ # @example
107
+ # FakeAgent::FakeAgent.firefox(platforms: "mobile")
108
+ # @example
109
+ # FakeAgent::FakeAgent.firefox(platforms: %w[desktop mobile tablet])
110
+ # @example
111
+ # FakeAgent::FakeAgent.firefox(systems: %w[windows linux], platforms: "desktop")
112
+ def firefox(systems: @systems, platforms: @platforms)
113
+ get_agent(browsers: %w[firefox], systems: Array(systems), platforms: Array(platforms))
29
114
  end
30
115
 
31
- def edge
32
- get_agent(@data.select { |x| x["browser"] == "edge" })
116
+ # Generates a user agent string for Edge
117
+ #
118
+ # @param systems [Array<String>, String, nil]
119
+ # @param platforms [Array<String>, String, nil]
120
+ #
121
+ # @return [String]
122
+ # @example
123
+ # FakeAgent::FakeAgent.edge
124
+ # @example
125
+ # FakeAgent::FakeAgent.edge(systems: "windows")
126
+ # @example
127
+ # FakeAgent::FakeAgent.edge(systems: %w[windows macos linux android ios])
128
+ # @example
129
+ # FakeAgent::FakeAgent.edge(platforms: "mobile")
130
+ # @example
131
+ # FakeAgent::FakeAgent.edge(platforms: %w[desktop mobile tablet])
132
+ # @example
133
+ # FakeAgent::FakeAgent.edge(systems: %w[windows macos], platforms: "desktop")
134
+ def edge(systems: @systems, platforms: @platforms)
135
+ get_agent(browsers: %w[edge], systems: Array(systems), platforms: Array(platforms))
33
136
  end
34
137
 
35
- def duckduckgo
36
- get_agent(@data.select { |x| x["browser"].downcase.include? "duckduckgo" })
138
+ # Generates a user agent string for Opera
139
+ #
140
+ # @param systems [Array<String>, String, nil]
141
+ # @param platforms [Array<String>, String, nil]
142
+ #
143
+ # @return [String]
144
+ # @example
145
+ # FakeAgent::FakeAgent.opera
146
+ # @example
147
+ # FakeAgent::FakeAgent.opera(systems: "windows")
148
+ # @example
149
+ # FakeAgent::FakeAgent.opera(systems: %w[windows macos linux android])
150
+ # @example
151
+ # FakeAgent::FakeAgent.opera(platforms: "desktop")
152
+ # @example
153
+ # FakeAgent::FakeAgent.opera(platforms: %w[desktop mobile tablet])
154
+ # @example
155
+ # FakeAgent::FakeAgent.opera(systems: %w[windows linux], platforms: "desktop")
156
+ def opera(systems: @systems, platforms: @platforms)
157
+ get_agent(browsers: %w[opera], systems: Array(systems), platforms: Array(platforms))
37
158
  end
38
159
 
39
- def windows
40
- get_agent(@data.select { |x| x["os"] == "win10" || x["os"] == "win11" })
160
+ # Generates a user agent string for Windows
161
+ #
162
+ # @param browsers [Array<String>, String, nil]
163
+ # @param platforms [Array<String>, String, nil]
164
+ #
165
+ # @return [String]
166
+ #
167
+ # @example
168
+ # FakeAgent::FakeAgent.windows
169
+ # @example
170
+ # FakeAgent::FakeAgent.windows(browsers: "chrome")
171
+ # @example
172
+ # FakeAgent::FakeAgent.windows(browsers: %w[chrome firefox edge opera])
173
+ # @example
174
+ # FakeAgent::FakeAgent.windows(platforms: "desktop")
175
+ # @example
176
+ # FakeAgent::FakeAgent.windows(browsers: %w[chrome firefox edge opera], platforms: "desktop")
177
+ def windows(browsers: @browsers, platforms: @platforms)
178
+ get_agent(browsers: Array(browsers), systems: %w[windows], platforms: Array(platforms))
41
179
  end
42
180
 
43
- def macos
44
- get_agent(@data.select { |x| x["os"] == "macos" })
181
+ # Generates a user agent string for MacOS
182
+ #
183
+ # @param browsers [Array<String>, String, nil]
184
+ # @param platforms [Array<String>, String, nil]
185
+ #
186
+ # @return [String]
187
+ #
188
+ # @example
189
+ # FakeAgent::FakeAgent.macos
190
+ # @example
191
+ # FakeAgent::FakeAgent.macos(browsers: "chrome")
192
+ # @example
193
+ # FakeAgent::FakeAgent.macos(browsers: %w[chrome firefox edge safari])
194
+ # @example
195
+ # FakeAgent::FakeAgent.macos(platforms: "desktop")
196
+ # @example
197
+ # FakeAgent::FakeAgent.macos(browsers: %w[chrome firefox edge safari], platforms: "desktop")
198
+ def macos(browsers: @browsers, platforms: @platforms)
199
+ get_agent(browsers: Array(browsers), systems: %w[macos], platforms: Array(platforms))
45
200
  end
46
201
 
47
- def linux
48
- get_agent(@data.select { |x| x["os"] == "linux" })
202
+ # Generates a user agent string for Linux
203
+ #
204
+ # @param browsers [Array<String>, String, nil]
205
+ # @param platforms [Array<String>, String, nil]
206
+ #
207
+ # @return [String]
208
+ #
209
+ # @example
210
+ # FakeAgent::FakeAgent.linux
211
+ # @example
212
+ # FakeAgent::FakeAgent.linux(browsers: "chrome")
213
+ # @example
214
+ # FakeAgent::FakeAgent.linux(browsers: %w[chrome firefox edge opera])
215
+ # @example
216
+ # FakeAgent::FakeAgent.linux(platforms: "desktop")
217
+ # @example
218
+ # FakeAgent::FakeAgent.linux(browsers: %w[chrome firefox edge opera], platforms: "desktop")
219
+ def linux(browsers: @browsers, platforms: @platforms)
220
+ get_agent(browsers: Array(browsers), systems: %w[linux], platforms: Array(platforms))
49
221
  end
50
222
 
51
- def android
52
- get_agent(@data.select { |x| x["os"] == "android" })
223
+ # Generates a user agent string for Android
224
+ #
225
+ # @param browsers [Array<String>, String, nil]
226
+ # @param platforms [Array<String>, String, nil]
227
+ #
228
+ # @return [String]
229
+ #
230
+ # @example
231
+ # FakeAgent::FakeAgent.android
232
+ # @example
233
+ # FakeAgent::FakeAgent.android(browsers: "chrome")
234
+ # @example
235
+ # FakeAgent::FakeAgent.android(browsers: %w[chrome firefox edge opera])
236
+ # @example
237
+ # FakeAgent::FakeAgent.android(platforms: "mobile")
238
+ # @example
239
+ # FakeAgent::FakeAgent.android(browsers: %w[chrome firefox edge opera], platforms: "mobile")
240
+ def android(browsers: @browsers, platforms: @platforms)
241
+ get_agent(browsers: Array(browsers), systems: %w[android], platforms: Array(platforms))
53
242
  end
54
243
 
55
- def ios
56
- get_agent(@data.select { |x| x["os"] == "ios" })
244
+ # Generates a user agent string for iOS
245
+ #
246
+ # @param browsers [Array<String>, String, nil]
247
+ # @param platforms [Array<String>, String, nil]
248
+ #
249
+ # @return [String]
250
+ #
251
+ # @example
252
+ # FakeAgent::FakeAgent.ios
253
+ # @example
254
+ # FakeAgent::FakeAgent.ios(browsers: "chrome")
255
+ # @example
256
+ # FakeAgent::FakeAgent.ios(browsers: %w[chrome firefox edge safari])
257
+ # @example
258
+ # FakeAgent::FakeAgent.ios(platforms: "mobile")
259
+ # @example
260
+ # FakeAgent::FakeAgent.ios(browsers: %w[chrome firefox edge safari], platforms: "mobile")
261
+ def ios(browsers: @browsers, platforms: @platforms)
262
+ get_agent(browsers: Array(browsers), systems: %w[ios], platforms: Array(platforms))
57
263
  end
58
264
 
59
- def pc
60
- get_agent(@data.select { |x| x["type"] == "pc" })
265
+ # Generates a user agent string for desktop
266
+ #
267
+ # @param browsers [Array<String>, String, nil]
268
+ # @param systems [Array<String>, String, nil]
269
+ #
270
+ # @return [String]
271
+ #
272
+ # @example
273
+ # FakeAgent::FakeAgent.desktop
274
+ # @example
275
+ # FakeAgent::FakeAgent.desktop(browsers: "chrome")
276
+ # @example
277
+ # FakeAgent::FakeAgent.desktop(browsers: %w[chrome firefox edge safari opera])
278
+ # @example
279
+ # FakeAgent::FakeAgent.desktop(systems: "windows")
280
+ # @example
281
+ # FakeAgent::FakeAgent.desktop(systems: %w[windows macos linux])
282
+ # @example
283
+ # FakeAgent::FakeAgent.desktop(browsers: %w[chrome firefox edge opera], systems: "windows")
284
+ def desktop(browsers: @browsers, systems: @systems)
285
+ get_agent(browsers: Array(browsers), systems: Array(systems), platforms: %w[desktop])
61
286
  end
62
287
 
63
- def mobile
64
- get_agent(@data.select { |x| x["type"] == "mobile" })
288
+ # Generates a user agent string for mobile
289
+ #
290
+ # @param browsers [Array<String>, String, nil]
291
+ # @param systems [Array<String>, String, nil]
292
+ #
293
+ # @return [String]
294
+ #
295
+ # @example
296
+ # FakeAgent::FakeAgent.mobile
297
+ # @example
298
+ # FakeAgent::FakeAgent.mobile(browsers: "chrome")
299
+ # @example
300
+ # FakeAgent::FakeAgent.mobile(browsers: %w[chrome firefox edge safari])
301
+ # @example
302
+ # FakeAgent::FakeAgent.mobile(systems: "ios")
303
+ # @example
304
+ # FakeAgent::FakeAgent.mobile(systems: %w[android ios])
305
+ # @example
306
+ # FakeAgent::FakeAgent.mobile(browsers: %w[chrome firefox edge opera], systems: "android")
307
+ def mobile(browsers: @browsers, systems: @systems)
308
+ get_agent(browsers: Array(browsers), systems: Array(systems), platforms: %w[mobile])
65
309
  end
66
310
 
67
- def tablet
68
- get_agent(@data.select { |x| x["type"] == "tablet" })
311
+ # Generates a user agent string for tablet
312
+ #
313
+ # @param browsers [Array<String>, String, nil]
314
+ # @param systems [Array<String>, String, nil]
315
+ #
316
+ # @return [String]
317
+ #
318
+ # @example
319
+ # FakeAgent::FakeAgent.tablet
320
+ # @example
321
+ # FakeAgent::FakeAgent.tablet(browsers: "chrome")
322
+ # @example
323
+ # FakeAgent::FakeAgent.tablet(browsers: %w[chrome firefox edge safari])
324
+ # @example
325
+ # FakeAgent::FakeAgent.tablet(systems: "ios")
326
+ # @example
327
+ # FakeAgent::FakeAgent.tablet(browsers: %w[chrome firefox edge safari], systems: "ios")
328
+ def tablet(browsers: @browsers, systems: @systems)
329
+ get_agent(browsers: Array(browsers), systems: Array(systems), platforms: %w[tablet])
69
330
  end
70
331
 
71
332
  private
72
333
 
73
- def get_agent(browsers)
74
- browsers[Random.rand(browsers.length)]["useragent"]
334
+ def get_agent(browsers: @browsers, systems: @systems, platforms: @platforms)
335
+ data = @data.select do |x|
336
+ browsers.include? x["browser"] and systems.include? x["system"] and platforms.include? x["platform"]
337
+ end
338
+ data = @data if data.length <= 0
339
+ data[Random.rand(data.length)]["useragent"]
75
340
  end
76
341
  end
77
342
  end
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FakeAgent
4
- VERSION = "0.1.0"
4
+ VERSION = "0.2.0"
5
5
  end
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fake_agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - hypersport
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-08-04 00:00:00.000000000 Z
11
+ date: 2024-08-09 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: Up-to-date simple useragent faker with real world database.
13
+ description: Up-to-date simple user agents of the top 5 browsers in the world.
14
14
  email:
15
15
  - boss.yuan@outlook.com
16
16
  executables: []
@@ -26,9 +26,11 @@ licenses:
26
26
  metadata:
27
27
  homepage_uri: https://github.com/hypersport/fake_agent
28
28
  source_code_uri: https://github.com/hypersport/fake_agent
29
- changelog_uri: https://github.com/hypersport/fake_agent/main/CHANGELOG.md
30
- rubygems_mfa_required: 'true'
29
+ changelog_uri: https://github.com/hypersport/fake_agent/blob/main/CHANGELOG.md
30
+ bug_tracker_uri: https://github.com/hypersport/fake_agent/issues
31
+ documentation_uri: https://rubydoc.info/github/hypersport/fake_agent
31
32
  yard.run: yri
33
+ rubygems_mfa_required: 'true'
32
34
  post_install_message:
33
35
  rdoc_options: []
34
36
  require_paths: