- The quick brown fox jumps over the lazy dog.
- The quick brown fox jumps over the lazy dog.
- The quick brown fox jumps over the lazy dog.
- The quick brown fox jumps over the lazy dog.
- The quick brown fox jumps over the lazy dog.
- The quick brown fox jumps over the lazy dog.
-
-
-
-
-
What's New
-
Apr 10, 2023
-
-
-
Version 2.0
-
0 KB
-
-
- The quick brown fox jumps over the lazy dog.
- The quick brown fox jumps over the lazy dog.
- The quick brown fox jumps over the lazy dog.
- The quick brown fox jumps over the lazy dog.
- The quick brown fox jumps over the lazy dog.
- The quick brown fox jumps over the lazy dog.
-
-
-
-
-
Permissions
-
-
-
-
-
None
-
The developer has not specified any permission required by this app.
+ The quick brown fox jumps over the lazy dog.
+ The quick brown fox jumps over the lazy dog.
+ The quick brown fox jumps over the lazy dog.
+ The quick brown fox jumps over the lazy dog.
+ The quick brown fox jumps over the lazy dog.
+ The quick brown fox jumps over the lazy dog.
+
+
+
+
+
What's New
+
Apr 10, 2023
+
+
+
Version 2.0
+
0 KB
+
+
+ The quick brown fox jumps over the lazy dog.
+ The quick brown fox jumps over the lazy dog.
+ The quick brown fox jumps over the lazy dog.
+ The quick brown fox jumps over the lazy dog.
+ The quick brown fox jumps over the lazy dog.
+ The quick brown fox jumps over the lazy dog.
+
+
+
+
+
Permissions
+
+
+
+
+
None
+
The developer has not specified any permission required by this app.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/apps.html b/apps.html
index 916008a..e29f8b3 100644
--- a/apps.html
+++ b/apps.html
@@ -1,25 +1,25 @@
-
-
-
-
-
-
+
+
+
+
+
+
-
${permission.usageDescription ?? "No description provided."}
+
+
`);
+ });
}
function exit() {
- window.location.replace(`home.html?source=${sourceURL}`);
+ window.location.replace(`home.html?source=${sourceURL}`);
}
\ No newline at end of file
diff --git a/js/apps.js b/js/apps.js
index 05795de..c299691 100644
--- a/js/apps.js
+++ b/js/apps.js
@@ -1,31 +1,31 @@
insertNavigationBar("All Apps");
function main(json) {
- // Set tab title
- document.title = `Apps - ${json.name}`;
+ // Set tab title
+ document.title = `Apps - ${json.name}`;
- // Sort apps in decending order of version date (newest first)
- json.apps.sort((a, b) => (new Date(b.versionDate)).valueOf() - (new Date(a.versionDate)).valueOf());
+ // Sort apps in decending order of version date (newest first)
+ json.apps.sort((a, b) => (new Date(b.versionDate)).valueOf() - (new Date(a.versionDate)).valueOf());
- // Create & insert app items
- json.apps.forEach(app => {
- if (app.beta) return; // Ignore beta apps
+ // Create & insert app items
+ json.apps.forEach(app => {
+ if (app.beta) return; // Ignore beta apps
- let html = `
-
- ${appHeaderHTML(app) }
-
${app.subtitle ?? ""}
`;
- if (app.screenshotURLs) {
- html += `
-
`;
- for (let i = 0; i < app.screenshotURLs.length, i < 2; i++) html += `
- `;
- html += `
-
`;
- }
- html += `
-
`;
+ let html = `
+
+ ${appHeaderHTML(app) }
+
${app.subtitle ?? ""}
`;
+ if (app.screenshotURLs) {
+ html += `
+
`;
+ for (let i = 0; i < app.screenshotURLs.length, i < 2; i++) html += `
+ `;
+ html += `
+
`;
+ }
+ html += `
+
`;
- document.getElementById("apps").insertAdjacentHTML("beforeend", html);
- });
+ document.getElementById("apps").insertAdjacentHTML("beforeend", html);
+ });
}
\ No newline at end of file
diff --git a/js/index.js b/js/index.js
index 7f67bfb..09aa8b2 100644
--- a/js/index.js
+++ b/js/index.js
@@ -1,56 +1,56 @@
function main(json) {
- // Set "View All News" link
- document.querySelector("#news a").href = `news.html?source=${sourceURL}`;
- // Set "View All Apps" link
- document.querySelector("#apps a").href = `apps.html?source=${sourceURL}`;
+ // Set "View All News" link
+ document.querySelector("#news a").href = `news.html?source=${sourceURL}`;
+ // Set "View All Apps" link
+ document.querySelector("#apps a").href = `apps.html?source=${sourceURL}`;
- // Set tab title
- document.title = json.name;
- // Set page title
- document.getElementById("title").innerText = json.name;
+ // Set tab title
+ document.title = json.name;
+ // Set page title
+ document.getElementById("title").innerText = json.name;
- //
- // News
- if (json.news && json.news.length >= 1) {
- // Sort news in decending order of date (latest first)
- json.news.sort((a, b) => // If b < a
- (new Date(b.date)).valueOf() - (new Date(a.date)).valueOf());
+ //
+ // News
+ if (json.news && json.news.length >= 1) {
+ // Sort news in decending order of date (latest first)
+ json.news.sort((a, b) => // If b < a
+ (new Date(b.date)).valueOf() - (new Date(a.date)).valueOf());
- if (json.news.length == 1) {
- document.getElementById("news-items").insertAdjacentHTML("beforeend", newsItemHTML(json.news[0], true));
- document.getElementById("news-items").classList.add("one");
- } else for (let i = 0; i < 5 && i < json.news.length; i++)
- document.getElementById("news-items").insertAdjacentHTML("beforeend", newsItemHTML(json.news[i], true));
- } else document.getElementById("news").remove();
+ if (json.news.length == 1) {
+ document.getElementById("news-items").insertAdjacentHTML("beforeend", newsItemHTML(json.news[0], true));
+ document.getElementById("news-items").classList.add("one");
+ } else for (let i = 0; i < 5 && i < json.news.length; i++)
+ document.getElementById("news-items").insertAdjacentHTML("beforeend", newsItemHTML(json.news[i], true));
+ } else document.getElementById("news").remove();
- // Sort apps in descending order of version date
- json.apps.sort((a, b) => (new Date(b.versionDate)).valueOf() - (new Date(a.versionDate)).valueOf());
-
- //
- // Featured apps
- let count = 1;
- json.apps.forEach(app => {
- // Max: 3 featured apps if not specified
- if (count > 3) return;
+ // Sort apps in descending order of version date
+ json.apps.sort((a, b) => (new Date(b.versionDate)).valueOf() - (new Date(a.versionDate)).valueOf());
+
+ //
+ // Featured apps
+ let count = 1;
+ json.apps.forEach(app => {
+ // Max: 3 featured apps if not specified
+ if (count > 3) return;
- // Ignore beta apps
- if (app.beta) return;
+ // Ignore beta apps
+ if (app.beta) return;
- // If there are featured apps, ignore non-featured apps
- if (json.featuredApps && !json.featuredApps.includes(app.bundleIdentifier)) return;
+ // If there are featured apps, ignore non-featured apps
+ if (json.featuredApps && !json.featuredApps.includes(app.bundleIdentifier)) return;
- document.getElementById("apps").insertAdjacentHTML("beforeend", appHeaderHTML(app));
+ document.getElementById("apps").insertAdjacentHTML("beforeend", appHeaderHTML(app));
- count++;
- });
+ count++;
+ });
- //
- // About
- var description = formatString(json.description);
- if (description) document.getElementById("about").insertAdjacentHTML("beforeend", `
-
-
${description}
-
- `);
- else document.getElementById("about").remove();
+ //
+ // About
+ var description = formatString(json.description);
+ if (description) document.getElementById("about").insertAdjacentHTML("beforeend", `
+
+
${description}
+
+ `);
+ else document.getElementById("about").remove();
}
\ No newline at end of file
diff --git a/js/main.js b/js/main.js
index 047a5ab..0236cf3 100644
--- a/js/main.js
+++ b/js/main.js
@@ -1,44 +1,44 @@
(function () {
- // If no source
- if (!urlSearchParams.has('source'))
- search();
- // If source is not a valid HTTP URL
- else if (!isValidHTTPURL(sourceURL)) {
- alert("Invalid HTTP URL.");
- search();
- } else insertAddToAltStoreBanner();
+ // If no source
+ if (!urlSearchParams.has('source'))
+ search();
+ // If source is not a valid HTTP URL
+ else if (!isValidHTTPURL(sourceURL)) {
+ alert("Invalid HTTP URL.");
+ search();
+ } else insertAddToAltStoreBanner();
})();
fetch(sourceURL)
- .then(response => response.json())
- .then(json => {
- // Set tint color
- const tintColor = json.tintColor?.replaceAll("#", "");
- if (tintColor) setTintColor(tintColor);
+ .then(response => response.json())
+ .then(json => {
+ // Set tint color
+ const tintColor = json.tintColor?.replaceAll("#", "");
+ if (tintColor) setTintColor(tintColor);
- setApps(json.apps);
- main(json);
- waitForAllImagesToLoad();
- })
- .catch(error => console.error("An error occurred.", error));
+ setApps(json.apps);
+ main(json);
+ waitForAllImagesToLoad();
+ })
+ .catch(error => console.error("An error occurred.", error));
function waitForAllImagesToLoad() {
- const allImages = document.querySelectorAll("img");
- var count = 0;
+ const allImages = document.querySelectorAll("img");
+ var count = 0;
- allImages.forEach(image => {
- // New img element that won't be rendered to the DOM
- var newImage = document.createElement("img");
- // Attach load listener
- newImage.addEventListener("load", loaded);
- // Set src
- newImage.src = image.src;
- });
+ allImages.forEach(image => {
+ // New img element that won't be rendered to the DOM
+ var newImage = document.createElement("img");
+ // Attach load listener
+ newImage.addEventListener("load", loaded);
+ // Set src
+ newImage.src = image.src;
+ });
- function loaded() {
- if (++count == allImages.length) {
- document.querySelector("body").classList.remove("loading");
- document.getElementById("loading").remove();
- }
- }
+ function loaded() {
+ if (++count == allImages.length) {
+ document.querySelector("body").classList.remove("loading");
+ document.getElementById("loading").remove();
+ }
+ }
}
\ No newline at end of file
diff --git a/js/news.js b/js/news.js
index c27bd7e..87ec0df 100644
--- a/js/news.js
+++ b/js/news.js
@@ -1,12 +1,12 @@
insertNavigationBar("All News");
function main(json) {
- // Set tab title
- document.title = `News - ${json.name}`;
+ // Set tab title
+ document.title = `News - ${json.name}`;
- // Sort news by latest
- json.news.sort((a, b) => (new Date(b.date)).valueOf() - (new Date(a.date)).valueOf());
+ // Sort news by latest
+ json.news.sort((a, b) => (new Date(b.date)).valueOf() - (new Date(a.date)).valueOf());
- // Create & insert news items
- json.news.forEach(news => document.getElementById("news").insertAdjacentHTML("beforeend", newsItemHTML(news)));
+ // Create & insert news items
+ json.news.forEach(news => document.getElementById("news").insertAdjacentHTML("beforeend", newsItemHTML(news)));
}
\ No newline at end of file
diff --git a/js/search.js b/js/search.js
index c7b569d..015127a 100644
--- a/js/search.js
+++ b/js/search.js
@@ -1,19 +1,19 @@
(function main() {
- const success = url => window.location.replace(`index.html?source=${url}`);
+ const success = url => window.location.replace(`index.html?source=${url}`);
- // If valid source provided
- if (urlSearchParams.has('source') && isValidHTTPURL(sourceURL))
- success(sourceURL);
+ // If valid source provided
+ if (urlSearchParams.has('source') && isValidHTTPURL(sourceURL))
+ success(sourceURL);
- const textField = document.querySelector("input");
- textField.addEventListener("keypress", function (event) {
- if (event.key === "Enter") {
- event.preventDefault();
+ const textField = document.querySelector("input");
+ textField.addEventListener("keypress", function (event) {
+ if (event.key === "Enter") {
+ event.preventDefault();
- const url = textField.value;
- if (!isValidHTTPURL(url))
- alert("Invalid HTTP URL.");
- else success(url);
- }
- });
+ const url = textField.value;
+ if (!isValidHTTPURL(url))
+ alert("Invalid HTTP URL.");
+ else success(url);
+ }
+ });
})();
\ No newline at end of file
diff --git a/js/shared.js b/js/shared.js
index 5f33e32..c5dde47 100644
--- a/js/shared.js
+++ b/js/shared.js
@@ -4,132 +4,132 @@ const sourceURL = urlSearchParams.get('source');
const urlRegex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
(function (global) {
- var apps;
- global.setApps = array =>
- apps = array;
- global.getAppWithBundleId = bundleId =>
- apps?.find(app => app.bundleIdentifier == bundleId) ?? undefined;
+ var apps;
+ global.setApps = array =>
+ apps = array;
+ global.getAppWithBundleId = bundleId =>
+ apps?.find(app => app.bundleIdentifier == bundleId) ?? undefined;
- setUpBackButton();
+ setUpBackButton();
})(this);
const newsItemHTML = (news, minimal = false) => `