From 8cb16c519daad9d2f46a5b5b0f22efabad73b3d9 Mon Sep 17 00:00:00 2001 From: octospacc Date: Thu, 11 Aug 2022 21:40:37 +0200 Subject: [PATCH] Test BitTorrent --- .gitlab-ci.yml | 3 +- Assets/Assets/Privacy.js | 63 ++++++++++++++++++++++++++++++++ Assets/Standard.css | 16 +++++++- ContextParts/*/Body/Privacy.html | 12 ++++++ ContextParts/*/Head/Privacy.html | 2 + Pages/index.pug | 3 +- Scripts/Build.Termux.sh | 1 + Scripts/Deploy.BitTorrent.sh | 4 ++ Templates/Standard.html | 4 +- 9 files changed, 104 insertions(+), 4 deletions(-) create mode 100644 Assets/Assets/Privacy.js create mode 100644 ContextParts/*/Body/Privacy.html create mode 100644 ContextParts/*/Head/Privacy.html create mode 100644 Scripts/Deploy.BitTorrent.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 439153d..f17b578 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,7 +4,7 @@ before_script: - apk update - apk add python3 py3-pip npm go git - pip3 install requests lxml - - npm install -g pug-cli + - npm install -g pug-cli planktos pages: stage: deploy @@ -19,6 +19,7 @@ pages: - cd .. - git clone --depth 1 https://gitlab.com/octtspacc/staticoso - Scripts/Deploy.GitLab.sh + - Scripts/Deploy.BitTorrent.sh - Scripts/Deploy.Gemini.sh artifacts: paths: diff --git a/Assets/Assets/Privacy.js b/Assets/Assets/Privacy.js new file mode 100644 index 0000000..b0c1ce5 --- /dev/null +++ b/Assets/Assets/Privacy.js @@ -0,0 +1,63 @@ +function PlanktosInstall() { + if (!('serviceWorker' in navigator)) return + + let attributes = document.currentScript.attributes + let sw = '/planktos.sw.js' + if (attributes['sw']) sw = attributes['sw'].value + if (attributes['data-sw']) sw = attributes['data-sw'].value + + navigator.serviceWorker.register(sw) + .catch(function (err) { + console.log('Service worker registration failed with ' + err) + }) +} + +function PrivacyAccepted() { + PlanktosInstall(); +} + +function ShowPrivacyPopup() { + PrivacyPopup.style.display = 'block'; + PrivacyPopup.style.visibility = 'visible'; + PrivacyPopup.innerHTML = ` +

ℹ️ Notifica sulla privacy

+

Cliccando OK, dichiari di comprendere e accettare che il tuo indirizzo IP potrebbe essere condiviso con i computer di altri utenti del sito durante la tua navigazione.

+
+ Ulteriori informazioni +

Questo sito usa tecnologie per la distribuzione ottimizzata delle risorse, secondo il paradigma peer-to-peer e il protocollo BitTorrent.

+

Per via del funzionamento tecnico di questa soluzione, il tuo indirizzo IP potrebbe essere rivelato ai computer di altri utenti, da cui il tuo browser scaricherà i dati anziché passare per il server principale. Il tuo computer e la tua linea Internet, inoltre, potrebbero essere utilizzati per permettere ad altri utenti di scaricare i dati del sito in maniera ottimizzata.

+

+ Se ritieni che questo sia per te un rischio di privacy, e non hai interesse nell'avere accesso ottimizzato al sito, anche qualora il server pincipale dovesse andare offline, puoi non accettare. +
+ Semplicemente, ignora questo pop-up o, dalle impostazioni del browser, disattiva JavaScript o i cookie per farlo sparire completamente. +

