diff --git a/.gitignore b/.gitignore index bee8a64..cd690fc 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ __pycache__ +www/boris/me +www/boris/swarm + diff --git a/README.md b/README.md index 772847b..6804883 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,79 @@ -# ASTROPORT/KODI (astrXbian) +# Astroport répare ton internet + +## Tout ce qui t'emmerde dans internet + +Youtube : +- les suggestions te font perdre un temps fou, mais regarder toutes ces vidéos ne t'apportent que rarement de la valeur, car elle te font tourner en boucle sur du contenu toujours similaire +- le contenu qui diverge de la norme se retrouve censuré. Ça ne dérange pas trop tant que tu es toi-même dans la norme, mais que se passe-t-il lorsque ta pensée devient minoritaire ? Tu ne peux plus partager ton opinion. +- tu es obligé de passer par la page d'accueil pour effectuer une recherche +- tu crées des playlists pour organiser toi-même le contenu, mais parfois une vidéo est supprimé, sans que Youtube te laisse même le titre de la vidéo +- les commentaires, t'exposent souvent à toute la haine d'inconnus, et sont souvent source de désespoir + +Facebook : +- le contenu qui remonte est le contenu le plus consensuel : la photo de profil à 50 likes de Cindy +- tu te tapes une pub tous les 4-5 posts + +9gag : +- tu y viens pour rire un peu, mais tu te retrouve face à beaucoup de posts à caractère politique, anxiogène ou source de colère +- l'humour des autres n'est pas forcément le tiens, et le contenu qui t'es proposé ne te fait pas forcément marrer + +Netflix : +- un peu de contenu intéressant, mais il est noyé dans un océan de médiocrité +- tu n'as accès à rien si tu n'es pas connecté + +Spotify : +- l'interface devient de plus en plus source de nuisances, en te proposant de recommander Spotify à des amis par exemple + + + +## Astroport libère ton internet + +Astroport remplace tous ces services, en apportant quelques degrés de liberté en plus : + +Dans Astroport, le contenu n'est pas filtré par des algorithme, mais par les choix que tu fais de te nourir du contenu partagé par tel ou tel ami. + +Si le contenu est trop abondant, tu peux choisir un algorithme pour le filtrer, mais tu restes toujours maître de la façon dont les choses te sont présentées ; tu peux choisir ton interface parmi une quantité d'interfaces déjà codées, ou coder ta propre interface. + +Un contenu taggué comme "drôle" a plus de chances de l'être, car il t'es apporté par tes amis, et entre amis, on partage souvent le même sens de l'humour. + + +## C'est le moment idéal pour libérer internet + +Le déploiement massif de la fibre nous fournit la possibilité de revenir au "vrai" internet : un internet pair-à-pair. + +Du l'ADSL, avec son débit asymétrique (80ko/s en débit ascendant, en upload), on passe avec la fibre à 80Mo/s. + +Il devient donc possible de regarder une vidéo en streaming directement depuis chez ses amis, plutôt que de la récupérer depuis un datacenter inconnu localisé à 400km. + +L'apparition et la popularisation des Raspberry Pi rend possible à chacun de se créer son propre petit datacenter de 1 To pour mettre à la disposition de ses amis toute sa vidéothèque. Le Raspberry Pi peut rester allumer en permanence sans faire exploser ta facture électrique ni causer de catastrophe environnementale, puisqu'il a une puissance de l'ordre de 15W. Astroport peut aussi tourner sur un vieux PC de 2005 dont on pensait ne plus jamais pouvoir faire quoi que ce soit. + +La France est par ailleurs le terrain idéal pour expérimenter cette façon de partager du contenu, grâce au droit à la copie privée, qui nous autorise à garder pour soi un contenu diffusé par d'autres (à l'époque : enregistrer sur K7 un contenu diffusé à la radio). + + + +## Comment Astroport libère l'internet + +Astroport utilise IPFS pour stocker les fichiers. + +Ces fichiers sont partagés uniquement avec les gens que vous avez explicitement choisis, et vous recevez du contenu uniquement des personnes en qui vous avez confiance. Cette identification des "amis" se fait pour l'instant via Gchange, mais cela pourrait évoluer. + +Les vidéos peuvent être affichées dans différentes interfaces. Astroport en propose pour l'instant deux : +1. Une interface web, personnalisable à loisir grâce aux thèmes +2. Kodi, qui peut s'installer sur une Android TV + + +## Un modèle économique pour les créateurs et le partage pair-à-pair + +À chaque fichier, Astroport associe un porte-monnaie de monnaie libre G1. + +Lors de la consultation d'un fichier, un peu de monnaie libre G1 est transmise au noeud qui sert le fichier (vous ou un ami, par exemple), et la monnaie récoltée sera à terme partagée entre le noeud et le créateur du contenu. + +Le modèle pair-à-pair, en diminuant les coûts de diffusion, permet d'augmenter la part récupérée par le créateur. + +D'un point de vue écologique, le modèle pair-à-pair diminue aussi l'électricité consommée, car le terminal de consultation devient aussi serveur de fichiers, et fait ainsi d'une pierre deux coups. S'ils souhaitent rejoindre ce modèle, les créateurs ne seront plus obligés d'utiliser les datacenters de Netflix pour diffuser leur contenu. + +Grâce aux contrats, même Netflix pourra choisir de fermer ses datacenter, pour proposer à tout un chacun de participer à la diffusion de son catalogue, et le rémuner en conséquence. + **Découvrez l'[Internet des gens](https://astroport.com)** diff --git a/minetest/.gitignore b/minetest/.gitignore new file mode 100644 index 0000000..377d208 --- /dev/null +++ b/minetest/.gitignore @@ -0,0 +1 @@ +minetest.conf diff --git a/minetest/map.sqlite b/minetest/map.sqlite new file mode 100644 index 0000000..ec22e0c Binary files /dev/null and b/minetest/map.sqlite differ diff --git a/minetest/minetest-common.conf b/minetest/minetest-common.conf new file mode 100644 index 0000000..3d8f07b --- /dev/null +++ b/minetest/minetest-common.conf @@ -0,0 +1,107 @@ + + +enable_damage = false +enable_pvp = false +creative_mode = true +enable_build_where_you_stand = true + +# Controls length of day/night cycle. +# Examples: +# 72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged. +# type: int +time_speed = 1 + +# Name of map generator to be used when creating a new world. +# Creating a world in the main menu will override this. +# Current mapgens in a highly unstable state: +# - The optional floatlands of v7 (disabled by default). +# type: enum values: v7, valleys, carpathian, v5, flat, fractal, singlenode, v6 +# mg_name = v7 +mg_name = singlenode +# singlenode = que de l'air ; le mod "startanode" permet d'ajouter un cube au spawn + +# Player is able to fly without being affected by gravity. +# This requires the "fly" privilege on the server. +# type: bool +free_move = true + +# Fast movement (via the "special" key). +# This requires the "fast" privilege on the server. +# type: bool +fast_move = false + + +# The privileges that new users automatically get. +# See /privs in game for a full list on your server and mod configuration. +# type: string +default_privs = interact, shout, fly, fast + +# Privileges that players with basic_privs can grant +# type: string +basic_privs = interact, shout, fly, fast + +# Where the map generator stops. +# Please note: +# - Limited to 31000 (setting above has no effect) +# - The map generator works in groups of 80x80x80 nodes (5x5x5 MapBlocks). +# - Those groups have an offset of -32, -32 nodes from the origin. +# - Only groups which are within the map_generation_limit are generated +# type: int min: 0 max: 31000 +#mapgen_limit = 216 +mapgen_limit = 31000 + +# If this is set, players will always (re)spawn at the given position. +# type: string +static_spawnpoint = (0, 0, 0) + +# magpen flags +mg_flags = trees,decorations + +# mapgen v6 +mgv6_spflags = jungles,biomeblend,mudflow,snowbiomes,noflat,trees +mgv6_freq_desert = 0.05 +mgv6_freq_beach = 0.95 + +# Humidity variation for biomes. +# type: noise_params_2d +mgv6_np_humidity = { + offset = 0.5, + scale = 0.5, + spread = (2, 3, 2), + seed = 72384, + octaves = 3, + persistence = 0.50, + lacunarity = 2.0, + flags = eased +} + +# Defines tree areas and tree density. +# type: noise_params_2d +mgv6_np_trees = { + offset = 0, + scale = 1, + spread = (2, 3, 2), + seed = 2, + octaves = 4, + persistence = 0.66, + lacunarity = 2.0, + flags = eased +} + +# Defines areas with sandy beaches. +# type: noise_params_2d +mgv6_np_beach = { + offset = 0, + scale = 1, + spread = (50, 50, 50), + seed = 59420, + octaves = 3, + persistence = 0.50, + lacunarity = 2.0, + flags = eased +} + +secure.trusted_mods = wiki + + + diff --git a/minetest/recreate_world.sh b/minetest/recreate_world.sh new file mode 100755 index 0000000..0193a71 --- /dev/null +++ b/minetest/recreate_world.sh @@ -0,0 +1,259 @@ +#!/bin/sh + +MINETEST_PATH=/home/pi/.minetest +WORLD_NAME=astroport +WORLD_PATH=$MINETEST_PATH/worlds/$WORLD_NAME + +rm -rf $WORLD_PATH +mkdir $WORLD_PATH + +cp map.sqlite $WORLD_PATH/ + +echo " +gameid = minetest +auth_backend = sqlite3 +player_backend = sqlite3 +backend = sqlite3 +" > $WORLD_PATH/world.mt + +cd ~/.zen/astrXbian/minetest +cat ./minetest-common.conf > /home/pi/.minetest/worlds/astroport/minetest.conf +echo " + +server_name = Astroport "$XZUID" + +# Message of the day displayed to players connecting. +# type: string +motd = Bienvenue sur l'Astroport \""$XZUID"\". Un petit cube auto-hébergé par son heureux propriétaire. + +server_description = Astroport + +# Domain name of server, to be displayed in the serverlist. +# type: string +#server_address = astroport.com + +# Homepage of server, to be displayed in the serverlist. +# type: string +#server_url = https://astroport.com + +# Automatically report to the serverlist. +# type: bool +server_announce = false + +# Network port to listen (UDP). +# This value will be overridden when starting from the main menu. +# type: int +port = 30001 + +# The network interface that the server listens on. +# type: string +# bind_address = + + +" >> /home/pi/.minetest/worlds/astroport/minetest.conf + + + + + +######################################################################################### +# +# SystemD +# +######################################################################################### + + +MINETEST_LOG_FILE=/var/log/minetest/minetest-astroport.log + +sudo touch $MINETEST_LOG_FILE +sudo chown pi:games $MINETEST_LOG_FILE +chmod 664 $MINETEST_LOG_FILE + +echo " +[Unit] +Description=Minetest multiplayer server minetest.conf server config +Documentation=man:minetestserver(6) +After=network.target +RequiresMountsFor=/var/games/minetest-server + +[Service] +Restart=on-failure +User=pi +Group=games +ExecStart=/usr/lib/minetest/minetestserver --port 30001 --world /home/pi/.minetest/worlds/astroport --config /home/pi/.minetest/worlds/astroport/minetest.conf --logfile /var/log/minetest/minetest-astroport.log +StandardOutput=null + +[Install] +WantedBy=multi-user.target +" >> $WORLD_PATH/systemd.service + +sudo systemctl enable $WORLD_PATH/systemd.service + +sudo systemctl start astroport-minetest.service + + + + + +######################################################################################### +# +# MODS +# +######################################################################################### + + +mkdir $WORLD_PATH/worldmods + +if [ ! -d $MINETEST_PATH/mods ]; then + mkdir $MINETEST_PATH/mods +fi + +# ## mg - Experimental Mapgen for Minetest +# +# if [ ! -d $MINETEST_PATH/mods/mg-master ]; then +# +# if [ ! -f $MINETEST_PATH/mods/mg.zip ]; then +# wget https://github.com/minetest-mods/mg/archive/refs/heads/master.zip -O $MINETEST_PATH/mods/mg.zip +# fi +# +# unzip $MINETEST_PATH/mods/mg.zip -d $MINETEST_PATH/mods +# fi +# +# cp -r $MINETEST_PATH/mods/mg-master $WORLD_PATH/worldmods + + +## startanode +# +# if [ ! -d $MINETEST_PATH/mods/startanode-master ]; then +# +# if [ ! -f $MINETEST_PATH/mods/startanode.zip ]; then +# wget https://github.com/minetest-mods/startanode/archive/refs/heads/master.zip -O $MINETEST_PATH/mods/startanode.zip +# fi +# +# unzip $MINETEST_PATH/mods/startanode.zip -d $MINETEST_PATH/mods +# fi +# +# cp -r $MINETEST_PATH/mods/startanode-master $WORLD_PATH/worldmods + + + +## Spawnbuilder +# +# spawnBuilderLocation=`find $MINETEST_PATH/mods -type d -name spawnbuilder` +# if [ -z $spawnBuilderLocation ]; then +# +# if [ ! -f $MINETEST_PATH/mods/spawnbuilder.zip ]; then +# wget https://repo.or.cz/minetest_spawnbuilder.git/snapshot/1.1.0.zip -O $MINETEST_PATH/mods/spawnbuilder.zip +# fi +# +# unzip $MINETEST_PATH/mods/spawnbuilder.zip -d $MINETEST_PATH/mods/spawnbuilder/ +# fi +# +# mkdir $WORLD_PATH/worldmods/spawnbuilder +# cp -r $MINETEST_PATH/mods/spawnbuilder/minetest_spawnbuilder-*/* $WORLD_PATH/worldmods/spawnbuilder +# +# echo " +# #Side length of the surface area of the spawn platform +# #If the number is odd, the platform will be centered at spawn. +# #Using a width lower than 3 is not recommended. +# spawnbuilder_width (Spawn platform width) int 5 1 +# " > $WORLD_PATH/worldmods/spawnbuilder/mod.conf + + + +## Unified inventory mod + +if [ ! -d $MINETEST_PATH/mods/unified_inventory-master ]; then + + if [ ! -f $MINETEST_PATH/mods/unified_inventory.zip ]; then + wget https://github.com/minetest-mods/unified_inventory/archive/master.zip -O $MINETEST_PATH/mods/unified_inventory.zip + fi + + unzip $MINETEST_PATH/mods/unified_inventory.zip -d $MINETEST_PATH/mods +fi + +cp -r $MINETEST_PATH/mods/unified_inventory-master $WORLD_PATH/worldmods + +## Spawn mod + +if [ ! -d $MINETEST_PATH/mods/spawn_command-master ]; then + + if [ ! -f $MINETEST_PATH/mods/spawn_command.zip ]; then + wget https://github.com/minetest-mods/spawn_command/archive/refs/heads/master.zip -O $MINETEST_PATH/mods/spawn_command.zip + fi + + unzip $MINETEST_PATH/mods/spawn_command.zip -d $MINETEST_PATH/mods +fi + +cp -r $MINETEST_PATH/mods/spawn_command-master $WORLD_PATH/worldmods + + +## Jukebok mod + +if [ ! -d $MINETEST_PATH/mods/jukebox-master ]; then + + if [ ! -f $MINETEST_PATH/mods/jukebox.zip ]; then + wget https://github.com/minetest-mods/jukebox/archive/refs/heads/master.zip -O $MINETEST_PATH/mods/jukebox.zip + fi + + unzip $MINETEST_PATH/mods/jukebox.zip -d $MINETEST_PATH/mods +fi + +cp -r $MINETEST_PATH/mods/jukebox-master $WORLD_PATH/worldmods + +## xdecor mod + +if [ ! -d $MINETEST_PATH/mods/xdecor-master ]; then + + if [ ! -f $MINETEST_PATH/mods/xdecor.zip ]; then + wget https://github.com/minetest-mods/xdecor/archive/refs/heads/master.zip -O $MINETEST_PATH/mods/xdecor.zip + fi + + unzip $MINETEST_PATH/mods/xdecor.zip -d $MINETEST_PATH/mods +fi + +cp -r $MINETEST_PATH/mods/xdecor-master $WORLD_PATH/worldmods + +## Display modpack + +if [ ! -d $MINETEST_PATH/mods/display_modpack-master ]; then + + if [ ! -f $MINETEST_PATH/mods/display_modpack.zip ]; then + wget https://github.com/pyrollo/display_modpack/archive/refs/heads/master.zip -O $MINETEST_PATH/mods/display_modpack.zip + fi + + unzip $MINETEST_PATH/mods/display_modpack.zip -d $MINETEST_PATH/mods +fi + +cp -r $MINETEST_PATH/mods/display_modpack-master $WORLD_PATH/worldmods + +## Letters + + +if [ ! -d $MINETEST_PATH/mods/letters-master ]; then + + if [ ! -f $MINETEST_PATH/mods/letters.zip ]; then + wget https://github.com/minetest-mods/letters/archive/refs/heads/master.zip -O $MINETEST_PATH/mods/letters.zip + fi + + unzip $MINETEST_PATH/mods/letters.zip -d $MINETEST_PATH/mods +fi + +cp -r $MINETEST_PATH/mods/letters-master $WORLD_PATH/worldmods + +## mydoors + + +if [ ! -d $MINETEST_PATH/mods/mydoors-master ]; then + + if [ ! -f $MINETEST_PATH/mods/mydoors.zip ]; then + wget https://github.com/minetest-mods/mydoors/archive/refs/heads/master.zip -O $MINETEST_PATH/mods/mydoors.zip + fi + + unzip $MINETEST_PATH/mods/mydoors.zip -d $MINETEST_PATH/mods +fi + +cp -r $MINETEST_PATH/mods/mydoors-master $WORLD_PATH/worldmods + + + diff --git a/minetest/start_server.sh b/minetest/start_server.sh new file mode 100755 index 0000000..832d3bd --- /dev/null +++ b/minetest/start_server.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +/usr/lib/minetest/minetestserver --port 30001 --world /home/pi/.minetest/worlds/astroport --config /home/pi/.minetest/worlds/astroport/minetest.conf diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..f6ebade --- /dev/null +++ b/nginx.conf @@ -0,0 +1,39 @@ +server { + + root /home/pi/.zen/astrXbian/www/boris; + listen 80 default_server; + server_name _; + + # This section can be copied into an existing default setup + location / { + allow all; + index index.php index.html index.htm; + location ~ \.php { + try_files $uri index.php =404; + fastcgi_pass unix:/run/php/php7.3-fpm.sock; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $request_filename; + include /etc/nginx/fastcgi_params; + fastcgi_read_timeout 1800; + } + error_page 404 = /error/404.html; + try_files $uri $uri/ =404; + location ~ /albumart/* { + expires -1s; + } + } + + + location /ipfs { + proxy_pass http://127.0.0.1:8181; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $remote_addr; + } + + location /ipns { + proxy_pass http://127.0.0.1:8181; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $remote_addr; + } + +} diff --git a/www/boris/conf.php b/www/boris/conf.php index 5242035..db48ed2 100644 --- a/www/boris/conf.php +++ b/www/boris/conf.php @@ -1,6 +1,8 @@ '; var_dump($videos); echo ''; +// echo shell_exec('whoami'); // Pour savoir quel utilisateur système exécute les scripts PHP + $videos = array_reverse($videos); // ## film;MDan5TDuT-0;;Le Manuel de Survie en Dictature v1.1 au format papier;;["onelove"];k51qzi5uqu5dl0hnglpzumjezep2avacrtbx7i15v91elcxac4cpd8290kl1hq;720p;/ipfs/QmZp63RXhLm6QASmw1t2R8fu5waSJFmyW7cmdVNxyuJXzg/MDan5TDuT-0_Le%20Manuel%20de%20Survie%20en%20Dictature%20v1.1%20au%20format%20papier.mp4 foreach ($videos as $v) { - list($a, $youtubeID, $c, $videoName, $e, $src, $h, $quality, $videoURI) = explode(";", $v); + list($category, $videoID, $p3, $videoName, $p5, $src, $p7, $definition, $videoURI) = explode(";", $v); - $videoURL = 'https://'. HOST. $videoURI; - $videoEco = 'https://'. HOST. '/ipns/' . $h; + $videoEco = '/ipns/' . $p7; $mimeType = guessTypeFromFilename($videoURI); if ($mimeType == 'video/mp4') { - + + switch ($category) { + + case 'youtube': + $thumbURL = sprintf(YOUTUBE_THUMB, $videoID); + break; + + case 'film': + $thumbURL = 'styles/astroport/logo.png'; + break; + } + $videosList[] = [ + 'thumbURL' => $thumbURL, + 'category' => $category, 'mime' => $mimeType, - 'url' => $videoURL, 'eco' => $videoEco, 'uri' => $videoURI, 'name' => $videoName, - 'youtubeID' => $youtubeID + 'youtubeID' => $videoID ]; } @@ -37,22 +50,22 @@ foreach ($videos as $v) { ?> - Astroport/School: WWW/IPFS - Interfaces et API - - - + Astroport "<?php echo STATION_NAME; ?> + +

