Move some READMEs to files and add transclude scripts

This commit is contained in:
2025-05-29 20:17:56 +02:00
parent 9742b8ac0e
commit f312705807
13 changed files with 170 additions and 111 deletions

View File

@@ -14,7 +14,6 @@ getMetaAttr(){
################################################################################
npm update
npm install
cd ./node_modules/SpaccDotWeb
npm install
@@ -33,7 +32,7 @@ do
if [ -f ./Requirements.sh ]
then sh ./Requirements.sh
elif [ -f ./package.json ]
then (npm update; npm install)
then npm install
fi
copyfiles="$(sh ./Build.sh)"
cp -vr $copyfiles "../../public/${App}/"
@@ -72,4 +71,5 @@ do
htmltitle='<title>'"${name}"'</title>'
htmlcanonical='<link rel="canonical" href="'"${url}"'"/>'
sed -i 's|</head>|<link rel="manifest" href="./WebManifest.json"/>'"${htmltitle}${htmlcanonical}${htmlmanifest}${HtmlHeadInject}"'</head>|' "${htmlfile}"
node ../TranscludeReadmes.js "./${App}"
done

21
TranscludeReadmes.js Normal file
View File

@@ -0,0 +1,21 @@
#!/usr/bin/env node
const fs = require('fs');
const dir = require('process').argv.slice(-1)[0];
const readme = `${dir}/README.md`;
if (fs.existsSync(readme)) {
let index;
for (const ext of ['js', 'html']) {
const path = `${dir}/index.${ext}`;
if (fs.existsSync(path)) {
index = path;
break;
}
}
if (index) {
fs.writeFileSync(
index,
fs.readFileSync(index, 'utf8').replaceAll(
'<!-- <README /> -->',
fs.readFileSync(readme, 'utf8').split('---').slice(1).join('---').trim()));
}
}

View File

@@ -0,0 +1,3 @@
# FramesBrowser
🪟️ **<https://hub.octt.eu.org/FramesBrowser/>**

View File

@@ -1,5 +1,5 @@
{
"name": "tmp",
"name": "FramesBrowser",
"lockfileVersion": 3,
"requires": true,
"packages": {

View File

@@ -0,0 +1,34 @@
# SpiderADB
🕷️ **<https://hub.octt.eu.org/SpiderADB/>**
---
<p>
<b>SpiderADB</b> is an user-friendly webapp for connecting to devices via the Android Debug Bridge, straight from a browser.
The aim of this is to be kind of a swiss army knife that can be used from any platform, with minimal hassle,
to do a number of advanced administration and debugging task on Android devices. These are the current features:
</p><ul>
<li><b>Devices</b>: Allows connecting new devices, shows a list of the paired ones, and lists basic useful information about various parts of the system.</li>
<li><b>Terminal</b>: Provides a basic terminal shell for inputting commands and reading their output. (Currently doesn't support any teletype features, so only basic commands can be run properly.)</li>
<li><b>Packages</b>: Displays a list of the currently installed packages, allowing for multiple to be uninstalled, and also allows uploading APK files for installation.</li>
</ul>
<p>Here are some additional tips and tricks you might find useful to make the most out of this app:</p><ul>
<li><a target="_blank" href="https://dev.to/larsonzhong/most-complete-adb-commands-4pcg">Most complete ADB command manual</a></li>
</ul>
<h3>Open-Source and Licensing</h3><p>
This app is open-source and made with mostly-vanilla web technologies.
You can find the full source code on my Git repo:
<a href="https://gitlab.com/octospacc/octospacc.gitlab.io/-/tree/master/source/SpiderADB/">https://gitlab.com/octospacc/octospacc.gitlab.io/-/tree/master/source/SpiderADB/</a>.
</p><p>Copyright (C) 2024, OctoSpacc
<br/>This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
<br/>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
<br/>You should have received a copy of the GNU Affero General Public License along with this program. If not, see <a target="_blank" href="https://www.gnu.org/licenses/">https://www.gnu.org/licenses/</a>.
</p>
<h3>Third-Parties and Credits</h3><p>
This app wouldn't have been possible without these third-party components, of which the license is specified in brackets:
</p><ul>
<li><a target="_blank" href="https://github.com/yume-chan/ya-webadb">Tango</a> [MIT]: ADB port for the web</li>
<li><a target="_blank" href="https://github.com/tango-adb/old-demo">Tango Demo (Old)</a> [MIT]: the previous official Tango demo webapp, helpful for writing my app since the Tango documentation is pretty lacking</li>
<li><a target="_blank" href="https://github.com/zmyaro/holo-web">Holo Web</a> [MIT]: stylesheets for recreating the Android Holo theme on the web</li>
</ul>

View File

@@ -102,34 +102,7 @@
</p>
<p name="popupBox" hidden="true"></p>
<section class="holo-section" data-section="about" style="display: block !important;">
<p>
<b>SpiderADB</b> is an user-friendly webapp for connecting to devices via the Android Debug Bridge, straight from a browser.
The aim of this is to be kind of a swiss army knife that can be used from any platform, with minimal hassle,
to do a number of advanced administration and debugging task on Android devices. These are the current features:
</p><ul>
<li><b>Devices</b>: Allows connecting new devices, shows a list of the paired ones, and lists basic useful information about various parts of the system.</li>
<li><b>Terminal</b>: Provides a basic terminal shell for inputting commands and reading their output. (Currently doesn't support any teletype features, so only basic commands can be run properly.)</li>
<li><b>Packages</b>: Displays a list of the currently installed packages, allowing for multiple to be uninstalled, and also allows uploading APK files for installation.</li>
</ul>
<p>Here are some additional tips and tricks you might find useful to make the most out of this app:</p><ul>
<li><a target="_blank" href="https://dev.to/larsonzhong/most-complete-adb-commands-4pcg">Most complete ADB command manual</a></li>
</ul>
<h3>Open-Source and Licensing</h3><p>
This app is open-source and made with mostly-vanilla web technologies.
You can find the full source code on my Git repo:
<a href="https://gitlab.com/octospacc/octospacc.gitlab.io/-/tree/master/source/SpiderADB/">https://gitlab.com/octospacc/octospacc.gitlab.io/-/tree/master/source/SpiderADB/</a>.
</p><p>Copyright (C) 2024, OctoSpacc
<br/>This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
<br/>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
<br/>You should have received a copy of the GNU Affero General Public License along with this program. If not, see <a target="_blank" href="https://www.gnu.org/licenses/">https://www.gnu.org/licenses/</a>.
</p>
<h3>Third-Parties and Credits</h3><p>
This app wouldn't have been possible without these third-party components, of which the license is specified in brackets:
</p><ul>
<li><a target="_blank" href="https://github.com/yume-chan/ya-webadb">Tango</a> [MIT]: ADB port for the web</li>
<li><a target="_blank" href="https://github.com/tango-adb/old-demo">Tango Demo (Old)</a> [MIT]: the previous official Tango demo webapp, helpful for writing my app since the Tango documentation is pretty lacking</li>
<li><a target="_blank" href="https://github.com/zmyaro/holo-web">Holo Web</a> [MIT]: stylesheets for recreating the Android Holo theme on the web</li>
</ul>
<!-- <README /> -->
<h3>Changelog</h3>
<h4>2024-04-20</h4><ul>
<li>Add feature descriptions to About section, and licensing info.</li>

View File

@@ -15,12 +15,14 @@
"node_modules/@types/w3c-web-usb": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/@types/w3c-web-usb/-/w3c-web-usb-1.0.10.tgz",
"integrity": "sha512-CHgUI5kTc/QLMP8hODUHhge0D4vx+9UiAwIGiT0sTy/B2XpdX1U5rJt6JSISgr6ikRT7vxV9EVAFeYZqUnl1gQ=="
"integrity": "sha512-CHgUI5kTc/QLMP8hODUHhge0D4vx+9UiAwIGiT0sTy/B2XpdX1U5rJt6JSISgr6ikRT7vxV9EVAFeYZqUnl1gQ==",
"license": "MIT"
},
"node_modules/@yume-chan/adb": {
"version": "0.0.23",
"resolved": "https://registry.npmjs.org/@yume-chan/adb/-/adb-0.0.23.tgz",
"integrity": "sha512-RMX+GEzxYrnxMOeRG1Qc2ibTp/8ykShSnnPUAya/JfRMn717AP11T7wLovnzqnNbLG49EpnD4AxwrcOusddybw==",
"license": "MIT",
"dependencies": {
"@yume-chan/async": "^2.2.0",
"@yume-chan/dataview-bigint-polyfill": "^0.0.23",
@@ -34,6 +36,7 @@
"version": "0.0.23",
"resolved": "https://registry.npmjs.org/@yume-chan/adb-credential-web/-/adb-credential-web-0.0.23.tgz",
"integrity": "sha512-2KcYjTqj2opKt59fuSL9R8jiQBylff3Vn7QUXcoOgNxil9UX3WZCjnO3Cvlm5sACPDsLBYmspuYq+3Ex0PnRsw==",
"license": "MIT",
"dependencies": {
"@yume-chan/adb": "^0.0.23",
"tslib": "^2.6.2"
@@ -43,6 +46,7 @@
"version": "0.0.23",
"resolved": "https://registry.npmjs.org/@yume-chan/adb-daemon-webusb/-/adb-daemon-webusb-0.0.23.tgz",
"integrity": "sha512-i7j5ehOwvlaedYR2a4hbd6t0esRLHelvxdRRnyV37nn896p7+AgG6FIfWiXhd7w6VkC20NepAZTFHB0b0eIm5g==",
"license": "MIT",
"dependencies": {
"@types/w3c-web-usb": "^1.0.10",
"@yume-chan/adb": "^0.0.23",
@@ -55,6 +59,7 @@
"version": "0.0.23",
"resolved": "https://registry.npmjs.org/@yume-chan/android-bin/-/android-bin-0.0.23.tgz",
"integrity": "sha512-yOhErwfD7oe8piG/kboHbYGLQJU/eJE81yUzQFJbXtI0guR8j9baeyVYuTHzSVyvFTlBqsd5cd68bYGT6o3yAw==",
"license": "MIT",
"dependencies": {
"@yume-chan/adb": "^0.0.23",
"@yume-chan/stream-extra": "^0.0.23",
@@ -66,6 +71,7 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/@yume-chan/async/-/async-2.2.0.tgz",
"integrity": "sha512-jatCtX1/3DsR9Vt3EB8CGFy0MNrXP5f+eNiRGHLH+LkYz7MPLzpqL/DnvXSip+Z0EKBCDnzuNuELjsKEEzcdQA==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.1"
}
@@ -74,6 +80,7 @@
"version": "0.0.23",
"resolved": "https://registry.npmjs.org/@yume-chan/dataview-bigint-polyfill/-/dataview-bigint-polyfill-0.0.23.tgz",
"integrity": "sha512-ZlE0xrG5xmStZYlrWLSLXprvIwcAmUTyU/YsAJLsNel1j27RlzeherAfPSLthTwV2jlFwUfMJ3IqtVMjk2XA5A==",
"license": "MIT",
"dependencies": {
"tslib": "^2.6.2"
}
@@ -82,6 +89,7 @@
"version": "0.0.23",
"resolved": "https://registry.npmjs.org/@yume-chan/event/-/event-0.0.23.tgz",
"integrity": "sha512-WgljyzEzd5ice5Logp2lkMegvxHKWjQpg8crXPx9CqBPxwT4f2dz4ORUceQUZ6B0CxppLBXp6CJf3D3wfRJbEQ==",
"license": "MIT",
"dependencies": {
"@yume-chan/async": "^2.2.0",
"tslib": "^2.6.2"
@@ -91,6 +99,7 @@
"version": "0.0.23",
"resolved": "https://registry.npmjs.org/@yume-chan/stream-extra/-/stream-extra-0.0.23.tgz",
"integrity": "sha512-Q48X6mot5ORGscDvJhwNB0jjwRGpd/Rezpms5/0bVDtrwI7oFlWBNU2SKLXfeV1Qjxc5r5yUued09InEfMU5AA==",
"license": "MIT",
"dependencies": {
"@yume-chan/async": "^2.2.0",
"@yume-chan/struct": "^0.0.23",
@@ -101,15 +110,17 @@
"version": "0.0.23",
"resolved": "https://registry.npmjs.org/@yume-chan/struct/-/struct-0.0.23.tgz",
"integrity": "sha512-yGzeXfpmVwhO8jnrrZBPiNTF4kGk4127/3wUQ0hhH7CLj+eRroCYOQyMl4pvGKhChOHIQioU4NmhDlBgCPYEFQ==",
"license": "MIT",
"dependencies": {
"@yume-chan/dataview-bigint-polyfill": "^0.0.23",
"tslib": "^2.6.2"
}
},
"node_modules/tslib": {
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
"integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ=="
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
"license": "0BSD"
}
}
}

44
source/TiVuOcto/README.md Normal file
View File

@@ -0,0 +1,44 @@
# TiVuOctt / TiVuOcto
📺️ **<https://hub.octt.eu.org/TiVuOcto/>**
---
<h2>About TiVuOcto</h2><p>
A minimal webapp for playing IPTV streams.
Includes free TV channels from the entire world
with a responsive UI, clean UX, no ads, no spyware.
</p>
<h3>Disclaimer</h3><p>
This app allows users to play video live streams
based on Internet standards, from either embedded sources,
or user-specified sources that the app is not affiliated with.
<br/>
The embedded sources are specified below and publicly available,
only including fully legal free-to-watch/public-domain content.
This app does not make any pay-per-view content freely available,
nor does it include any DRM/geoblocking circumvention measures.
</p>
<h3>Licensing</h3><p>
Copyright (C) 2024 OctoSpacc
<br/>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
<br/>
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
<br/>
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <a href="https://www.gnu.org/licenses/">https://www.gnu.org/licenses/</a>.
</p>
<h3>Thanks and Third Party Libraries</h3>
<p>This app wouldn't have been possible without the following:</p><ul>
<li><a href="https://videojs.com">Video.js</a> player [<a href="https://github.com/videojs/video.js/blob/main/LICENSE">Apache 2.0</a>]</li>
<li><a href="https://muicss.com">MUI CSS</a> framework [<a href="https://github.com/muicss/mui/blob/master/LICENSE.txt">MIT</a>]</li>
<li><a href="https://github.com/Free-TV/IPTV">Free-TV IPTV</a> playlist</li>
<li><a href="https://iptv-org.github.io">iptv-org IPTV</a> playlist [<a href="https://github.com/iptv-org/iptv/blob/master/LICENSE">public domain</a>]</li>
</ul>

View File

@@ -329,44 +329,7 @@ button {
<p id="no-javascript" style="padding-top: 1em;">
⚠️ You need to <a href="https://enable-javascript.com">enable JavaScript</a> to run this app.
</p>
<h2>About TiVuOcto</h2><p>
A minimal webapp for playing IPTV streams.
Includes free TV channels from the entire world
with a responsive UI, clean UX, no ads, no spyware.
</p>
<h3>Disclaimer</h3><p>
This app allows users to play video live streams
based on Internet standards, from either embedded sources,
or user-specified sources that the app is not affiliated with.
<br/>
The embedded sources are specified below and publicly available,
only including fully legal free-to-watch/public-domain content.
This app does not make any pay-per-view content freely available,
nor does it include any DRM/geoblocking circumvention measures.
</p>
<h3>Licensing</h3><p>
Copyright (C) 2024 OctoSpacc
<br/>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
<br/>
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
<br/>
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <a href="https://www.gnu.org/licenses/">https://www.gnu.org/licenses/</a>.
</p>
<h3>Thanks and Third Party Libraries</h3>
<p>This app wouldn't have been possible without the following:</p><ul>
<li><a href="https://videojs.com">Video.js</a> player [<a href="https://github.com/videojs/video.js/blob/main/LICENSE">Apache 2.0</a>]</li>
<li><a href="https://muicss.com">MUI CSS</a> framework [<a href="https://github.com/muicss/mui/blob/master/LICENSE.txt">MIT</a>]</li>
<li><a href="https://github.com/Free-TV/IPTV">Free-TV IPTV</a> playlist</li>
<li><a href="https://iptv-org.github.io">iptv-org IPTV</a> playlist [<a href="https://github.com/iptv-org/iptv/blob/master/LICENSE">public domain</a>]</li>
</ul>
<!-- <README /> -->
<h3>Changelog</h3>
<h4>2024-08-01</h4><ul>
<li>Improved UI: better-sized icons, added all button highlights, fixed element margins and mobile scaling, and add loading feedback text.</li>

View File

@@ -12,14 +12,16 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/validate-target/-/validate-target-3.1.1.tgz",
"integrity": "sha512-MRTgeSwwI8fyNPzRi8SsZiU6LSwlsRE3cLiynyse8G82hjEkfq/setjs0D789FwKrtnDCZn7m0MHlklDPzs74g==",
"license": "MIT",
"engines": {
"node": ">=16.20.0"
}
},
"node_modules/vlitejs": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/vlitejs/-/vlitejs-6.0.3.tgz",
"integrity": "sha512-v/m95c3LkxR5AaNW0lUZiNSSECWHYIzrh+yspbsxa46Zeas2OHiiTH3VDMdrWOg4dSBku/jUcuohOhas7kwOSA==",
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/vlitejs/-/vlitejs-6.0.5.tgz",
"integrity": "sha512-SLNl5KJlO+p7Wx/F4WU2eg1EWzO96d6f6jQPd2cU/VeJYx6/TIjvLc9EhTuW51rFcf7httWkKJqqiGVkCF0kvA==",
"license": "MIT",
"dependencies": {
"validate-target": "^3.1.1"
},

View File

@@ -0,0 +1,40 @@
# WuppìMini
☘️ **<https://wuppimini.octt.eu.org/>**
---
<p>
WuppìMini (temporary name?) is a minimalist, basic HTML-based frontend, designed for quickly and efficiently publishing to social media and content management services (note that only WordPress is currently supported).
<br/>
Mainly aimed at old systems that might not support modern web-apps, the server-hosted version of this application works without any client-side scripts, and should be optionally reachable via unencrypted HTTP.
<br/>
About practical use cases, you ask? I made this to upload game posts from my 3DS, and possibly microblog with my Kindle! (See an example: <a href="https://octospacc.altervista.org/2024/02/09/test-wuppimini/">this post</a> was published from my n3DS.)
<br/><br/>
Check out all my other web endeavors at ${A('https://hub.octt.eu.org')}, or join my Matrix space to chat or if you need help: ${A('https://matrix.to/#/#Spacc:matrix.org')}.
</p>
<h3 id="h-versions">Versions</h3>
<p>
This app uses a novel approach behind the scenes to be able to run in one of either two modes, while reusing a single codebase: a classical server-side-rendered application, which works well on very limited systems but requires connection with a dedicated backend server that runs it, or a modern client-side single-page-application, relying on many modern web technologies, but working without an hosting server. Occasional bugs or update delays aside, the two essentially have feature parity and the same interface, but can be useful in different situations. Use whatever you prefer in each possible situation.
</p>
<ul>
<li>Server-hosted version: ${A('https://wuppimini.octt.eu.org/')}.</li>
<li>Client-side version: ${A('https://hub.octt.eu.org/WuppiMini/')}.</li>
</ul>
<h3 id="h-floss">Open-Source, Licensing, Disclaimers</h3>
<p>
Copyright (C) 2024 OctoSpacc
<br/>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
<br/>
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
<br/>
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see ${A('https://www.gnu.org/licenses/')}.
</p>

View File

@@ -310,40 +310,7 @@ const endpointInfo = [ 'GET /info/', (ctx) => {
ctx.renderPage(`
${!ctx.getCookie('account') ? `<p class="notice info">${appStrings.get('mustAddAccount', getUserLanguage(ctx))(ctx.urlParameters.ref)}</p>` : ''}
<h3>About</h3>
<p>
${appName} (temporary name?) is a minimalist, basic HTML-based frontend, designed for quickly and efficiently publishing to social media and content management services (note that only WordPress is currently supported).
<br/>
Mainly aimed at old systems that might not support modern web-apps, the server-hosted version of this application works without any client-side scripts, and should be optionally reachable via unencrypted HTTP.
<br/>
About practical use cases, you ask? I made this to upload game posts from my 3DS, and possibly microblog with my Kindle! (See an example: <a href="https://octospacc.altervista.org/2024/02/09/test-wuppimini/">this post</a> was published from my n3DS.)
<br/><br/>
Check out all my other web endeavors at ${A('https://hub.octt.eu.org')}, or join my Matrix space to chat or if you need help: ${A('https://matrix.to/#/#Spacc:matrix.org')}.
</p>
<h3 id="h-versions">Versions</h3>
<p>
This app uses a novel approach behind the scenes to be able to run in one of either two modes, while reusing a single codebase: a classical server-side-rendered application, which works well on very limited systems but requires connection with a dedicated backend server that runs it, or a modern client-side single-page-application, relying on many modern web technologies, but working without an hosting server. Occasional bugs or update delays aside, the two essentially have feature parity and the same interface, but can be useful in different situations. Use whatever you prefer in each possible situation.
</p>
<ul>
<li>Server-hosted version: ${A('https://wuppimini.octt.eu.org/')}.</li>
<li>Client-side version: ${A('https://hub.octt.eu.org/WuppiMini/')}.</li>
</ul>
<h3 id="h-floss">Open-Source, Licensing, Disclaimers</h3>
<p>
Copyright (C) 2024 OctoSpacc
<br/>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
<br/>
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
<br/>
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see ${A('https://www.gnu.org/licenses/')}.
</p>
<!-- <README /> -->
<p>
${isEnvServer ? `You can obtain the full source code and assets by downloading the following files:
${staticFiles.map(file => ` • <a href="/res/${file}">${file}</a>`).join('')}.

View File

@@ -1,3 +1,4 @@
const cacheName = 'OctoSpaccHub/v1';
const cachables = {
"/": "networkFirst",
"//": "networkFirst",
@@ -13,7 +14,7 @@ const checkUrlCaching = (url) => {
const putResponseInCache = (request, response) => {
if (request.method === 'GET' && response.ok) {
return caches.open('GamingShitposting/v1').then((cache) => {
return caches.open(cacheName).then((cache) => {
try {
return cache.put(request, response.clone());
} catch(err) {}