+
+
+ +`; +} + +function HidePrivacyPopup() { + PrivacyPopup.style.display = 'none'; + PrivacyPopup.style.visibility = 'hidden'; + PrivacyPopup.innerHTML = ''; +} + +function AcceptPrivacy() { + document.cookie = "PrivacyAccepted=true; max-age=31536000"; + HidePrivacyPopup(); + PrivacyAccepted(); + window.location.reload(); +} + +function CheckPrivacyCookie() { + if (navigator.cookieEnabled) { + if (document.cookie.search('PrivacyAccepted=true') != -1) { + PrivacyAccepted(); + } else { + ShowPrivacyPopup(); + } + } +} + +document.body.onload = CheckPrivacyCookie(); \ No newline at end of file diff --git a/Assets/Standard.css b/Assets/Standard.css index 25f428f..13142b1 100644 --- a/Assets/Standard.css +++ b/Assets/Standard.css @@ -133,8 +133,8 @@ H3:hover { } #LeftBox, #RightBox { Max-Width: 90vw; - Background: #300030; Color: #fafaf0; + Background: #300030; } #LeftBox A, #RightBox A, #BottomBox A { Color: #eeddff; @@ -246,6 +246,20 @@ H3:hover { Float: Right; Clear: Both; } +#PrivacyPopup { + Display: None; + Visibility: Hidden; + Position: Fixed; + Z-Index: 16; + Color: #fafaf0; + Background: #300030; + Max-Width: 60vw; + Max-Height: 50vh; + Overflow-Y: Scroll; + Bottom: 64px; + Right: Calc(Var(--ContentPadding) * 2); + Padding: Var(--ContentPadding); +} #MainBoxGlobalFooter, #StatCounter, .Center { diff --git a/ContextParts/*/Body/Privacy.html b/ContextParts/*/Body/Privacy.html new file mode 100644 index 0000000..d66391c --- /dev/null +++ b/ContextParts/*/Body/Privacy.html @@ -0,0 +1,12 @@ +
+

Notifica sulla privacy

+

Cliccando OK, dichiari di comprendere e accettare che il tuo indirizzo IP potrebbe essere condiviso con i computer di altri utenti del sito durante la tua navigazione.

+
+ Ulteriori informazioni +

Questo sito usa tecnologie per la distribuzione ottimizzata delle risorse, secondo il paradigma peer-to-peer e il protocollo BitTorrent.

+

Per via del funzionamento tecnico di questa soluzione, il tuo indirizzo IP potrebbe essere rivelato a computer di altri utenti, da cui il tuo browser scaricherà i dati anziché passare per il server principale. Il tuo computer e la tua linea Internet, inoltre, potrebbero essere utilizzati per permettere ad altri utenti di scaricare i dati del sito in maniera ottimizzata.

+

Se ritieni che questo sia per te un rischio di privacy, e non hai interesse nell'avere accesso ottimizzato al sito, anche qualora il server pincipale dovesse andare offline, puoi ignorare questo pop-up o disattivare JavaScript per farlo sparire completamente.

+
+
+ +
\ No newline at end of file diff --git a/ContextParts/*/Head/Privacy.html b/ContextParts/*/Head/Privacy.html new file mode 100644 index 0000000..7635611 --- /dev/null +++ b/ContextParts/*/Head/Privacy.html @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Pages/index.pug b/Pages/index.pug index 829c596..e32e5de 100644 --- a/Pages/index.pug +++ b/Pages/index.pug @@ -71,8 +71,9 @@ details summary Lista di script client-side usati nel sito Web (Espandi) div ul + li Script interni scritti da me: per gestire la notifica sulla privacy li Polyfill per supportare le immagini AVIF su vecchi browser: #[a(href='https://github.com/Kagami/avif.js' target='_blank' rel='noopener') avif.js di Kagami] (#[i Non ancora attivato, lo sarà a breve]) - li Sistema di distribuzione P2P dei file del sito a carico dei visitatori: #[a(href='https://github.com/xuset/planktos' target='_blank' rel='noopener') Planktos di xuset] (#[i Non ancora attivato, lo sarà a breve]) + li Sistema di distribuzione P2P dei file del sito a carico dei visitatori: #[a(href='https://github.com/xuset/planktos' target='_blank' rel='noopener') Planktos di xuset] (#[i Attivo per la fase di test]) p Di seguito, metto la mia classifica dei possibili modi per visualizzare questo sito, dal migliore al peggiore. Per standardizzazione, tutti presuppongono supporto completo ai colori. diff --git a/Scripts/Build.Termux.sh b/Scripts/Build.Termux.sh index a389963..44e64fb 100644 --- a/Scripts/Build.Termux.sh +++ b/Scripts/Build.Termux.sh @@ -6,4 +6,5 @@ python3 ../staticoso/Source/Build.py \ --SiteDomain="https://sitoctt.octt.eu.org" \ --FolderRoots="{'*':'https://octtspacc.gitlab.io'}" \ --Minify="False" \ + --ContextParts="{'Head':'Privacy.html'}" \ --MarkdownExts="('attr_list', 'def_list', 'footnotes', 'md_in_html', 'tables')" diff --git a/Scripts/Deploy.BitTorrent.sh b/Scripts/Deploy.BitTorrent.sh new file mode 100644 index 0000000..420bfab --- /dev/null +++ b/Scripts/Deploy.BitTorrent.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +cd public +npx planktos . diff --git a/Templates/Standard.html b/Templates/Standard.html index 113d470..ec7dd49 100644 --- a/Templates/Standard.html +++ b/Templates/Standard.html @@ -15,10 +15,10 @@ - [HTML:ContextPart:*/Head] + [HTML:ContextPart:*/Head] @@ -71,6 +71,8 @@ [HTML:Part:Standard/BottomBox.html] +
+