- ~/.zen/AstXbian/www/boris × Voir le code de la page + Astroport ""

-

- le code est libre × voyez le évoluer -

'; var_dump($videosList); echo ''; + echo ''; ?>
- + diff --git a/www/boris/youtube_watch.php b/www/boris/youtube_watch.php index becdc93..ee0a867 100644 --- a/www/boris/youtube_watch.php +++ b/www/boris/youtube_watch.php @@ -2,22 +2,23 @@ require_once('functions.php'); require_once('conf.php'); -$videoURL = 'https://'. HOST. htmlentities($_GET['uri']); +//$videoURL = 'http://'. HOST; +$videoURL = htmlentities($_GET['uri']); $videoName = htmlentities(urldecode($_GET['name'])); $videoMIME = htmlentities($_GET['mime']); ?> - AstroCrowdBuster - - + <?php echo $videoName; ?> - Astroport "<?php echo STATION_NAME; ?> + +
- Astroport × Crowdbunker + Astroport ""
diff --git a/www/boris/youtube_watch_step2.html b/www/boris/youtube_watch_step2.html new file mode 100644 index 0000000..c4b6d7d --- /dev/null +++ b/www/boris/youtube_watch_step2.html @@ -0,0 +1,53 @@ + + + + ${TITLE} in Astroport + + + + + + +
+
+ ASTROPORT ${XZUID} +
+
+
+
+ +

