aboutsummaryrefslogtreecommitdiff
path: root/www-clients/autogen.py
diff options
context:
space:
mode:
authorSyndamia <kamen@syndamia.com>2022-09-07 18:25:33 +0300
committerSyndamia <kamen@syndamia.com>2022-09-07 18:25:33 +0300
commit6ba6a2fed910e34fbd2b76335567bf25f8c575c5 (patch)
tree2b6441998ce724d8c8d9ffea8c942bd0f4a94fb1 /www-clients/autogen.py
parent57c2cdb8aabf3804be5fe9ca555f2d27054567b1 (diff)
downloadgarbage-6ba6a2fed910e34fbd2b76335567bf25f8c575c5.tar
garbage-6ba6a2fed910e34fbd2b76335567bf25f8c575c5.tar.gz
garbage-6ba6a2fed910e34fbd2b76335567bf25f8c575c5.zip
Added a downgraded version of brave-bin
Diffstat (limited to 'www-clients/autogen.py')
-rw-r--r--www-clients/autogen.py59
1 files changed, 59 insertions, 0 deletions
diff --git a/www-clients/autogen.py b/www-clients/autogen.py
new file mode 100644
index 0000000..c9ada62
--- /dev/null
+++ b/www-clients/autogen.py
@@ -0,0 +1,59 @@
+#!/usr/bin/env python3
+
+import json
+from datetime import timedelta
+from packaging import version
+
+
+def find_release(json_dict, channel="Release"):
+ releases = filter(
+ lambda x: x["prerelease"] is False
+ and x["draft"] is False
+ and x["name"].startswith(channel)
+ and not "Android" in x["name"],
+ json_dict,
+ )
+ releases = list(releases)
+ if not len(releases):
+ return None
+ return sorted(releases, key=lambda x: version.parse(x["tag_name"]))[-1]
+
+
+async def generate(hub, **pkginfo):
+
+ json_dict = await hub.pkgtools.fetch.get_page(
+ "https://api.github.com/repos/brave/brave-browser/releases?per_page=100", is_json=True, refresh_interval=timedelta(days=5)
+ )
+
+ # Try to use the latest release version, but fall back to latest nightly if none found:
+ release = None
+ dl_asset = None
+ for channel in ["Release", "Beta", "Dev", "Nightly"]:
+ r = find_release(json_dict, channel=channel)
+ if r:
+ dl_assets = list(
+ filter(
+ lambda x: x["browser_download_url"].endswith("-linux-amd64.zip")
+ or x["browser_download_url"].endswith("-linux-x64.zip"),
+ r["assets"],
+ )
+ )
+ if len(dl_assets):
+ release = r
+ dl_asset = dl_assets[0]
+ break
+
+ if release is None or dl_asset is None:
+ raise hub.pkgtools.ebuild.BreezyError("Can't find a suitable release of Brave.")
+
+ version = release["tag_name"][1:] # strip leading 'v'
+
+ url = dl_asset["browser_download_url"]
+
+ ebuild = hub.pkgtools.ebuild.BreezyBuild(
+ **pkginfo, version=version, artifacts=[hub.pkgtools.ebuild.Artifact(url=url)]
+ )
+ ebuild.push()
+
+
+# vim: ts=4 sw=4 noet