forked from axiom-team/astrXbian
Merge branch 'master' of https://git.p2p.legal/axiom-team/astrXbian
This commit is contained in:
commit
c512d8aff3
|
@ -1 +1,4 @@
|
|||
__pycache__
|
||||
www/boris/me
|
||||
www/boris/swarm
|
||||
|
||||
|
|
77
README.md
77
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)**
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
minetest.conf
|
Binary file not shown.
|
@ -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
|
||||
|
||||
|
||||
|
|
@ -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
|
||||
|
||||
|
||||
|
|
@ -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
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,6 +1,8 @@
|
|||
<?php
|
||||
|
||||
define('HOST', 'tube.copylaradio.com');
|
||||
define('STATION_NAME', exec('cat ../../../ipfs/.12D*/_xbian.zuid'));
|
||||
define('HOST', 'astroport');
|
||||
define('THEME', 'astroport');
|
||||
|
||||
/*
|
||||
|
||||
|
|
|
@ -1,104 +0,0 @@
|
|||
:root {
|
||||
|
||||
--pink: hsl(338.5, 72.8%, 36.1%);
|
||||
--canard: hsl(200.8, 100%, 9.6%);
|
||||
}
|
||||
|
||||
body {
|
||||
|
||||
background: #121212;
|
||||
color: white;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: Roboto,sans-serif;
|
||||
}
|
||||
|
||||
header {
|
||||
|
||||
background: var(--canard);
|
||||
overflow: hidden;
|
||||
margin-bottom: 2rem;
|
||||
|
||||
}
|
||||
|
||||
header * {
|
||||
|
||||
font-size: 1.5rem;
|
||||
padding: 0.5rem;
|
||||
margin: 0;
|
||||
color: var(--pink);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
header span {
|
||||
|
||||
color: white;
|
||||
}
|
||||
|
||||
|
||||
main {
|
||||
|
||||
width: 80%;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
#videosList {
|
||||
|
||||
display: grid;
|
||||
grid-gap: 1rem 1rem;
|
||||
grid-auto-flow: row;
|
||||
grid-template-columns: 322px 322px 322px;
|
||||
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#videosList li {
|
||||
|
||||
background: var(--canard);
|
||||
border-color: var(--pink);
|
||||
border-radius: 0.25rem;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#videosList .video-title {
|
||||
|
||||
padding: 0.5rem 1rem;
|
||||
}
|
||||
|
||||
.video-title,
|
||||
.video-title a,
|
||||
.video-title a:visited {
|
||||
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
article {
|
||||
|
||||
border-radius: 0.25rem;
|
||||
background: hsl(200.8, 100%, 9.6%);
|
||||
width: 58.3%;
|
||||
margin: auto;
|
||||
overflow: hidden;
|
||||
|
||||
}
|
||||
|
||||
article video {
|
||||
|
||||
width: 100%;
|
||||
max-height: 50vh;
|
||||
background: black;
|
||||
}
|
||||
|
||||
article .video-title {
|
||||
|
||||
font-weight: bold;
|
||||
padding: 1rem 1rem;
|
||||
font-size: 1.25rem;
|
||||
margin: 0;
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
styles/crowdbunker/style.css
|
|
@ -6,7 +6,7 @@
|
|||
########################################################################
|
||||
PREFIX="$1"
|
||||
FILTER="$2"
|
||||
[[ $PREFIX == "" ]] && PREFIX="Y"
|
||||
[[ $PREFIX == "" ]] && PREFIX="*"
|
||||
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1) && [[ ! $YOU ]] && echo "ipfs NOT RUNNING. EXIT" && exit 1
|
||||
|
||||
# Filter no ipns link
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 9.6 KiB |
|
@ -0,0 +1,117 @@
|
|||
:root {
|
||||
|
||||
--rouge: hsl(0, 98.8%, 33.5%);
|
||||
--noir-fonce: hsl(0, 30%, 2.1%);
|
||||
--noir-moyen: hsl(0, 15%, 3.1%);
|
||||
--noir-clair: hsl(0, 5%, 7.1%);
|
||||
}
|
||||
|
||||
body {
|
||||
|
||||
background: var(--noir-fonce);
|
||||
color: white;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: Roboto,sans-serif;
|
||||
}
|
||||
|
||||
header {
|
||||
|
||||
background: var(--noir-clair);
|
||||
overflow: hidden;
|
||||
margin-bottom: 2rem;
|
||||
|
||||
}
|
||||
|
||||
header * {
|
||||
|
||||
font-size: 1.5rem;
|
||||
padding: 0.5rem;
|
||||
margin: 0;
|
||||
color: var(--rouge);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
header span {
|
||||
|
||||
color: white;
|
||||
}
|
||||
|
||||
|
||||
main {
|
||||
|
||||
width: 80%;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
#videosList {
|
||||
|
||||
display: grid;
|
||||
grid-gap: 1rem 1rem;
|
||||
grid-auto-flow: row;
|
||||
grid-template-columns: 322px 322px 322px;
|
||||
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#videosList li {
|
||||
|
||||
background: var(--noir-clair);
|
||||
border-color: var(--rouge);
|
||||
border-radius: 0.25rem;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#videosList .video-title {
|
||||
|
||||
padding: 0.5rem 1rem;
|
||||
}
|
||||
|
||||
.video-title,
|
||||
.video-title a,
|
||||
.video-title a:visited {
|
||||
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
article {
|
||||
|
||||
border-radius: 0.25rem;
|
||||
background: var(--noir-clair);
|
||||
width: 58.3%;
|
||||
margin: auto;
|
||||
overflow: hidden;
|
||||
|
||||
}
|
||||
|
||||
article video {
|
||||
|
||||
width: 100%;
|
||||
max-height: 50vh;
|
||||
background: black;
|
||||
}
|
||||
|
||||
article .video-title {
|
||||
|
||||
font-weight: bold;
|
||||
padding: 1rem 1rem;
|
||||
font-size: 1.25rem;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
footer {
|
||||
|
||||
display: none;
|
||||
}
|
||||
|
||||
#successMsg {
|
||||
|
||||
opacity: 0;
|
||||
transition: opacity 1s;
|
||||
}
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
@ -0,0 +1,104 @@
|
|||
:root {
|
||||
|
||||
--pink: hsl(338.5, 72.8%, 36.1%);
|
||||
--canard: hsl(200.8, 100%, 9.6%);
|
||||
}
|
||||
|
||||
body {
|
||||
|
||||
background: #121212;
|
||||
color: white;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: Roboto,sans-serif;
|
||||
}
|
||||
|
||||
header {
|
||||
|
||||
background: var(--canard);
|
||||
overflow: hidden;
|
||||
margin-bottom: 2rem;
|
||||
|
||||
}
|
||||
|
||||
header * {
|
||||
|
||||
font-size: 1.5rem;
|
||||
padding: 0.5rem;
|
||||
margin: 0;
|
||||
color: var(--pink);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
header span {
|
||||
|
||||
color: white;
|
||||
}
|
||||
|
||||
|
||||
main {
|
||||
|
||||
width: 80%;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
#videosList {
|
||||
|
||||
display: grid;
|
||||
grid-gap: 1rem 1rem;
|
||||
grid-auto-flow: row;
|
||||
grid-template-columns: 322px 322px 322px;
|
||||
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#videosList li {
|
||||
|
||||
background: var(--canard);
|
||||
border-color: var(--pink);
|
||||
border-radius: 0.25rem;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#videosList .video-title {
|
||||
|
||||
padding: 0.5rem 1rem;
|
||||
}
|
||||
|
||||
.video-title,
|
||||
.video-title a,
|
||||
.video-title a:visited {
|
||||
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
article {
|
||||
|
||||
border-radius: 0.25rem;
|
||||
background: var(--canard);
|
||||
width: 58.3%;
|
||||
margin: auto;
|
||||
overflow: hidden;
|
||||
|
||||
}
|
||||
|
||||
article video {
|
||||
|
||||
width: 100%;
|
||||
max-height: 50vh;
|
||||
background: black;
|
||||
}
|
||||
|
||||
article .video-title {
|
||||
|
||||
font-weight: bold;
|
||||
padding: 1rem 1rem;
|
||||
font-size: 1.25rem;
|
||||
margin: 0;
|
||||
}
|
|
@ -4,30 +4,43 @@ require_once('functions.php');
|
|||
|
||||
|
||||
$videosList = array();
|
||||
|
||||
exec("/bin/bash -c './get_astrxbian_index.sh'", $videos);
|
||||
// echo '<pre>'; var_dump($videos); echo '</pre>';
|
||||
// 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) {
|
|||
?><!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Astroport/School: WWW/IPFS - Interfaces et API - </title>
|
||||
<link rel="stylesheet" href="crowdbunker.css" type="text/css" />
|
||||
<link rel="icon" type="image/png" href="./astrocrowdbunker.png" />
|
||||
<title>Astroport "<?php echo STATION_NAME; ?></title>
|
||||
<link rel="stylesheet" href="styles/<?php echo THEME; ?>/style.css" type="text/css" />
|
||||
<link rel="icon" type="image/png" href="./styles/<?php echo THEME; ?>/logo.png" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header>
|
||||
<h1>
|
||||
<span><a href="https://git.p2p.legal/axiom-team/astrXbian/src/branch/master/www/boris">~/.zen/AstXbian/www/boris</a></span> × <span><a href="/ipfs/QmbmjSBWVNSSjJsMmCeFuFtQiuWyGg6iUGLRyvK7TUkFN8">Voir le code de la page</a></span>
|
||||
<a href="youtube.php">Astroport "<span><?php echo STATION_NAME; ?></span>"</a>
|
||||
</h1>
|
||||
</header>
|
||||
<h2>
|
||||
<span>le code est libre</span> × <span>voyez le évoluer</span>
|
||||
</h2>
|
||||
<main>
|
||||
<?php
|
||||
|
||||
// echo '<pre>'; var_dump($videosList); echo '</pre>';
|
||||
|
||||
echo '<ul id="videosList">';
|
||||
|
||||
foreach ($videosList as $video) {
|
||||
|
@ -63,12 +76,12 @@ foreach ($videosList as $video) {
|
|||
|
||||
echo '
|
||||
|
||||
<a href="'. $href .'">
|
||||
<img src="'. sprintf(YOUTUBE_THUMB, $video['youtubeID']) . '" alt="'. $video['name'] . '" />
|
||||
<a href="'. $video['eco'] .'">
|
||||
<img src="'. $video['thumbURL'] . '" alt="'. $video['name'] . '" />
|
||||
</a>
|
||||
|
||||
<p class="video-title">
|
||||
<a href="'. $video['eco'] .'">
|
||||
<a href="'. $href .'">
|
||||
' . $video['name'] . '
|
||||
</a>
|
||||
</p>';
|
||||
|
@ -80,6 +93,13 @@ echo '</ul>';
|
|||
?>
|
||||
</main>
|
||||
|
||||
|
||||
<footer>
|
||||
<p>
|
||||
<span>le code est libre</span> × <span>voyez le évoluer</span>
|
||||
</p>
|
||||
<p>
|
||||
<span><a href="https://git.p2p.legal/axiom-team/astrXbian/src/branch/master/www/boris">~/.zen/AstXbian/www/boris</a></span> × <span><a href="/ipfs/QmbmjSBWVNSSjJsMmCeFuFtQiuWyGg6iUGLRyvK7TUkFN8">Voir le code de la page</a></span>
|
||||
</p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -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']);
|
||||
|
||||
?><!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>AstroCrowdBuster</title>
|
||||
<link rel="stylesheet" href="crowdbunker.css" type="text/css" />
|
||||
<link rel="icon" type="image/png" href="/astrocrowdbunker.png" />
|
||||
<title><?php echo $videoName; ?> - Astroport "<?php echo STATION_NAME; ?></title>
|
||||
<link rel="stylesheet" href="styles/<?php echo THEME; ?>/style.css" type="text/css" />
|
||||
<link rel="icon" type="image/png" href="./styles/<?php echo THEME; ?>/logo.png" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header>
|
||||
<h6>
|
||||
<a href="youtube.php"><span>Astroport</span> × <span>Crowdbunker</span></a>
|
||||
<a href="youtube.php">Astroport "<span><?php echo STATION_NAME; ?></span>"</a>
|
||||
</h6>
|
||||
</header>
|
||||
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>${TITLE} in Astroport</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="Refresh" content="7;URL=http://astroport/ipns/${IPNSLINK}/${G1PUB}/">
|
||||
<link rel='stylesheet' href='/styles/astroport/style.css' type='text/css' />
|
||||
<link rel='icon' type='image/png' href='/styles/astroport/logo.png' />
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h6>
|
||||
<a href='/'><span>ASTROPORT</span> <q>${XZUID}</q></a>
|
||||
</h6>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
|
||||
<h1>${TITLE}</h1>
|
||||
|
||||
<p>Lancement de la video dans 7 secondes...</p>
|
||||
|
||||
<p class="pubkey-and-copy-button">
|
||||
Ce fichier vous est servi par une station amie. Faites lui un don pour la remercier :
|
||||
<input type="text" id="pubkey" readonly value="${G1PUB}" />
|
||||
<button id="copy">Tip !</button>
|
||||
</p>
|
||||
|
||||
<p id="successMsg">
|
||||
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 😉
|
||||
</p>
|
||||
<script>
|
||||
function copy() {
|
||||
|
||||
var copyText = document.querySelector("input#pubkey");
|
||||
copyText.select();
|
||||
document.execCommand("copy");
|
||||
|
||||
var successMsg = document.querySelector("#successMsg");
|
||||
successMsg.style.opacity = "1";
|
||||
|
||||
var copyButton = document.querySelector("button#copy");
|
||||
copyButton.style.animation = "none";
|
||||
|
||||
}
|
||||
|
||||
|
||||
document.querySelector("button#copy").addEventListener("click", copy);
|
||||
</script>
|
||||
</article>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>${TITLE} in Astroport</title>
|
||||
<meta charset="UTF-8">
|
||||
<link rel='stylesheet' href='/styles/astroport/style.css' type='text/css' />
|
||||
<link rel='icon' type='image/png' href='/styles/astroport/logo.png' />
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h6>
|
||||
<a href='http://astroport/'><span>ASTROPORT</span> <q>${XZUID}</q></a>
|
||||
</h6>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<article>
|
||||
<video autoplay="autoplay" controls>
|
||||
<source src="/ipfs/${IPFSREPFILEID}/${URLENCODE_FILE_NAME}">
|
||||
<a href="/ipfs/${IPFSREPFILEID}/${URLENCODE_FILE_NAME}">${TITLE}</a>
|
||||
</video>
|
||||
|
||||
<h1 class="video-title">
|
||||
${TITLE}
|
||||
</h1>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -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 "<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>$TITLE in Astroport</title>
|
||||
<meta charset=\"UTF-8\">
|
||||
<link rel='stylesheet' href='/ipfs/QmPC5MTqt4do7emMUV4z7feYbjSGoX4kdDYVKB6jU3rEKk/crowdbunker.css' type='text/css' />
|
||||
<link rel='icon' type='image/png' href='/ipfs/QmPn3KpF4vNSkdXdk3eiWUVfNoUiCYfiGWxG1Zh9asjhKs/astrocrowdbunker.png' />
|
||||
<script type='text/javascript' src='/g1scan_fichiers/adapter.js'></script>
|
||||
<script type='text/javascript' src='/g1scan_fichiers/vue.js'></script>
|
||||
<script type='text/javascript' src='/ipfs/QmcmuVxnsxpupW5Es7ipgdK6KrG8SCgqFXMKeaBsHyJQct/instascan.js'></script>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h6>
|
||||
<a href='https://astroport.com'><span>ASTROPORT</span> × <span> ${mediakey}</span></a>
|
||||
</h6>
|
||||
</header>
|
||||
<main>
|
||||
<article><h2>$TITLE</h2>
|
||||
<div class='preview-container'>
|
||||
<video id='preview' autoplay='autoplay' style='transform: scaleX(-1);' class='active'></video>
|
||||
</div>
|
||||
<br>Recevez de la JUNE. Scannez le QRCODE d'un simple G1 portefeuille (<a href='https://cesium.app'>Votre portefeuille est GRATUIT</a>)<br>
|
||||
<h1 class='video-title'><a href='https://tube.copylaradio.com/ipns/$IPNSLINK/${G1PUB}/'>Cliquez ici pour lancer la lecture streaming de cette vidéo</a></h1>
|
||||
</article>
|
||||
</main>
|
||||
<center><br>Astroport Video Club & Datacenter décentralisé. P2P Libre & Légal.<br>
|
||||
<br>Voici le lien Gchange de la Station qui a ajouté ce média. Un DON = Merci
|
||||
<br><a target='tube' href=\"https://www.gchange.fr/#/app/user/${G1PUB}/\"><img src=\"https://g1sms.fr/g1barre/image.php?pubkey=${G1PUB}&target=1000&title=Un%20DON%20Merci%20$XZUID&node=g1.duniter.org&start_date=2021-06-21&display_pubkey=true&display_qrcode=true&progress_color=ff07a4\"></a></center>
|
||||
|
||||
<script type='text/javascript' src='/g1scan_fichiers/app.js'></script>
|
||||
|
||||
</body>
|
||||
</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
|
||||
|
||||
########################################################################
|
||||
### 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 "<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>$TITLE in Astroport served by $G1PUB</title>
|
||||
<meta charset=\"UTF-8\">
|
||||
<link rel='stylesheet' href='/ipfs/QmPC5MTqt4do7emMUV4z7feYbjSGoX4kdDYVKB6jU3rEKk/crowdbunker.css' type='text/css' />
|
||||
<link rel='icon' type='image/png' href='/ipfs/QmPn3KpF4vNSkdXdk3eiWUVfNoUiCYfiGWxG1Zh9asjhKs/astrocrowdbunker.png' />
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h5>
|
||||
<a href=\"https://copylaradio.com\"><span>CopyLaRadio : Joignez vous aux %MAKER de Stations Astroport</span></a>
|
||||
</h5>
|
||||
<h6>
|
||||
<a href='https://www.gchange.fr/#/app/market/lg?q=astroport'><span>astrXbian</span> × <span> en DEMO sur Gchange</span></a>
|
||||
</h6>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<$HTMLTAG controls>
|
||||
<source src=\"$TUBELINK\" type=\"$MIMETYPE\">
|
||||
</$HTMLTAG>
|
||||
<h1 class='video-title'><a href=\"$LOCALTUBELINK\">$TITLE $MIMETYPE (Conservez OFFLINE)</a></h1>
|
||||
<h1 class='video-title'><a target='copylaradio' href='https://www.copylaradio.com/makers''>Recrutement Astrocrew! Offres de Stage, Job - Astroport - Exploration P2P</a> ?</h1>
|
||||
</article>
|
||||
</main>
|
||||
<center><br>Ce media possède un G1 portefeuille avec lequel il paye son hébergement.
|
||||
<br>Voici les dons reçus par (${mediakey}). Ce média vous plait? Flashez ce QRCode.<br>
|
||||
<br>
|
||||
<br><img src=\"https://g1sms.fr/g1barre/image.php?pubkey=${MEDIAPUBKEY}&target=1000&title=DONS%20${mediakey}&node=g1.duniter.org&start_date=2021-06-21&display_pubkey=true&display_qrcode=true&progress_color=ff07a4\">
|
||||
<br><img width=222 src=\"https://tube.copylaradio.com/ipns/$IPNSLINK/QR.png\"><br>${MEDIAPUBKEY} = ${ZENBALANCE} ZEN
|
||||
<br><br>Le Zen est un Token de la G1 (1G1 = 100ZEN)</center>
|
||||
</body>
|
||||
</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
|
||||
|
||||
|
||||
if [[ "$source" == "YOUTUBE" ]]
|
||||
then
|
||||
|
|
|
@ -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 "<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>$TITLE in Astroport</title>
|
||||
<meta charset=\"UTF-8\">
|
||||
<meta http-equiv=\"Refresh\" content=\"10;URL=https://tube.copylaradio.com/ipns/$IPNSLINK/${G1PUB}/\">
|
||||
<link rel='stylesheet' href='/crowdbunker.css' type='text/css' />
|
||||
<link rel='icon' type='image/png' href='/astrocrowdbunker.png' />
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h6>
|
||||
<a href='https://astroport.com'><span>ASTROPORT</span> × <span> DEMO</span></a>
|
||||
</h6>
|
||||
</header>
|
||||
<main>
|
||||
<article><h2>$TITLE</h2>
|
||||
<a href=\"$LOCALTUBELINK\">LECTURE LOCALHOST</a>!<br><br>Lancement de la video dans 10 secondes ...<br>
|
||||
<h1 class='video-title'>Ce service est disponible sur <a href='https://copylaradio.com'>astrXbian</a> BETA Live TEstNET</h1>
|
||||
</article>
|
||||
</main>
|
||||
<center><br>Démonstration Streaming du Datacenter P2P Libre et Légal.<br>
|
||||
<br>Les dons au portefeuille du Media (${MEDIAKEY}) rapportent à son Auteur, et payent son hébergement.
|
||||
<br>
|
||||
<br><a target='tube' href=\"https://www.gchange.fr/#/app/user/${G1PUB}/\"><img width=222 src=\"https://tube.copylaradio.com/ipns/$IPNSLINK/QR.png\"></a></center>
|
||||
</body>
|
||||
</html>" > ~/.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 "<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>$TITLE in Astroport</title>
|
||||
<meta charset=\"UTF-8\">
|
||||
<meta http-equiv=\"Refresh\" content=\"10;URL=http://127.0.0.1:8181/ipfs/$IPFSREPFILEID/$URLENCODE_FILE_NAME\">
|
||||
<link rel='stylesheet' href='/crowdbunker.css' type='text/css' />
|
||||
<link rel='icon' type='image/png' href='/astrocrowdbunker.png' />
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h5>
|
||||
<a href=\"http://127.0.0.1:8181/ipfs/$IPFSREPFILEID/$URLENCODE_FILE_NAME\"><span>Lien direct qui fonctionne depuis votre Station Astroport/KODI</span></a>!
|
||||
</h5>
|
||||
</header>
|
||||
<main>
|
||||
<article><h2>$TITLE</h2>
|
||||
<br>Accédez immédiatement à cette vidéo depuis votre station Astroport/KODI ...<br>
|
||||
<h1 class='video-title'>Essayez <a href='https://copylaradio.com'>astrXbian</a> Le BETA Live TEstNET Astroport</h1>
|
||||
</article>
|
||||
</main>
|
||||
<center><br>Service Video Club / Datacenter P2P Libre et Légal.<br>
|
||||
<br>Les dons au portefeuille du Media (${MEDIAKEY}) rapportent à son Auteur, et payent son hébergement.
|
||||
<br>
|
||||
<br><a target='tube' href=\"https://www.gchange.fr/#/app/user/${G1PUB}/\"><img width=222 src=\"https://tube.copylaradio.com/ipns/$IPNSLINK/QR.png\"></a></center>
|
||||
</body>
|
||||
</html>" > ~/.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 "<meta http-equiv=\"Refresh\" content=\"0;URL=http://127.0.0.1:8181/ipfs/$IPFSREPFILEID/$URLENCODE_FILE_NAME\">" > ~/.zen/ipfs/.${IPFSNODEID}/KEY/${MEDIAKEY}/${G1PUB}/index.html
|
||||
########################################################################
|
||||
## MODIFY INTO "./zen/ipns_TAG_refresh.sh" (add crypto/contracts there)
|
||||
|
|
Loading…
Reference in New Issue