${TITLE}

+ +

Lancement de la video dans 7 secondes...

+ +

+ Ce fichier vous est servi par une station amie. Faites lui un don pour la remercier : + + +

+ +

+ La clef de la station amie est maintenant copiée dans le presse-papier. Vous pouvez la coller dans le client Ğ1 de votre choix (Cesium par exemple) afin de faire votre don 😉 +

+ +
+
+ + diff --git a/www/boris/youtube_watch_step3.html b/www/boris/youtube_watch_step3.html new file mode 100644 index 0000000..8e4be62 --- /dev/null +++ b/www/boris/youtube_watch_step3.html @@ -0,0 +1,30 @@ + + + + ${TITLE} in Astroport + + + + + +
+
+ ASTROPORT ${XZUID} +
+
+ +
+
+ + +

+ ${TITLE} +

+
+
+ + + diff --git a/zen/ipns_TAG_refresh.sh b/zen/ipns_TAG_refresh.sh index 87e33fb..c9b362d 100755 --- a/zen/ipns_TAG_refresh.sh +++ b/zen/ipns_TAG_refresh.sh @@ -86,40 +86,13 @@ do ### IPNS LINK CAN EVOLVE (REFRESH EVERY 12 H TO MAINTAIN ALIVE IN THE SWARM) # TODO : Use templating ### This index.html is ipns link root, 1st welcome page for MEDIAKEY -> *** Redirect to CONTRACTS processing HERE *** - echo " - - - $TITLE in Astroport - - - - - - - - -
-
- ASTROPORT × ${mediakey} -
-
-
-

