fake_agent 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: