aboutsummaryrefslogtreecommitdiff
path: root/docs/index.html
blob: 737e5ea5dc1bf13a763cfe0570a8aa7abb211231 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<script>
// with this we can very easily fetch the latest version of FlightCore
// and redirect to it, without having to update any version numbers on
// every release, simply change the search query to either "win-setup"
// or "appimage", without a query you will be redirect to the release
// page instead of the download
//
// so generally a request would look like this:
// 
//    r2northstartools.github.io/FlightCore/index.html?win-setup
//
// or
//
//    r2northstartools.github.io/FlightCore/index.html?appimage
//
// and to redirect to the release page:
//
//    r2northstartools.github.io/FlightCore/index.html

(async () => {
	// configuration of repo URL
	let repo = "FlightCore";
	let author = "R2NorthstarTools";
	let api = "https://api.github.com/repos";

	// actual API request
	let release = await (await fetch(`${api}/${author}/${repo}/releases/latest`)).json();
	let assets = release.assets;

	// this takes in a regEx and if something matches in the release's
	// files, it'll return the download link to it
	let get = (asset) => {
		for (let i in assets) {
			if (assets[i].name.match(asset)) {
				return assets[i].browser_download_url;
			}
		}
	}

	let url;

	// this refers to the actual search query, i.e "<page>?appimage"
	let search = location.search.replace(/^\?/, "");
	switch(search) {
		case "win-zip": // FlightCore_<version>_x64_en-US.zip
			url = get(/FlightCore_.*\.zip$/);
			break;
		case "win-setup": // FlightCore_<version>_x64_en-US.msi
			url = get(/FlightCore_.*\.msi$/);
			break;

		case "appimage": // flight-core_<version>_amd64.AppImage
			url = get(/flight-core_.*\.AppImage$/);
			break;

		default: // default to release page
			url = release.html_url;
			break;
	}

	// redirect to page
	location.replace(url);
})()
</script>