$TITLE

-
- -
-
Recevez de la JUNE. Scannez le QRCODE d'un simple G1 portefeuille (Votre portefeuille est GRATUIT)
-

Cliquez ici pour lancer la lecture streaming de cette vidéo

-
-
-

Astroport Video Club & Datacenter décentralisé. P2P Libre & Légal.
-
Voici le lien Gchange de la Station qui a ajouté ce média. Un DON = Merci -
- - - - -" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/index.html + + cat /home/$YOU/.zen/astrXbian/www/boris/youtube_watch_step2.html \ + | sed "s/\${IPNSLINK}/$IPNSLINK/g" \ + | sed "s/\${XZUID}/$XZUID/g" \ + | sed "s/\${G1PUB}/$G1PUB/g" \ + | sed "s/\${TITLE}/$TITLE/g" \ + > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/index.html ######################################################################## ### Scenario are G1PUB subdivized. Thus each friend can establish own contract @@ -142,40 +115,13 @@ do [[ "$FILETYPE" == "mkv" ]] && MIMETYPE="video/x-matroska" [[ "$FILETYPE" == "mp3" ]] && MIMETYPE="audio/mpeg" && HTMLTAG="audio" - echo " - - - $TITLE in Astroport served by $G1PUB - - - - - -
-
- CopyLaRadio : Joignez vous aux %MAKER de Stations Astroport -
-
- astrXbian × en DEMO sur Gchange -
-
-
-
- <$HTMLTAG controls> - - -

