From 6e5a25efd616e8d1ec8008a6f01cb7315f93bf3d Mon Sep 17 00:00:00 2001 From: Sean Molenaar Date: Mon, 8 May 2023 23:45:55 +0200 Subject: [PATCH] chore: update livechecks for GitHub API usage (#146730) * accord: fix livecheck for github API * bonitastudiocommunity: fix livecheck for github API * btcpayserver-vault: fix livecheck for github API * camera-live: fix livecheck for github API * chrysalis: fix livecheck for github API * desmume: fix livecheck for github API * elk: fix livecheck for github API * firefly: fix livecheck for github API * fvim: fix livecheck for github API * home-assistant: fix livecheck for github API * flame: fix livecheck for github API * josm: fix livecheck for github API * hydrus-network: fix livecheck for github API * jupyterlab: fix livecheck for github API * lbry: fix livecheck for github API * mambaforge: fix livecheck for github API * manyverse: fix livecheck for github API * miniforge: fix livecheck for github API * n1ghtshade: fix livecheck for github API * only-switch: fix livecheck for github API * onlyoffice: fix livecheck for github API * openrocket: fix livecheck for github API * outline-manager: fix livecheck for github API * pingnoo: fix livecheck for github API * plover: fix livecheck for github API * processing: fix livecheck for github API * ricochet-refresh: fix livecheck for github API * sequel-ace: fix livecheck for github API * time-to-leave: fix livecheck for github API * turtl: fix livecheck for github API * ubports-installer: fix livecheck for github API * utm: fix livecheck for github API * vidcutter: fix livecheck for github API * vimediamanager: fix livecheck for github API * vine-server: fix livecheck for github API * waterfox-classic: fix livecheck for github API * webots: fix livecheck for github API * wezterm: fix livecheck for github API * zesarux: fix livecheck for github API * desmume: update livecheck * extraterm: update livecheck * flame: update livecheck * fvim: update livecheck * home-assistant: update livecheck * obs-websocket: update livecheck * processing: update livecheck * sequel-ace: update livecheck * time-to-leave: update livecheck * turtl: update livecheck * vine-server: update livecheck * wezterm: update livecheck --------- Co-authored-by: Sam Ford <1584702+samford@users.noreply.github.com> --- Casks/accord.rb | 2 +- Casks/bonitastudiocommunity.rb | 2 +- Casks/btcpayserver-vault.rb | 2 +- Casks/camera-live.rb | 2 +- Casks/chrysalis.rb | 2 +- Casks/desmume.rb | 6 +++--- Casks/elk.rb | 2 +- Casks/extraterm.rb | 8 ++++++-- Casks/firefly.rb | 2 +- Casks/flame.rb | 6 +++--- Casks/fvim.rb | 10 +++++----- Casks/home-assistant.rb | 11 +++-------- Casks/hydrus-network.rb | 2 +- Casks/josm.rb | 2 +- Casks/jupyterlab.rb | 2 +- Casks/lbry.rb | 2 +- Casks/mambaforge.rb | 2 +- Casks/manyverse.rb | 2 +- Casks/miniforge.rb | 2 +- Casks/n1ghtshade.rb | 2 +- Casks/obs-websocket.rb | 8 ++++++-- Casks/only-switch.rb | 2 +- Casks/onlyoffice.rb | 2 +- Casks/openrocket.rb | 2 +- Casks/outline-manager.rb | 2 +- Casks/pingnoo.rb | 2 +- Casks/plover.rb | 2 +- Casks/processing.rb | 7 +++---- Casks/ricochet-refresh.rb | 2 +- Casks/sequel-ace.rb | 10 +++++----- Casks/time-to-leave.rb | 2 +- Casks/turtl.rb | 2 +- Casks/ubports-installer.rb | 2 +- Casks/utm.rb | 2 +- Casks/vidcutter.rb | 1 - Casks/vimediamanager.rb | 2 +- Casks/vine-server.rb | 6 +++--- Casks/waterfox-classic.rb | 2 +- Casks/webots.rb | 2 +- Casks/wezterm.rb | 6 +++--- Casks/zesarux.rb | 2 +- 41 files changed, 70 insertions(+), 69 deletions(-) diff --git a/Casks/accord.rb b/Casks/accord.rb index 39e989598b..f80e965f85 100644 --- a/Casks/accord.rb +++ b/Casks/accord.rb @@ -9,7 +9,7 @@ cask "accord" do livecheck do url :url - regex(%r{href=.*?/tag/v?\.?(\d+(?:\.\d+)+)["' >]}i) + regex(/v?\.?(\d+(?:\.\d+)+)/i) strategy :github_latest end diff --git a/Casks/bonitastudiocommunity.rb b/Casks/bonitastudiocommunity.rb index 8d122ee041..606bdc41a7 100644 --- a/Casks/bonitastudiocommunity.rb +++ b/Casks/bonitastudiocommunity.rb @@ -10,7 +10,7 @@ cask "bonitastudiocommunity" do livecheck do url :url - regex(%r{href=["']?[^"' >]*?/tag/[^"' >]*?(\d+(?:[.-]\d+)+(?:-\w+)?)["' >]}i) + regex(/(\d+(?:[.-]\d+)+(?:-\w+)?)/i) strategy :github_latest end diff --git a/Casks/btcpayserver-vault.rb b/Casks/btcpayserver-vault.rb index 284ab3cab9..7babbd5278 100644 --- a/Casks/btcpayserver-vault.rb +++ b/Casks/btcpayserver-vault.rb @@ -9,7 +9,7 @@ cask "btcpayserver-vault" do livecheck do url :url - regex(%r{href=["']?[^"' >]*?/tag/Vault/v?(\d+(?:\.\d+)+)["' >]}i) + regex(/v?(\d+(?:\.\d+)+)/i) strategy :github_latest end diff --git a/Casks/camera-live.rb b/Casks/camera-live.rb index 41d8a4a2e8..eb6b7eafab 100644 --- a/Casks/camera-live.rb +++ b/Casks/camera-live.rb @@ -9,7 +9,7 @@ cask "camera-live" do livecheck do url :url - regex(%r{href=["']?[^"' >]*?/tag/v?(\d+)["' >]}i) + regex(/v?(\d+)/i) strategy :github_latest end diff --git a/Casks/chrysalis.rb b/Casks/chrysalis.rb index f6d7fce5db..da0f28b607 100644 --- a/Casks/chrysalis.rb +++ b/Casks/chrysalis.rb @@ -12,7 +12,7 @@ cask "chrysalis" do # tag in a different repository, which led to an incorrect version match. livecheck do url :url - regex(%r{href=.*?/Chrysalis/releases/tag/v?(\d+(?:\.\d+)+)["' >]}i) + regex(/v?(\d+(?:\.\d+)+)/i) strategy :github_latest end diff --git a/Casks/desmume.rb b/Casks/desmume.rb index 06f24ad649..205df8d4e9 100644 --- a/Casks/desmume.rb +++ b/Casks/desmume.rb @@ -10,9 +10,9 @@ cask "desmume" do livecheck do url :url - regex(%r{href=["']?[^"' >]*?/tag/[^"' >]*?(\d+(?:[._-]\d+)+[a-z]?)["' >]}i) - strategy :github_latest do |page, regex| - page.scan(regex).map { |match| match[0].tr("_", ".") } + regex(/^(?:release[._-])?(\d+(?:[._-]\d+)+[a-z]?)$/i) + strategy :github_latest do |json, regex| + json["tag_name"]&.scan(regex)&.map { |match| match[0].tr("_", ".") } end end diff --git a/Casks/elk.rb b/Casks/elk.rb index a5b264146d..33c63ec68a 100644 --- a/Casks/elk.rb +++ b/Casks/elk.rb @@ -12,7 +12,7 @@ cask "elk" do livecheck do url :url - regex(%r{href=.*?/tag/elk[._-]native[._-]v?(\d+(?:\.\d+)+)["' >]}i) + regex(/elk[._-]native[._-]v?(\d+(?:\.\d+)+)/i) strategy :github_latest end diff --git a/Casks/extraterm.rb b/Casks/extraterm.rb index 08b17286ba..9998c9b82e 100644 --- a/Casks/extraterm.rb +++ b/Casks/extraterm.rb @@ -8,9 +8,13 @@ cask "extraterm" do desc "Swiss army chainsaw of terminal emulators" homepage "https://extraterm.org/" + # As of writing, upstream marks all releases on GitHub as "pre-release". + # This should be updated to use the `GithubLatest` strategy if/when stable + # versions become available. livecheck do - url :url - strategy :github_latest + url "https://github.com/sedwards2009/extraterm/releases" + regex(%r{href=["']?[^"' >]*?/tag/v?(\d+(?:\.\d+)+)["' >]}i) + strategy :page_match end app "ExtratermQt.app" diff --git a/Casks/firefly.rb b/Casks/firefly.rb index 1b622e178c..ef1d2242c9 100644 --- a/Casks/firefly.rb +++ b/Casks/firefly.rb @@ -10,7 +10,7 @@ cask "firefly" do livecheck do url :url - regex(%r{href=.*?/tag/desktop[._-]v?(\d+(?:\.\d+)+)["' >]}i) + regex(/desktop[._-]v?(\d+(?:\.\d+)+)/i) strategy :github_latest end diff --git a/Casks/flame.rb b/Casks/flame.rb index 1ecf495389..6247d46b72 100644 --- a/Casks/flame.rb +++ b/Casks/flame.rb @@ -11,9 +11,9 @@ cask "flame" do livecheck do url :url - regex(%r{href=.*?/tag/v?(\d+(?:\.\d+){1,2})(?:\s*[(._-](\d+)\)?)?["' >]}i) - strategy :github_latest do |page, regex| - page.scan(regex).map do |match| + regex(/^v?(\d+(?:\.\d+)+)(?:\((\d+)\))?$/i) + strategy :github_latest do |json, regex| + json["tag_name"]&.scan(regex)&.map do |match| match[1].present? ? "#{match[0]},#{match[1]}" : match[0] end end diff --git a/Casks/fvim.rb b/Casks/fvim.rb index 86d54e1354..84e68940f9 100644 --- a/Casks/fvim.rb +++ b/Casks/fvim.rb @@ -9,11 +9,11 @@ cask "fvim" do livecheck do url :url - strategy :github_latest do |page| - match = page.match(%r{href=.*?/tag/v?(\d+(?:\.\d+)+)\+(g?\h+)["' >]}i) - next if match.blank? - - "#{match[1]},#{match[2]}" + regex(/^v?(\d+(?:\.\d+)+)(?:[+-](g?\h+))?$/i) + strategy :github_latest do |json, regex| + json["tag_name"]&.scan(regex)&.map do |match| + match[1].present? ? "#{match[0]},#{match[1]}" : match[0] + end end end diff --git a/Casks/home-assistant.rb b/Casks/home-assistant.rb index 6e38f0cdb4..d531b5e740 100644 --- a/Casks/home-assistant.rb +++ b/Casks/home-assistant.rb @@ -8,16 +8,11 @@ cask "home-assistant" do desc "Companion app for Home Assistant home automation software" homepage "https://companion.home-assistant.io/" - # We use the GitHubLatest strategy as Home Assistant also tags pre-releases, and - # we also specify a regex since tags are unconventional, e.g. `2021.2.2/2021.55`, - # and use a custom block to replace the slash with a comma in the resulting version livecheck do url :url - strategy :github_latest do |page| - version = page.match(%r{href=".+/tree/(?:mac|release)/([\d.]+)/([\d.]+)"}i) - next if version.blank? - - "#{version[1]},#{version[2]}" + regex(%r{^(?:mac|release)/(\d+(?:\.\d+)+)/(\d+(?:\.\d+)*)}i) + strategy :github_latest do |json, regex| + json["tag_name"]&.scan(regex)&.map { |match| "#{match[0]},#{match[1]}" } end end diff --git a/Casks/hydrus-network.rb b/Casks/hydrus-network.rb index ec150ae6e1..734638a2af 100644 --- a/Casks/hydrus-network.rb +++ b/Casks/hydrus-network.rb @@ -10,7 +10,7 @@ cask "hydrus-network" do livecheck do url :url - regex(%r{href=["']?[^"' >]*?/tree/v?(\d+(?:\.\d+)*[a-z]?)[^"' >]*?["' >]}i) + regex(/v?(\d+(?:\.\d+)*[a-z]?)/i) strategy :github_latest end diff --git a/Casks/josm.rb b/Casks/josm.rb index c7a0f6ba56..e9474e7b3a 100644 --- a/Casks/josm.rb +++ b/Casks/josm.rb @@ -10,7 +10,7 @@ cask "josm" do livecheck do url :url - regex(%r{href=["']?[^"' >]*?/tree/\D*?(\d+(?:\.\d+)*)[^"' >]*?["' >]}i) + regex(/\D*?(\d+(?:\.\d+)*)/i) strategy :github_latest end diff --git a/Casks/jupyterlab.rb b/Casks/jupyterlab.rb index 95c0acb0a5..fd562b26b4 100644 --- a/Casks/jupyterlab.rb +++ b/Casks/jupyterlab.rb @@ -12,7 +12,7 @@ cask "jupyterlab" do livecheck do url :url - regex(%r{href=.*?/tag/v?(\d+(?:[.-]\d+)+)["' >]}i) + regex(/v?(\d+(?:[.-]\d+)+)/i) strategy :github_latest end diff --git a/Casks/lbry.rb b/Casks/lbry.rb index c146084542..477c06921d 100644 --- a/Casks/lbry.rb +++ b/Casks/lbry.rb @@ -10,7 +10,7 @@ cask "lbry" do livecheck do url :url - regex(%r{href=.*?/lbry-desktop/releases/tag/v?(\d+(?:\.\d+)+)["' >]}i) + regex(/v?(\d+(?:\.\d+)+)/i) strategy :github_latest end diff --git a/Casks/mambaforge.rb b/Casks/mambaforge.rb index 446cbbe7b0..52d903a531 100644 --- a/Casks/mambaforge.rb +++ b/Casks/mambaforge.rb @@ -12,7 +12,7 @@ cask "mambaforge" do livecheck do url :url - regex(%r{href=.*?/tag/v?(\d+(?:[._-]\d+)+)["' >]}i) + regex(/v?(\d+(?:[._-]\d+)+)/i) strategy :github_latest end diff --git a/Casks/manyverse.rb b/Casks/manyverse.rb index 72e2d65353..84d422b062 100644 --- a/Casks/manyverse.rb +++ b/Casks/manyverse.rb @@ -10,7 +10,7 @@ cask "manyverse" do livecheck do url :url - regex(%r{href=["']?[^"' >]*?/tag/v?(\d+(?:\.\d+)+-beta)["' >]}i) + regex(/v?(\d+(?:\.\d+)+-beta)/i) strategy :github_latest end diff --git a/Casks/miniforge.rb b/Casks/miniforge.rb index 1fc75ec173..7dd2411b8e 100644 --- a/Casks/miniforge.rb +++ b/Casks/miniforge.rb @@ -12,7 +12,7 @@ cask "miniforge" do livecheck do url :homepage - regex(%r{href=.*?/tag/v?(\d+(?:[.-]\d+)+)["' >]}i) + regex(/v?(\d+(?:[.-]\d+)+)/i) strategy :github_latest end diff --git a/Casks/n1ghtshade.rb b/Casks/n1ghtshade.rb index d4586c7bbd..95654e9db9 100644 --- a/Casks/n1ghtshade.rb +++ b/Casks/n1ghtshade.rb @@ -9,7 +9,7 @@ cask "n1ghtshade" do livecheck do url :url - regex(%r{href=.*?/tag/v?([\w._-]+)["' >]}i) + regex(/v?([\w._-]+)/i) strategy :github_latest end diff --git a/Casks/obs-websocket.rb b/Casks/obs-websocket.rb index 8bade01808..4e2b17e403 100644 --- a/Casks/obs-websocket.rb +++ b/Casks/obs-websocket.rb @@ -7,9 +7,13 @@ cask "obs-websocket" do desc "Remote-control OBS Studio through WebSockets" homepage "https://github.com/obsproject/obs-websocket" + # Upstream has published releases for two different major versions, so the + # "latest" release may be for an older major version. Unless/until this is + # resolved, we have to check more than just the "latest" release. livecheck do - url :url - strategy :github_latest + url "https://github.com/obsproject/obs-websocket/releases?q=prerelease%3Afalse" + regex(%r{href=["']?[^"' >]*?/tag/v?(\d+(?:\.\d+)+)[^"' >]*?["' >]}i) + strategy :page_match end pkg "obs-websocket-#{version}-macOS.pkg" diff --git a/Casks/only-switch.rb b/Casks/only-switch.rb index 21db8d2dda..6af23f03eb 100644 --- a/Casks/only-switch.rb +++ b/Casks/only-switch.rb @@ -9,7 +9,7 @@ cask "only-switch" do livecheck do url :url - regex(%r{href=["']?[^"' >]*?/tag/release[._-]v?(\d+(?:\.\d+)+)["' >]}i) + regex(/release[._-]v?(\d+(?:\.\d+)+)/i) strategy :github_latest end diff --git a/Casks/onlyoffice.rb b/Casks/onlyoffice.rb index 0e7f756a3b..9c8e45baac 100644 --- a/Casks/onlyoffice.rb +++ b/Casks/onlyoffice.rb @@ -13,7 +13,7 @@ cask "onlyoffice" do livecheck do url :url - regex(%r{href=["']?[^"' >]*?/tag/[^"' >]*?(\d+(?:\.\d+)+)["' >]}i) + regex(/(\d+(?:\.\d+)+)/i) strategy :github_latest end diff --git a/Casks/openrocket.rb b/Casks/openrocket.rb index f3aacc0c07..c465bc98bf 100644 --- a/Casks/openrocket.rb +++ b/Casks/openrocket.rb @@ -13,7 +13,7 @@ cask "openrocket" do livecheck do url :url - regex(%r{href=.*?/tag/v?(?:release)?[._-]?(\d+(?:\.\d+)+)["'>]}i) + regex(/v?(?:release)?[._-]?(\d+(?:\.\d+)+)/i) strategy :github_latest end diff --git a/Casks/outline-manager.rb b/Casks/outline-manager.rb index d016c64a9b..c18435c77a 100644 --- a/Casks/outline-manager.rb +++ b/Casks/outline-manager.rb @@ -10,7 +10,7 @@ cask "outline-manager" do livecheck do url :stable - regex(%r{href=["']?[^"' >]*?/tag/(?:manager[._-])?v?(\d+(?:\.\d+)+)["' >]}i) + regex(/(?:manager[._-])?v?(\d+(?:\.\d+)+)/i) strategy :github_latest end diff --git a/Casks/pingnoo.rb b/Casks/pingnoo.rb index e291eaa6b8..1d7ea254ee 100644 --- a/Casks/pingnoo.rb +++ b/Casks/pingnoo.rb @@ -10,7 +10,7 @@ cask "pingnoo" do livecheck do url :url - regex(%r{href=.*?/tag/v?(\d+(?:\.\d+)+-\w+)["' >]}i) + regex(/v?(\d+(?:\.\d+)+-\w+)/i) strategy :github_latest end diff --git a/Casks/plover.rb b/Casks/plover.rb index 289bec4805..1649ee54a4 100644 --- a/Casks/plover.rb +++ b/Casks/plover.rb @@ -10,7 +10,7 @@ cask "plover" do livecheck do url :url - regex(%r{href=.*?/tag/v?(\d+(?:\.\d+)+[\w.]+)["' >]}i) + regex(/v?(\d+(?:\.\d+)+[\w.]+)/i) strategy :github_latest end diff --git a/Casks/processing.rb b/Casks/processing.rb index 4cefd23cb9..69f59d2a25 100644 --- a/Casks/processing.rb +++ b/Casks/processing.rb @@ -13,10 +13,9 @@ cask "processing" do livecheck do url :url - regex(%r{href=.*?tree/processing[._-](\d+)[._-]v?(\d+(?:\.\d+)+)}i) - strategy :github_latest do |page| - page.scan(regex) - .map { |match| "#{match[1]},#{match[0]}" } + regex(/^processing[._-](\d+(?:\.\d+)*)[@_-](\d+(?:\.\d+)+)$/i) + strategy :github_latest do |json, regex| + json["tag_name"]&.scan(regex)&.map { |match| "#{match[1]},#{match[0]}" } end end diff --git a/Casks/ricochet-refresh.rb b/Casks/ricochet-refresh.rb index 6b8d28cfaf..2944fe0c93 100644 --- a/Casks/ricochet-refresh.rb +++ b/Casks/ricochet-refresh.rb @@ -10,7 +10,7 @@ cask "ricochet-refresh" do livecheck do url "https://github.com/blueprint-freespeech/ricochet-refresh/releases" - regex(%r{href=.*?/tag/v?(\d+(?:\.\d+)+)[-"' >]}i) + regex(/v?(\d+(?:\.\d+)+)/i) strategy :github_latest end diff --git a/Casks/sequel-ace.rb b/Casks/sequel-ace.rb index 1eb1583772..228b43da4e 100644 --- a/Casks/sequel-ace.rb +++ b/Casks/sequel-ace.rb @@ -9,11 +9,11 @@ cask "sequel-ace" do livecheck do url :url - strategy :github_latest do |page| - match = page.match(%r{href=.*?/tag/production/v?(\d+(?:\.\d+)+)-(\d+)["' >]}i) - next if match.blank? - - "#{match[1]},#{match[2]}" + regex(%r{^production/v?(\d+(?:\.\d+)+)(?:-(\d+))?}i) + strategy :github_latest do |json, regex| + json["tag_name"]&.scan(regex)&.map do |match| + match[1].present? ? "#{match[0]},#{match[1]}" : match[0] + end end end diff --git a/Casks/time-to-leave.rb b/Casks/time-to-leave.rb index aa6c20a25b..953660a306 100644 --- a/Casks/time-to-leave.rb +++ b/Casks/time-to-leave.rb @@ -11,7 +11,7 @@ cask "time-to-leave" do # on the GitHub releases page, so we have to use the `GithubLatest` strategy. livecheck do url :url - regex(%r{href=["']?[^"' >]*?/tag/\D*([^"' >]+?)["' >]}i) + regex(/^\D*?(\d+(?:\.\d+)+)$/i) strategy :github_latest end diff --git a/Casks/turtl.rb b/Casks/turtl.rb index a28028b4ef..7fbc6f6418 100644 --- a/Casks/turtl.rb +++ b/Casks/turtl.rb @@ -15,7 +15,7 @@ cask "turtl" do # newer version may wrongly appear to be older). livecheck do url :url - regex(%r{href=["']?[^"' >]*?/tag/\D*([^"' >]+?)["' >]}i) + regex(/^\D*?(\d+(?:\.\d+)+.*)$/i) strategy :github_latest end diff --git a/Casks/ubports-installer.rb b/Casks/ubports-installer.rb index b8db00363a..04cb0d07ad 100644 --- a/Casks/ubports-installer.rb +++ b/Casks/ubports-installer.rb @@ -10,7 +10,7 @@ cask "ubports-installer" do livecheck do url :url - regex(%r{href=.*?/tag/v?(\d+(?:\.\d+)+(?:-beta)?)["' >]}i) + regex(/v?(\d+(?:\.\d+)+(?:-beta)?)/i) strategy :github_latest end diff --git a/Casks/utm.rb b/Casks/utm.rb index 38c1b25020..5efccf360f 100644 --- a/Casks/utm.rb +++ b/Casks/utm.rb @@ -10,7 +10,7 @@ cask "utm" do livecheck do url :url - regex(%r{href=.*?/tag/v?(\d+(?:[.-]\d+)+)["' >]}i) + regex(/v?(\d+(?:[.-]\d+)+)/i) strategy :github_latest end diff --git a/Casks/vidcutter.rb b/Casks/vidcutter.rb index 3af11994d9..f6ac2fedb8 100644 --- a/Casks/vidcutter.rb +++ b/Casks/vidcutter.rb @@ -9,7 +9,6 @@ cask "vidcutter" do livecheck do url :url - regex(%r{href=.*?/VidCutter[._-]v?(\d+(?:\.\d+)+)[._-]macOS\.dmg}i) strategy :github_latest end diff --git a/Casks/vimediamanager.rb b/Casks/vimediamanager.rb index 918a804726..b6c770b116 100644 --- a/Casks/vimediamanager.rb +++ b/Casks/vimediamanager.rb @@ -9,7 +9,7 @@ cask "vimediamanager" do livecheck do url :url - regex(%r{href=.*?/v?(\d+(?:\.\d+)+[a-z]\d+)["' >]}i) + regex(/v?(\d+(?:\.\d+)+[a-z]\d+)/i) strategy :github_latest end diff --git a/Casks/vine-server.rb b/Casks/vine-server.rb index 76c9393f37..5081c4d050 100644 --- a/Casks/vine-server.rb +++ b/Casks/vine-server.rb @@ -9,9 +9,9 @@ cask "vine-server" do livecheck do url :url - regex(%r{href=["']?[^"' >]*?/tag/[^"' >]*?(\d+(?:[._-]\d+)+[a-z]?)["' >]}i) - strategy :github_latest do |page, regex| - page.scan(regex).map { |match| match[0].tr("_", ".") } + regex(/^v?(\d+(?:[._]\d+)+)$/i) + strategy :github_latest do |json, regex| + json["tag_name"]&.scan(regex)&.map { |match| match[0].tr("_", ".") } end end diff --git a/Casks/waterfox-classic.rb b/Casks/waterfox-classic.rb index 397827acbe..238faf4da4 100644 --- a/Casks/waterfox-classic.rb +++ b/Casks/waterfox-classic.rb @@ -10,7 +10,7 @@ cask "waterfox-classic" do livecheck do url :url - regex(%r{href=["']?[^"' >]*?/tag/v?(\d+(?:\.\d+)+)-classic["' >]}i) + regex(/v?(\d+(?:\.\d+)+)-classic/i) strategy :github_latest end diff --git a/Casks/webots.rb b/Casks/webots.rb index ac66572d81..5247a09a9c 100644 --- a/Casks/webots.rb +++ b/Casks/webots.rb @@ -11,7 +11,7 @@ cask "webots" do livecheck do url :url - regex(%r{href=.*?/tag/([\w._-]+)["' >]}i) + regex(/([\w._-]+)/i) strategy :github_latest end diff --git a/Casks/wezterm.rb b/Casks/wezterm.rb index 46174e0ed4..069a62492f 100644 --- a/Casks/wezterm.rb +++ b/Casks/wezterm.rb @@ -10,9 +10,9 @@ cask "wezterm" do livecheck do url :url - regex(%r{href=["']?[^"' >]*?/tag/[^"' >]*?(\d+(?:[.-]\d+)+)-(\h+)["' >]}i) - strategy :github_latest do |page, regex| - page.scan(regex).map { |match| "#{match[0]},#{match[1]}" } + regex(/^(\d+(?:[.-]\d+)+)-(\h+)$/i) + strategy :github_latest do |json, regex| + json["tag_name"]&.scan(regex)&.map { |match| "#{match[0]},#{match[1]}" } end end diff --git a/Casks/zesarux.rb b/Casks/zesarux.rb index a2f5dbab06..65e681d4c2 100644 --- a/Casks/zesarux.rb +++ b/Casks/zesarux.rb @@ -9,7 +9,7 @@ cask "zesarux" do livecheck do url :url - regex(%r{href=["']?[^"' >]*?/tag/ZEsarUX-(\d+(?:\.\d+)+)["' >]}i) + regex(/ZEsarUX-(\d+(?:\.\d+)+)/i) strategy :github_latest end