Load use agent info from storage

This commit is contained in:
z0ccc 2022-07-15 19:14:31 -04:00
parent d19cf53ab8
commit 813aee147f
2 changed files with 65 additions and 51 deletions

View file

@ -6,33 +6,57 @@ import UserAgentSelect from './UserAgentSelect'
const LocationPage = () => { const LocationPage = () => {
const [type, setType] = useState('desktop') const [type, setType] = useState('desktop')
const [operatingSystem, setOperatingSystem] = useState('linux') const [operatingSystem, setOperatingSystem] = useState('Windows')
const [browser, setBrowser] = useState('') const [browser, setBrowser] = useState('Chrome')
const [userAgent, setUserAgent] = useState('') const [userAgent, setUserAgent] = useState('')
useEffect(() => { useEffect(() => {
chrome.storage.sync.get(['type', 'userAgent'], (result) => { chrome.storage.sync.get(
['type', 'operatingSystem', 'browser', 'userAgent'],
(result) => {
result.type && setType(result.type) result.type && setType(result.type)
result.operatingSystem && setOperatingSystem(result.operatingSystem)
result.browser && setBrowser(result.browser)
result.userAgent && setUserAgent(result.userAgent) result.userAgent && setUserAgent(result.userAgent)
}) }
)
}, []) }, [])
useEffect(() => {
detachDebugger()
chrome.storage.sync.set({ userAgent })
}, [userAgent])
useEffect(() => {
type !== 'custom' &&
setUserAgent(userAgents[type][operatingSystem][browser])
}, [operatingSystem, browser, type])
const changeType = (e: any) => { const changeType = (e: any) => {
if (e.target.value === 'mobile') {
setOperatingSystem('Android')
} else if (e.target.value === 'desktop') {
setOperatingSystem('Windows')
}
detachDebugger() detachDebugger()
chrome.storage.sync.set({ type: e.target.value }) chrome.storage.sync.set({ type: e.target.value })
setType(e.target.value) setType(e.target.value)
} }
const changeOperatingSystem = (e: any) => { const changeOperatingSystem = (e: any) => {
// detachDebugger() console.log(e.target.value)
// chrome.storage.sync.set({ userAgent: e.target.value }) chrome.storage.sync.set({ operatingSystem: e.target.value })
// chrome.storage.sync.set({ type: 'custom' }) setOperatingSystem(e.target.value)
// setUserAgent(e.target.value) }
// setType('custom')
const changeBrowser = (e: any) => {
chrome.storage.sync.set({ browser: e.target.value })
setBrowser(e.target.value)
} }
const changeUserAgent = (e: any) => { const changeUserAgent = (e: any) => {
detachDebugger() detachDebugger()
console.log(e.target.value)
chrome.storage.sync.set({ userAgent: e.target.value }) chrome.storage.sync.set({ userAgent: e.target.value })
chrome.storage.sync.set({ type: 'custom' }) chrome.storage.sync.set({ type: 'custom' })
setUserAgent(e.target.value) setUserAgent(e.target.value)
@ -96,8 +120,8 @@ const LocationPage = () => {
<Select <Select
name="browser" name="browser"
id="browser" id="browser"
// value={operatingSystem} value={browser}
// onChange={changeOperatingSystem} onChange={changeBrowser}
mb={'8px'} mb={'8px'}
> >
{Object.keys(userAgents[type][operatingSystem]).map((key) => ( {Object.keys(userAgents[type][operatingSystem]).map((key) => (
@ -106,16 +130,6 @@ const LocationPage = () => {
</option> </option>
))} ))}
</Select> </Select>
{/* <UserAgentSelect
title="Operating System"
configuration={operatingSystem}
setConfiguration={setOperatingSystem}
/>
<UserAgentSelect
title="Browser"
configuration={browser}
setConfiguration={setBrowser}
/> */}
</> </>
)} )}
<Label htmlFor="userAgent">User Agent</Label> <Label htmlFor="userAgent">User Agent</Label>

View file

@ -1,56 +1,56 @@
const userAgents: any = { const userAgents: any = {
desktop: { desktop: {
windows: { Windows: {
chrome: Chrome:
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
edge: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36 Edg/103.0.1264.62', Edge: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36 Edg/103.0.1264.62',
firefox: Firefox:
'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0',
brave: Brave:
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Brave Chrome/83.0.4103.116 Safari/537.36', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Brave Chrome/83.0.4103.116 Safari/537.36',
}, },
mac: { Mac: {
safari: Safari:
'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Safari/605.1.15', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Safari/605.1.15',
chrome: Chrome:
'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
edge: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36 Edg/103.0.1264.62', Edge: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36 Edg/103.0.1264.62',
firefox: Firefox:
'Mozilla/5.0 (Macintosh; Intel Mac OS X 12.4; rv:102.0) Gecko/20100101 Firefox/102.0', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 12.4; rv:102.0) Gecko/20100101 Firefox/102.0',
brave: Brave:
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Brave Chrome/83.0.4103.116 Safari/537.36', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Brave Chrome/83.0.4103.116 Safari/537.36',
}, },
linux: { Linux: {
chrome: Chrome:
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36', 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
edge: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.44', Edge: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.44',
firefox: Firefox:
'Mozilla/5.0 (X11; Linux i686; rv:102.0) Gecko/20100101 Firefox/102.0', 'Mozilla/5.0 (X11; Linux i686; rv:102.0) Gecko/20100101 Firefox/102.0',
brave: Brave:
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Brave Chrome/80.0.3987.99 Safari/537.36', 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Brave Chrome/80.0.3987.99 Safari/537.36',
}, },
}, },
mobile: { mobile: {
android: { Android: {
samsung: Samsung:
'Mozilla/5.0 (Linux; Android 12; SAMSUNG SM-G991B) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/16.0 Chrome/92.0.4515.166 Mobile Safari/537.36', 'Mozilla/5.0 (Linux; Android 12; SAMSUNG SM-G991B) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/16.0 Chrome/92.0.4515.166 Mobile Safari/537.36',
chrome: Chrome:
'Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.71 Mobile Safari/537.36', 'Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.71 Mobile Safari/537.36',
edge: 'Mozilla/5.0 (Linux; Android 10; HD1913) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.71 Mobile Safari/537.36 EdgA/100.0.1185.50', Edge: 'Mozilla/5.0 (Linux; Android 10; HD1913) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.71 Mobile Safari/537.36 EdgA/100.0.1185.50',
firefox: Firefox:
'Mozilla/5.0 (Android 12; Mobile; rv:68.0) Gecko/68.0 Firefox/102.0', 'Mozilla/5.0 (Android 12; Mobile; rv:68.0) Gecko/68.0 Firefox/102.0',
brave: Brave:
'Mozilla/5.0 (Linux; Android 8.0.0; SM-G960F Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Mobile Safari/537.36', 'Mozilla/5.0 (Linux; Android 8.0.0; SM-G960F Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Mobile Safari/537.36',
}, },
ios: { iOS: {
safari: Safari:
'Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1',
chrome: Chrome:
'Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/103.0.5060.63 Mobile/15E148 Safari/604.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/103.0.5060.63 Mobile/15E148 Safari/604.1',
edge: 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 EdgiOS/100.1185.50 Mobile/15E148 Safari/605.1.15', Edge: 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 EdgiOS/100.1185.50 Mobile/15E148 Safari/605.1.15',
firefox: Firefox:
'Mozilla/5.0 (iPhone; CPU iPhone OS 12_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/102.0 Mobile/15E148 Safari/605.1.15', 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/102.0 Mobile/15E148 Safari/605.1.15',
brave: Brave:
'Mozilla/5.0 (iPhone; CPU iPhone OS 10_0 like Mac OS X) AppleWebKit/602.1.38 (KHTML, like Gecko) Brave/1.2.9 Mobile/14A5297c Safari/602.1.38', 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_0 like Mac OS X) AppleWebKit/602.1.38 (KHTML, like Gecko) Brave/1.2.9 Mobile/14A5297c Safari/602.1.38',
}, },
}, },