$TITLE $MIMETYPE (Conservez OFFLINE)

-

Recrutement Astrocrew! Offres de Stage, Job - Astroport - Exploration P2P ?

-
-
-

Ce media possède un G1 portefeuille avec lequel il paye son hébergement. -
Voici les dons reçus par (${mediakey}). Ce média vous plait? Flashez ce QRCode.
-
-
-

${MEDIAPUBKEY} = ${ZENBALANCE} ZEN -

Le Zen est un Token de la G1 (1G1 = 100ZEN)
- -" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${mediakey}/${G1PUB}/index.html + cat /home/$YOU/.zen/astrXbian/www/boris/youtube_watch_step3.html \ + | sed "s/\${TITLE}/$TITLE/g" \ + | sed "s/\${XZUID}/$XZUID/g" \ + | sed "s/\${IPFSREPFILEID}/$IPFSREPFILEID/g" \ + | sed "s/\${URLENCODE_FILE_NAME}/$URLENCODE_FILE_NAME/g" \ + > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html + if [[ "$source" == "YOUTUBE" ]] then diff --git a/zen/new_file_in_astroport.sh b/zen/new_file_in_astroport.sh index c49ebf6..6b6494f 100755 --- a/zen/new_file_in_astroport.sh +++ b/zen/new_file_in_astroport.sh @@ -294,63 +294,28 @@ rm /tmp/.ipfsid IPNSLINK=$(ipfs key list -l | grep ${MEDIAKEY} | cut -d ' ' -f 1) ## FIRST REDIRECT PAGE ${MEDIAKEY}/index.html # https://tube.copylaradio.com/ipns/$IPNSLINK -echo " - - - $TITLE in Astroport - - - - - - -
-
- ASTROPORT × DEMO -
-
-
-

