-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathupdate-data.ps1
More file actions
41 lines (32 loc) · 1.24 KB
/
update-data.ps1
File metadata and controls
41 lines (32 loc) · 1.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Write-Host 'Updating user-agent data...'
$uaJsonUri = "https://raw.githubusercontent.com/intoli/user-agents/main/src/user-agents.json.gz"
Write-Host 'Importing required modules...'
. .\scripts\ConvertFrom-Gzip.ps1
. .\scripts\Initialize-Dataset.ps1
Add-Type -Path .\tools\UAParser.dll
Write-Host 'Cleaning up temp directory...'
$temp = "temp"
if (Test-Path $temp) {
Remove-Item -Path $temp -Recurse -Force
}
New-Item -ItemType Directory -Path $temp | Out-Null
try {
Push-Location -Path $temp
Write-Host 'Downloading user-agents.json...'
Invoke-WebRequest -Uri $uaJsonUri -OutFile "user-agents.json.gz"
Write-Host 'Decompressing user-agents.json...'
ConvertFrom-Gzip -InputObject (Get-Item "user-agents.json.gz") -RemoveInputFile
Write-Host 'Processing user-agents.json...'
$processed = Initialize-Dataset -uaJsonPath "user-agents.json"
}
finally {
Pop-Location
}
Write-Host 'Exporting user-agents.dat...'
Push-Location .\Fake-UserAgent\data
$processed | Export-Clixml -Path user-agents.clixml -NoClobber
Write-Host 'Optimizing file size...'
Get-Content .\user-agents.clixml -Raw | ForEach-Object { $_ -replace '\s+(?=<)', '' } | Set-Content .\user-agents.dat
Remove-Item .\user-agents.clixml
Pop-Location
Write-Host 'Done!'