diff --git a/Tasks/#TrackerSoftware/Config.yaml b/Tasks/#TrackerSoftware/Config.yaml new file mode 100644 index 0000000000..ec50c7d731 --- /dev/null +++ b/Tasks/#TrackerSoftware/Config.yaml @@ -0,0 +1,2 @@ +Type: SimpleTask +Skip: false diff --git a/Tasks/#TrackerSoftware/Script.ps1 b/Tasks/#TrackerSoftware/Script.ps1 new file mode 100644 index 0000000000..b966655b1e --- /dev/null +++ b/Tasks/#TrackerSoftware/Script.ps1 @@ -0,0 +1 @@ +$Global:DumplingsStorage.TrackerSoftwareApps = Invoke-WebRequest -Uri 'https://www.pdf-xchange.com/updater/UpdaterData.xml' | Read-ResponseContent | ConvertFrom-Xml diff --git a/Tasks/TrackerSoftware.PDF-Tools/Config.yaml b/Tasks/TrackerSoftware.PDF-Tools/Config.yaml new file mode 100644 index 0000000000..98a2eddbbc --- /dev/null +++ b/Tasks/TrackerSoftware.PDF-Tools/Config.yaml @@ -0,0 +1,3 @@ +Type: PackageTask +WinGetIdentifier: TrackerSoftware.PDF-Tools +Skip: false diff --git a/Tasks/TrackerSoftware.PDF-Tools/Script.ps1 b/Tasks/TrackerSoftware.PDF-Tools/Script.ps1 new file mode 100644 index 0000000000..77ea83b747 --- /dev/null +++ b/Tasks/TrackerSoftware.PDF-Tools/Script.ps1 @@ -0,0 +1,84 @@ +# x86 +$Object1 = $Global:DumplingsStorage.TrackerSoftwareApps.UpdaterData.bundle.Where({ $_.id -eq 'Tools.x32' }, 'First')[0].update[-1] +$VersionX86 = $Object1.version + +# x64 +$Object2 = $Global:DumplingsStorage.TrackerSoftwareApps.UpdaterData.bundle.Where({ $_.id -eq 'Tools.x64' }, 'First')[0].update[-1] +$VersionX64 = $Object2.version + +# arm64 +$Object3 = $Global:DumplingsStorage.TrackerSoftwareApps.UpdaterData.bundle.Where({ $_.id -eq 'Tools.arm64' }, 'First')[0].update[-1] +$VersionARM64 = $Object3.version + +if (@(@($VersionX86, $VersionX64, $VersionARM64) | Sort-Object -Unique).Count -gt 1) { + $this.Log("Inconsistent versions: x86: ${VersionX86}, x64: ${VersionX64}, arm64 version: ${VersionARM64}", 'Error') + return +} + +# Version +$this.CurrentState.Version = $VersionX64 + +# Installer +$this.CurrentState.Installer += [ordered]@{ + Architecture = 'x86' + InstallerType = 'wix' + InstallerUrl = Join-Uri "https://downloads.pdf-xchange.com/$($this.CurrentState.Version)/" $Object1.url +} +$this.CurrentState.Installer += [ordered]@{ + Architecture = 'x64' + InstallerType = 'wix' + InstallerUrl = Join-Uri "https://downloads.pdf-xchange.com/$($this.CurrentState.Version)/" $Object2.url +} +$this.CurrentState.Installer += [ordered]@{ + Architecture = 'arm64' + InstallerType = 'wix' + InstallerUrl = Join-Uri "https://downloads.pdf-xchange.com/$($this.CurrentState.Version)/" $Object3.url +} + +switch -Regex ($this.Check()) { + 'New|Changed|Updated' { + try { + # ReleaseNotesUrl (en-US) + $this.CurrentState.Locale += [ordered]@{ + Locale = 'en-US' + Key = 'ReleaseNotesUrl' + Value = 'https://www.pdf-xchange.com/product/pdf-tools/history' + } + + $Object2 = Invoke-RestMethod -Uri 'https://www.pdf-xchange.com/build-history-feed/pdf-tools.xml' + + if ($ReleaseNotesObject = $Object2.Where({ $_.title.Contains($this.CurrentState.Version) }, 'First')) { + # ReleaseTime + $this.CurrentState.ReleaseTime = $ReleaseNotesObject[0].pubDate | Get-Date -AsUTC + + # ReleaseNotes (en-US) + $this.CurrentState.Locale += [ordered]@{ + Locale = 'en-US' + Key = 'ReleaseNotes' + Value = $ReleaseNotesObject[0].description.'#cdata-section' | ConvertFrom-Html | Get-TextContent | Format-Text + } + + # ReleaseNotesUrl (en-US) + $this.CurrentState.Locale += [ordered]@{ + Locale = 'en-US' + Key = 'ReleaseNotesUrl' + Value = $ReleaseNotesObject[0].link + } + } else { + $this.Log("No ReleaseTime, ReleaseNotes (en-US) and ReleaseNotesUrl for version $($this.CurrentState.Version)", 'Warning') + } + } catch { + $_ | Out-Host + $this.Log($_, 'Warning') + } + + $this.Print() + $this.Write() + } + 'Changed|Updated' { + $this.Message() + } + 'Updated' { + $this.Submit() + } +} diff --git a/Tasks/TrackerSoftware.PDF-XChangeEditor/Config.yaml b/Tasks/TrackerSoftware.PDF-XChangeEditor/Config.yaml new file mode 100644 index 0000000000..6385d96dc3 --- /dev/null +++ b/Tasks/TrackerSoftware.PDF-XChangeEditor/Config.yaml @@ -0,0 +1,3 @@ +Type: PackageTask +WinGetIdentifier: TrackerSoftware.PDF-XChangeEditor +Skip: false diff --git a/Tasks/TrackerSoftware.PDF-XChangeEditor/Script.ps1 b/Tasks/TrackerSoftware.PDF-XChangeEditor/Script.ps1 new file mode 100644 index 0000000000..5a9ecf200c --- /dev/null +++ b/Tasks/TrackerSoftware.PDF-XChangeEditor/Script.ps1 @@ -0,0 +1,84 @@ +# x86 +$Object1 = $Global:DumplingsStorage.TrackerSoftwareApps.UpdaterData.bundle.Where({ $_.id -eq 'Editor.x32' }, 'First')[0].update[-1] +$VersionX86 = $Object1.version + +# x64 +$Object2 = $Global:DumplingsStorage.TrackerSoftwareApps.UpdaterData.bundle.Where({ $_.id -eq 'Editor.x64' }, 'First')[0].update[-1] +$VersionX64 = $Object2.version + +# arm64 +$Object3 = $Global:DumplingsStorage.TrackerSoftwareApps.UpdaterData.bundle.Where({ $_.id -eq 'Editor.arm64' }, 'First')[0].update[-1] +$VersionARM64 = $Object3.version + +if (@(@($VersionX86, $VersionX64, $VersionARM64) | Sort-Object -Unique).Count -gt 1) { + $this.Log("Inconsistent versions: x86: ${VersionX86}, x64: ${VersionX64}, arm64 version: ${VersionARM64}", 'Error') + return +} + +# Version +$this.CurrentState.Version = $VersionX64 + +# Installer +$this.CurrentState.Installer += [ordered]@{ + Architecture = 'x86' + InstallerType = 'wix' + InstallerUrl = Join-Uri "https://downloads.pdf-xchange.com/$($this.CurrentState.Version)/" $Object1.url +} +$this.CurrentState.Installer += [ordered]@{ + Architecture = 'x64' + InstallerType = 'wix' + InstallerUrl = Join-Uri "https://downloads.pdf-xchange.com/$($this.CurrentState.Version)/" $Object2.url +} +$this.CurrentState.Installer += [ordered]@{ + Architecture = 'arm64' + InstallerType = 'wix' + InstallerUrl = Join-Uri "https://downloads.pdf-xchange.com/$($this.CurrentState.Version)/" $Object3.url +} + +switch -Regex ($this.Check()) { + 'New|Changed|Updated' { + try { + # ReleaseNotesUrl (en-US) + $this.CurrentState.Locale += [ordered]@{ + Locale = 'en-US' + Key = 'ReleaseNotesUrl' + Value = 'https://www.pdf-xchange.com/product/pdf-xchange-editor/history' + } + + $Object2 = Invoke-RestMethod -Uri 'https://www.pdf-xchange.com/build-history-feed/pdf-xchange-editor.xml' + + if ($ReleaseNotesObject = $Object2.Where({ $_.title.Contains($this.CurrentState.Version) }, 'First')) { + # ReleaseTime + $this.CurrentState.ReleaseTime = $ReleaseNotesObject[0].pubDate | Get-Date -AsUTC + + # ReleaseNotes (en-US) + $this.CurrentState.Locale += [ordered]@{ + Locale = 'en-US' + Key = 'ReleaseNotes' + Value = $ReleaseNotesObject[0].description.'#cdata-section' | ConvertFrom-Html | Get-TextContent | Format-Text + } + + # ReleaseNotesUrl (en-US) + $this.CurrentState.Locale += [ordered]@{ + Locale = 'en-US' + Key = 'ReleaseNotesUrl' + Value = $ReleaseNotesObject[0].link + } + } else { + $this.Log("No ReleaseTime, ReleaseNotes (en-US) and ReleaseNotesUrl for version $($this.CurrentState.Version)", 'Warning') + } + } catch { + $_ | Out-Host + $this.Log($_, 'Warning') + } + + $this.Print() + $this.Write() + } + 'Changed|Updated' { + $this.Message() + } + 'Updated' { + $this.Submit() + } +} diff --git a/Tasks/TrackerSoftware.PDF-XChangePRO/Config.yaml b/Tasks/TrackerSoftware.PDF-XChangePRO/Config.yaml new file mode 100644 index 0000000000..cfc66a9517 --- /dev/null +++ b/Tasks/TrackerSoftware.PDF-XChangePRO/Config.yaml @@ -0,0 +1,3 @@ +Type: PackageTask +WinGetIdentifier: TrackerSoftware.PDF-XChangePRO +Skip: false diff --git a/Tasks/TrackerSoftware.PDF-XChangePRO/Script.ps1 b/Tasks/TrackerSoftware.PDF-XChangePRO/Script.ps1 new file mode 100644 index 0000000000..e6538ef1e7 --- /dev/null +++ b/Tasks/TrackerSoftware.PDF-XChangePRO/Script.ps1 @@ -0,0 +1,97 @@ +# x86 +$Object1 = $Global:DumplingsStorage.TrackerSoftwareApps.UpdaterData.bundle.Where({ $_.id -eq 'Pro.x32' }, 'First')[0].update[-1] +$VersionX86 = $Object1.version + +# x64 +$Object2 = $Global:DumplingsStorage.TrackerSoftwareApps.UpdaterData.bundle.Where({ $_.id -eq 'Pro.x64' }, 'First')[0].update[-1] +$VersionX64 = $Object2.version + +# arm64 +$Object3 = $Global:DumplingsStorage.TrackerSoftwareApps.UpdaterData.bundle.Where({ $_.id -eq 'Pro.arm64' }, 'First')[0].update[-1] +$VersionARM64 = $Object3.version + +if (@(@($VersionX86, $VersionX64, $VersionARM64) | Sort-Object -Unique).Count -gt 1) { + $this.Log("Inconsistent versions: x86: ${VersionX86}, x64: ${VersionX64}, arm64 version: ${VersionARM64}", 'Error') + return +} + +# Version +$this.CurrentState.Version = $VersionX64 + +# Installer +$this.CurrentState.Installer += [ordered]@{ + Architecture = 'x86' + InstallerType = 'wix' + InstallerUrl = Join-Uri "https://downloads.pdf-xchange.com/$($this.CurrentState.Version)/" $Object1.url +} +$this.CurrentState.Installer += [ordered]@{ + Architecture = 'x64' + InstallerType = 'wix' + InstallerUrl = Join-Uri "https://downloads.pdf-xchange.com/$($this.CurrentState.Version)/" $Object2.url +} +$this.CurrentState.Installer += [ordered]@{ + Architecture = 'arm64' + InstallerType = 'wix' + InstallerUrl = Join-Uri "https://downloads.pdf-xchange.com/$($this.CurrentState.Version)/" $Object3.url +} + +switch -Regex ($this.Check()) { + 'New|Changed|Updated' { + try { + # ReleaseNotesUrl (en-US) + $this.CurrentState.Locale += [ordered]@{ + Locale = 'en-US' + Key = 'ReleaseNotesUrl' + Value = $ReleaseNotesUrl = 'https://www.pdf-xchange.com/product/pdf-xchange-pro/history' + } + + $Object2 = Invoke-WebRequest -Uri $ReleaseNotesUrl | ConvertFrom-Html + + if ($ReleaseNotesTitleNode = $Object2.SelectSingleNode("//h2[contains(., '$($this.CurrentState.Version)')]")) { + # ReleaseTime + $this.CurrentState.ReleaseTime = [datetime]::ParseExact( + [regex]::Match($ReleaseNotesTitleNode.SelectSingleNode('./following-sibling::p[contains(@class, "maintenance")]/span[contains(@class, "release-date-value")]').InnerText, '([a-zA-Z]+\W+\d{1,2}[a-zA-Z]+\W+20\d{2})').Groups[1].Value, + [string[]]@( + "MMM d'st', yyyy" + "MMM d'nd', yyyy" + "MMM d'rd', yyyy" + "MMM d'th', yyyy" + ), + (Get-Culture -Name 'en-US'), + [System.Globalization.DateTimeStyles]::None + ).ToString('yyyy-MM-dd') + + # Remove list prefix + $Object2.SelectNodes('//i[contains(@class, "icon")]').ForEach({ $_.Remove() }) + + # ReleaseNotes (en-US) + $this.CurrentState.Locale += [ordered]@{ + Locale = 'en-US' + Key = 'ReleaseNotes' + Value = $ReleaseNotesTitleNode.SelectNodes('./following-sibling::div[contains(@class, "bh-items")]') | Get-TextContent | Format-Text + } + + # ReleaseNotesUrl (en-US) + $this.CurrentState.Locale += [ordered]@{ + Locale = 'en-US' + Key = 'ReleaseNotesUrl' + Value = "${ReleaseNotesUrl}?build=$($this.CurrentState.Version)" + } + } else { + $this.Log("No ReleaseTime, ReleaseNotes (en-US) and ReleaseNotesUrl for version $($this.CurrentState.Version)", 'Warning') + } + } catch { + $_ | Out-Host + $this.Log($_, 'Warning') + } + + $this.Print() + $this.Write() + } + 'Changed|Updated' { + $this.Message() + } + 'Updated' { + $this.Submit() + } +} diff --git a/Tasks/TrackerSoftware.PDF-XChangeStandard/Config.yaml b/Tasks/TrackerSoftware.PDF-XChangeStandard/Config.yaml new file mode 100644 index 0000000000..450b0810e2 --- /dev/null +++ b/Tasks/TrackerSoftware.PDF-XChangeStandard/Config.yaml @@ -0,0 +1,3 @@ +Type: PackageTask +WinGetIdentifier: TrackerSoftware.PDF-XChangeStandard +Skip: false diff --git a/Tasks/TrackerSoftware.PDF-XChangeStandard/Script.ps1 b/Tasks/TrackerSoftware.PDF-XChangeStandard/Script.ps1 new file mode 100644 index 0000000000..45c3026b24 --- /dev/null +++ b/Tasks/TrackerSoftware.PDF-XChangeStandard/Script.ps1 @@ -0,0 +1,80 @@ +# x86 +$Object1 = $Global:DumplingsStorage.TrackerSoftwareApps.UpdaterData.bundle.Where({ $_.id -eq 'DriverStd.x32' }, 'First')[0].update[-1] +$VersionX86 = $Object1.version + +# x64 +$Object2 = $Global:DumplingsStorage.TrackerSoftwareApps.UpdaterData.bundle.Where({ $_.id -eq 'DriverStd.x64' }, 'First')[0].update[-1] +$VersionX64 = $Object2.version + +if ($VersionX86 -ne $VersionX64) { + $this.Log("Inconsistent versions: x86: ${VersionX86}, x64: ${VersionX64}", 'Error') + return +} + +# Version +$this.CurrentState.Version = $VersionX64 + +# Installer +$this.CurrentState.Installer += [ordered]@{ + Architecture = 'x86' + InstallerType = 'wix' + InstallerUrl = Join-Uri "https://downloads.pdf-xchange.com/$($this.CurrentState.Version)/" $Object1.url +} +$this.CurrentState.Installer += [ordered]@{ + Architecture = 'x64' + InstallerType = 'wix' + InstallerUrl = Join-Uri "https://downloads.pdf-xchange.com/$($this.CurrentState.Version)/" $Object2.url +} +$this.CurrentState.Installer += [ordered]@{ + Architecture = 'arm64' + InstallerType = 'wix' + InstallerUrl = "https://downloads.pdf-xchange.com/$($this.CurrentState.Version)/StandardV$($this.CurrentState.Version.Split('.')[0]).ARM64.msi" +} + +switch -Regex ($this.Check()) { + 'New|Changed|Updated' { + try { + # ReleaseNotesUrl (en-US) + $this.CurrentState.Locale += [ordered]@{ + Locale = 'en-US' + Key = 'ReleaseNotesUrl' + Value = 'https://www.pdf-xchange.com/product/pdf-xchange-standard/history' + } + + $Object2 = Invoke-RestMethod -Uri 'https://www.pdf-xchange.com/build-history-feed/pdf-xchange-standard.xml' + + if ($ReleaseNotesObject = $Object2.Where({ $_.title.Contains($this.CurrentState.Version) }, 'First')) { + # ReleaseTime + $this.CurrentState.ReleaseTime = $ReleaseNotesObject[0].pubDate | Get-Date -AsUTC + + # ReleaseNotes (en-US) + $this.CurrentState.Locale += [ordered]@{ + Locale = 'en-US' + Key = 'ReleaseNotes' + Value = $ReleaseNotesObject[0].description.'#cdata-section' | ConvertFrom-Html | Get-TextContent | Format-Text + } + + # ReleaseNotesUrl (en-US) + $this.CurrentState.Locale += [ordered]@{ + Locale = 'en-US' + Key = 'ReleaseNotesUrl' + Value = $ReleaseNotesObject[0].link + } + } else { + $this.Log("No ReleaseTime, ReleaseNotes (en-US) and ReleaseNotesUrl for version $($this.CurrentState.Version)", 'Warning') + } + } catch { + $_ | Out-Host + $this.Log($_, 'Warning') + } + + $this.Print() + $this.Write() + } + 'Changed|Updated' { + $this.Message() + } + 'Updated' { + $this.Submit() + } +}