$TITLE

- LECTURE LOCALHOST!

Lancement de la video dans 10 secondes ...
-

Ce service est disponible sur astrXbian BETA Live TEstNET

-
-
-

Démonstration Streaming du Datacenter P2P Libre et Légal.
-
Les dons au portefeuille du Media (${MEDIAKEY}) rapportent à son Auteur, et payent son hébergement. -
-
- -" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/index.html +#envsubst < ./www/boris/youtube_watch_step2.html > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/index.html + +cat /home/$YOU/.zen/astrXbian/www/boris/youtube_watch_step2.html \ + | sed "s/\${IPNSLINK}/$IPNSLINK/g" \ + | sed "s/\${XZUID}/$XZUID/g" \ + | sed "s/\${G1PUB}/$G1PUB/g" \ + | sed "s/\${TITLE}/$TITLE/g" \ + > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/index.html + ## SECOND REDIRECT PAGE ${MEDIAKEY}/${G1PUB}/index.html # https://tube.copylaradio.com/ipns/$IPNSLINK/${G1PUB}/ -echo " - - - $TITLE in Astroport - - - - - - -
-
- Lien direct qui fonctionne depuis votre Station Astroport/KODI! -
-
-
-

$TITLE

-
Accédez immédiatement à cette vidéo depuis votre station Astroport/KODI ...
-

Essayez astrXbian Le BETA Live TEstNET Astroport

-
-
-

Service Video Club / Datacenter P2P Libre et Légal.
-
Les dons au portefeuille du Media (${MEDIAKEY}) rapportent à son Auteur, et payent son hébergement. -
-
- -" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html + +#envsubst < ../www/boris/youtube_watch_step3.html > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html +cat /home/$YOU/.zen/astrXbian/www/boris/youtube_watch_step3.html \ + | sed "s/\${TITLE}/$TITLE/g" \ + | sed "s/\${XZUID}/$XZUID/g" \ + | sed "s/\${IPFSREPFILEID}/$IPFSREPFILEID/g" \ + | sed "s/\${URLENCODE_FILE_NAME}/$URLENCODE_FILE_NAME/g" \ + > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html + + # echo "" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html ######################################################################## ## MODIFY INTO "./zen/ipns_TAG_refresh.sh" (add crypto/contracts there)