Git Product home page Git Product logo

Comments (2)

AScott-WWF avatar AScott-WWF commented on August 19, 2024

I have just written a new NeverGreen script to achieve this, this performs a web scrape of https://www.cutepdf.com/products/CutePDF/writer.asp

Then for each file matched, it assigns them to the appropriate Platform

Nevergreen with a Format-Table output (Get-NevergreenApp -Name AcroCutePDF | ft):

Name                  Platform          Architecture Type Version Uri
----                  --------          ------------ ---- ------- ---
Acro Software CutePDF CutePDF Writer    multi        exe  4.0     http://www.cutepdf.com/download/CuteWriter.exe
Acro Software CutePDF GPL PS Converter  multi        exe  8.15    http://www.cutepdf.com/download/converter.exe

Here is my script:

# Get-AcroCutePDF.ps1

$AppName = "Acro Software CutePDF"
$ReleaseUrl = "https://www.cutepdf.com/products/CutePDF/writer.asp"

Write-Verbose "Obtaining $($AppName) Release Versions..."

$AppVersions = @(
	@{Version = $Version; Type = 'exe'; Platform = 'CutePDF Writer'; Architecture = 'multi'; VersionPattern = 'Ver\.\s*(\d+\.\d+);'; DownloadPattern = '(?s)(<a href="([^"]*CuteWriter\.exe)".*?>.*?Free&nbsp;Download)'}
	@{Version = $Version; Type = 'exe'; Platform = 'GPL PS Converter'; Architecture = 'multi'; VersionPattern = 'GPLGS(\d+\.\d+);'; DownloadPattern = '(?s)(<a href="([^"]*converter\.exe)".*?>.*?Free\s*Converter)'}
)

foreach ($AppVersion in $AppVersions) {
	$SearchCount = 2 # This may need increasing as future versions are released
	[version]$Version = Get-Version -Uri $ReleaseUrl -Pattern $AppVersion.VersionPattern
	# Download Url is returned as ../../download/*.exe, so need to remove leading '../../' and append Domain Prefix to generate correct Url
	$Uri = Set-UriPrefix -Uri ((Get-Link -Uri $ReleaseUrl -MatchProperty outerHTML -Pattern $AppVersion.DownloadPattern).split("../")[2]) -Prefix 'http://www.cutepdf.com'

	do {
		if ($Uri) {
			#Build each link with Platform specific versions
			New-NevergreenApp -Name $AppName -Version $Version -Uri $Uri -Architecture $AppVersion.Architecture -Platform $AppVersion.Platform -Type $AppVersion.Type
			break
		}

		$SearchCount--
	} until ($SearchCount -eq 0)

	if ($SearchCount -eq 0) {
		Write-Warning "Could not find release for $($AppName) $($AppVersion.Platform)"
	}
}

from nevergreen.

AScott-WWF avatar AScott-WWF commented on August 19, 2024

@DanGough The above script will solve this new app request

from nevergreen.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.