Alex313031 / Mercury

Firefox fork with compiler optimizations and patches from Librewolf, Waterfox, and GNU IceCat.
https://thorium.rocks/mercury
Mozilla Public License 2.0
1.03k stars 26 forks source link

Is there any way to be notified of browser releases for updates? #87

Open Aetopia opened 7 months ago

Aetopia commented 7 months ago

As the title says, I am wondering if there is anyway to be notified of browser updates via Mercury itself or I will need to keep track of releases via the repository?

Carl-Robert commented 7 months ago

There is no update server (and no update check) currently.

However any Github release can be tracked by using the hidden ATOM RSS feeds like so: https://github.com/Alex313031/Mercury/releases.atom The "releases.atom" tracks all posts under the tag "release" (so no pre-releases or other tags). Using auto-updating rss feeds works a lot better than tracking with Github in my opinion.

Chaython commented 6 months ago

you can use a script, like my one written for brave portable to update by setting it to as a task in task scheduler in windows.... https://github.com/Chaython/Brave-Portable-Updater just change the owner, repo and 'ends with' to be relevant to this repository

Chaython commented 6 months ago

So if you use windows, heres an example of my modified PS1 I haven't tested it though

# Set the owner and repository
$owner = "Alex313031"
$repo = "Mercury"

# Set the URL for the releases
$url = "https://api.github.com/repos/$owner/$repo/releases"

# Get the releases information
$response = Invoke-RestMethod -Uri $url
$releases = $response

# Find the most recent release with the required asset
$latestRelease = $null
foreach ($release in $releases) {
    foreach ($a in $release.assets) {
        if ($a.name.EndsWith("win64.zip")) {
            $latestRelease = $release
            break
        }
    }
    if ($latestRelease -ne $null) {
        break
    }
}

if ($latestRelease -ne $null) {
    # Find the asset with a name ending in win64.zip
    $asset = $null
    foreach ($a in $latestRelease.assets) {
        if ($a.name.EndsWith("win64.zip")) {
            $asset = $a
            break
        }
    }

    if ($asset -ne $null) {
        # Get the download URL for the asset
        $downloadUrl = $asset.browser_download_url

        # Download the asset
        Write-Host "Downloading asset..."
        $response = Invoke-WebRequest -Uri $downloadUrl

        # Save the asset to a file
        $filename = [System.IO.Path]::GetFileName($downloadUrl)
        [System.IO.File]::WriteAllBytes($filename, $response.Content)

        # Extract the asset to the specified directory
        $extractDir = ".\"

        # Delete existing data in the specified directory
        if (Test-Path -Path $extractDir) {
            Remove-Item -Path $extractDir -Recurse -Force
        }

        Write-Host "Extracting asset..."
        Expand-Archive -Path $filename -DestinationPath $extractDir

        # Delete the downloaded file
        Remove-Item -Path $filename

        Write-Host "Extraction completed successfully"
    } else {
        Write-Host "Asset not found"
    }
} else {
    Write-Host "No releases found"
}