doc images + jukebox prefs albumart in .gitignore

This commit is contained in:
qo-op 2020-05-20 20:04:49 +02:00
parent 78bc0663b8
commit 1afcea29c1
17 changed files with 47 additions and 36 deletions

2
.gitignore vendored
View File

@ -1,2 +1,4 @@
.profile
www/LOVELand/jukebox/prefs
www/LOVELand/jukebox/albumart
zen/tools/scraping/transiscope/transiscope.json

BIN
doc/images/1.point_zen.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

BIN
doc/images/Swarm0.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
doc/images/swlogo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

@ -1 +0,0 @@
a:135:{s:24:"music_directory_albumart";s:0:"";s:10:"mysql_host";s:9:"localhost";s:14:"mysql_database";s:7:"romprdb";s:10:"mysql_user";s:5:"rompr";s:14:"mysql_password";s:11:"romprdbpass";s:10:"mysql_port";s:4:"3306";s:10:"proxy_host";s:0:"";s:10:"proxy_user";s:0:"";s:14:"proxy_password";s:0:"";s:14:"sortbycomposer";b:0;s:13:"composergenre";b:0;s:17:"composergenrename";a:1:{i:0;s:9:"Classical";}s:16:"preferlocalfiles";b:0;s:25:"mopidy_collection_folders";a:3:{i:0;s:17:"Spotify Playlists";i:1;s:11:"Local media";i:2;s:16:"SoundCloud/Liked";}s:19:"lastfm_country_code";s:2:"FR";s:15:"country_userset";b:1;s:13:"debug_enabled";i:0;s:14:"custom_logfile";s:0:"";s:16:"cleanalbumimages";b:1;s:17:"do_not_show_prefs";b:0;s:24:"load_plugins_at_loadtime";b:0;s:21:"beets_server_location";s:0:"";s:10:"multihosts";O:8:"stdClass":1:{s:7:"Default";O:8:"stdClass":6:{s:4:"host";s:9:"localhost";s:4:"port";s:4:"6600";s:8:"password";s:0:"";s:6:"socket";s:0:"";s:12:"mopidy_slave";b:0;s:11:"radioparams";O:8:"stdClass":4:{s:9:"radiomode";s:0:"";s:10:"radioparam";s:0:"";s:11:"radiomaster";i:1589517825735;s:12:"radioconsume";i:0;}}}s:8:"dev_mode";b:0;s:9:"live_mode";b:0;s:23:"collection_load_timeout";i:3600000;s:20:"smartradio_chunksize";i:5;s:19:"linkchecker_nextrun";d:1589827498644;s:21:"linkchecker_isrunning";b:0;s:21:"linkchecker_frequency";i:604800000;s:20:"linkchecker_polltime";i:5000;s:19:"audiobook_directory";s:0:"";s:17:"collection_player";s:3:"mpd";s:15:"snapcast_server";s:0:"";s:13:"snapcast_port";s:4:"1705";s:15:"displaycomposer";b:1;s:14:"artistsatstart";a:2:{i:0;s:15:"Various Artists";i:1;s:11:"Soundtracks";}s:14:"nosortprefixes";a:1:{i:0;s:3:"The";}s:16:"sortcollectionby";s:6:"artist";s:17:"showartistbanners";b:1;s:14:"google_api_key";s:0:"";s:23:"google_search_engine_id";s:0:"";s:22:"sync_lastfm_playcounts";b:0;s:20:"sync_lastfm_at_start";b:0;s:20:"last_lastfm_synctime";i:1589222665;s:25:"lfm_importer_start_offset";i:0;s:24:"lfm_importer_last_import";i:0;s:10:"sortbydate";b:0;s:11:"notvabydate";b:0;s:11:"currenthost";s:7:"Default";s:14:"player_backend";s:3:"mpd";s:15:"collectionrange";i:0;s:11:"lastfm_user";s:0:"";s:18:"lastfm_session_key";s:0:"";s:11:"autotagname";s:0:"";s:10:"tradsearch";b:0;s:17:"lastfm_scrobbling";b:0;s:18:"lastfm_autocorrect";b:0;s:13:"sourceshidden";b:0;s:14:"playlisthidden";b:0;s:10:"infosource";s:6:"lastfm";s:23:"playlistcontrolsvisible";b:0;s:19:"sourceswidthpercent";i:25;s:20:"playlistwidthpercent";i:25;s:11:"downloadart";b:1;s:9:"clickmode";s:6:"double";s:7:"chooser";s:9:"albumlist";s:14:"hide_albumlist";b:0;s:13:"hide_filelist";b:0;s:14:"hide_radiolist";b:0;s:17:"hide_podcastslist";b:0;s:18:"hide_playlistslist";b:0;s:18:"hide_audiobooklist";b:0;s:13:"hide_searcher";b:0;s:11:"hidebrowser";b:0;s:17:"shownupdatewindow";s:0:"";s:15:"scrolltocurrent";b:0;s:14:"alarm_ramptime";i:30;s:16:"alarm_snoozetime";i:8;s:10:"lastfmlang";s:7:"default";s:9:"user_lang";s:2:"en";s:8:"synctags";b:0;s:8:"synclove";b:0;s:13:"synclovevalue";s:1:"5";s:5:"theme";s:10:"fruit-soda";s:9:"icontheme";s:11:"Modern-Dark";s:9:"coversize";s:12:"40-Large.css";s:8:"fontsize";s:13:"04-Grande.css";s:10:"fontfamily";s:10:"Nunito.css";s:25:"collectioncontrolsvisible";b:0;s:16:"displayresultsas";s:10:"collection";s:18:"crossfade_duration";i:5;s:15:"newradiocountry";s:12:"countries/GB";s:24:"search_limit_limitsearch";b:0;s:15:"scrobblepercent";i:50;s:15:"updateeverytime";b:0;s:16:"fullbiobydefault";b:1;s:21:"mopidy_search_domains";a:2:{i:0;s:5:"local";i:1;s:7:"spotify";}s:20:"mopidy_radio_domains";a:2:{i:0;s:5:"local";i:1;s:7:"spotify";}s:14:"outputsvisible";b:0;s:16:"wheelscrollspeed";s:3:"150";s:20:"searchcollectiononly";b:0;s:20:"displayremainingtime";b:1;s:12:"cdplayermode";b:0;s:21:"auto_discovembobulate";b:0;s:13:"ratman_sortby";s:6:"Rating";s:18:"ratman_showletters";b:0;s:9:"sleeptime";i:30;s:7:"sleepon";b:0;s:20:"advanced_search_open";b:0;s:14:"sortwishlistby";s:6:"artist";s:18:"player_in_titlebar";b:0;s:21:"communityradiocountry";s:14:"united kingdom";s:22:"communityradiolanguage";s:0:"";s:17:"communityradiotag";s:0:"";s:20:"communityradiolistby";s:7:"country";s:21:"communityradioorderby";s:4:"name";s:10:"browser_id";N;s:13:"playlistswipe";b:1;s:22:"podcastcontrolsvisible";b:1;s:28:"default_podcast_display_mode";i:0;s:28:"default_podcast_refresh_mode";i:4;s:25:"default_podcast_sort_mode";i:0;s:30:"podcast_mark_new_as_unlistened";b:0;s:24:"use_albumart_in_playlist";b:1;s:19:"podcast_sort_levels";i:4;s:14:"podcast_sort_0";s:5:"Title";s:14:"podcast_sort_1";s:6:"Artist";s:14:"podcast_sort_2";s:8:"Category";s:14:"podcast_sort_3";s:3:"new";s:10:"bgimgparms";O:8:"stdClass":1:{s:5:"dummy";s:4:"baby";}s:6:"alarms";a:0:{}s:15:"collection_type";s:6:"sqlite";s:10:"test_width";i:1600;s:11:"test_height";i:761;}

View File

@ -32,17 +32,17 @@ echo '
'
########################################################################
# ENVIRONEMENT DETECTION + IPFS ~/.zen/ipfs/.$ipfsnodeid/G1SSB/_info
# ENVIRONEMENT DETECTION + IPFS ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_info
########################################################################
ipfsnodeid=$(ipfs id -f='<id>\n')
[[ $ipfsnodeid == "" ]] && echo "ERROR missing IPFS Node id !! IPFS is not installed !?" && exit 1
IPFSNODEID=$(ipfs id -f='<id>\n')
[[ $IPFSNODEID == "" ]] && echo "ERROR missing IPFS Node id !! IPFS is not installed !?" && exit 1
########################################################################
ssbpub=$(sbotc whoami 2>/dev/null | jq -r .id)
[[ $ssbpub == "" ]] && echo "ERROR sbotc NOT running !! Please check it..." && exit 1
WHOAMI=$(sbotc whoami 2>/dev/null | jq -r .id)
[[ $WHOAMI == "" ]] && echo "ERROR sbotc NOT running !! Please check it..." && exit 1
########################################################################
[[ ! -f ~/.ssb/secret.dunikey ]] && $MY_PATH/tools/secret2dunikey.sh
g1pub=$(cat ~/.ssb/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2)
[[ $g1pub == "" ]] && echo "ERROR g1pub empty !! Please check it..." && exit 1
G1PUB=$(cat ~/.ssb/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2)
[[ $G1PUB == "" ]] && echo "ERROR G1PUB empty !! Please check it..." && exit 1
########################################################################
# GET NODE disk performance. TODO, publish and use as IPFS repartition
@ -54,9 +54,10 @@ sizeAvail=$(df -h ~/ | tail -n 1 | awk '{print $4}')
# IPFS LOCAL REPOSITORY for Node Identity G1 + SSB
mkdir -p ~/.zen/ipfs/.$ipfsnodeid/G1SSB
mkdir -p ~/.zen/ipfs/.$IPFSNODEID/G1SSB
# SSB PUBLISH ipfs informations
# SSB PUBLISH EXTRA ipfs informations !!
# This SSB messages are read by ./zen/ssb_IPFS_swarm.sh to build your IPFS #Swarm0
sbotc publish '{"type":"ipfsnodeid","text":"'"$(ipfs id -f='<id>\n')"'"}'
sbotc publish '{"type":"ipfstryme","text":"'"$(ipfs id | jq -r .Addresses[] | tail -n 1)"'"}'
@ -65,26 +66,36 @@ sbotc publish '{"type":"ipfstryme","text":"'"$(ipfs id | jq -r .Addresses[] | ta
CESIUM="https://g1.data.le-sou.org"
# PREPARE title
[[ -f ~/.zen/ipfs/.$ipfsnodeid/G1SSB/_uidna ]] && uidna=$(cat ~/.zen/ipfs/.$ipfsnodeid/G1SSB/_uidna)
[[ ! $uidna ]] && title=$(curl -s ${CESIUM}/user/profile/${g1pub} | jq -r '._source.title') || title="Station $uidna"
[[ $title == null ]] && title="Station $USER@$(cat /etc/hostname)"
city=$(curl -s ${CESIUM}/user/profile/${g1pub} | jq -r '._source.city')
[[ $city != null ]] && title="$title in $city"
# Made from Cesium+ profile tittle and city OR user@hostname
title=$(curl -s ${CESIUM}/user/profile/${G1PUB} | jq -r '._source.title')
[[ -f ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_uidna ]] && uidna=$(cat ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_uidna)
# REFRESH cesium_geoPoint in SSB feed
geopointlat=$(curl -s ${CESIUM}/user/profile/${g1pub} | jq '._source.geoPoint.lat')
# Put in .$IPFSNODEID INDEX: _g1.uidna & _g1.cesium_name (used by Minetest flavour and others)
[[ $uidna ]] && echo "$uidna" > ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.uidna
[[ $title ]] && echo "$title" > ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.cesium_name
[[ $uidna ]] && [[ "$title" == "null" ]] && title="Station $uidna"
[[ "$title" == "null" ]] && title="Station $USER@$(cat /etc/hostname)"
city=$(curl -s ${CESIUM}/user/profile/${G1PUB} | jq -r '._source.city')
[[ "$city" != "null" ]] && title="$title in $city"
# ADD "cesium_geoPoint.lat" AND "cesium_geoPoint.lon" messages in SSB feed
# This way any SSB account is connected to its Cesium+ Geolocalisation.
geopointlat=$(curl -s ${CESIUM}/user/profile/${G1PUB} | jq '._source.geoPoint.lat')
[[ $geopointlat != null ]] && sbotc publish '{"type":"cesium_geoPoint.lat","text":"'"$geopointlat"'"}'
geopointlon=$(curl -s ${CESIUM}/user/profile/${g1pub} | jq '._source.geoPoint.lon')
geopointlon=$(curl -s ${CESIUM}/user/profile/${G1PUB} | jq '._source.geoPoint.lon')
[[ $geopointlon != null ]] && sbotc publish '{"type":"cesium_geoPoint.lon","text":"'"$geopointlon"'"}'
# REFRESH Cesium+ Avatar image
curl -s ${CESIUM}/user/profile/${g1pub} | jq -r '._source.avatar._content' | base64 -d > "/tmp/_g1.avatar.png"
curl -s ${CESIUM}/user/profile/${G1PUB} | jq -r '._source.avatar._content' | base64 -d > "/tmp/_g1.avatar.png"
## PUBLISH ABOUT MESSAGE
##############################################
# IF AVATAR not png take IMAGE of G1 wallet QRCode
qrencode -s 5 -o ~/.zen/ipfs/.$ipfsnodeid/G1SSB/_g1.qrcode.png "$g1pub"
imagefile=~/.zen/ipfs/.$ipfsnodeid/G1SSB/_g1.qrcode.png
# PICTURE: IF AVATAR not png take IMAGE of G1 wallet QRCode
qrencode -s 5 -o ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.qrcode.png "$G1PUB"
imagefile=~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.qrcode.png
qrname=${imagefile##*/}
qrid="$(sbotc blobs.add < $imagefile)"
qrtype="$(file -b --mime-type $imagefile)"
@ -97,10 +108,10 @@ else
echo "AVATAR FOUND"
imagefile=/tmp/_g1.avatar.png
# PUBLISH AVATAR TO IPFS
cp /tmp/_g1.avatar.png ~/.zen/ipfs/.$ipfsnodeid/G1SSB/
cp /tmp/_g1.avatar.png ~/.zen/ipfs/.$IPFSNODEID/G1SSB/
fi
# Prepare QRCode File for SSB
# Prepare QRCode File for SSB (add to blobs)
name=${imagefile##*/}
id="$(sbotc blobs.add < $imagefile)"
type="$(file -b --mime-type $imagefile)"
@ -111,7 +122,7 @@ echo "
/\ |_ _ _|_
/--\|_)(_)|_||_ : PUBLISH to SSB feed...
$ssbpub
$WHOAMI
$title
$imagefile
$id : $type : $size bits
@ -128,7 +139,7 @@ fi
export LC_ALL=C.UTF-8 #attipix
export LANG=C.UTF-8 #attipix
DUNITERNODE=$($MY_PATH/tools/duniter_getnode.sh)
[[ $DUNITERNODE ]] && g1balance=$(silkaj -p $DUNITERNODE balance $g1pub 2>&1) || g1balance=$(silkaj balance $g1pub 2>&1)
[[ $DUNITERNODE ]] && g1balance=$(silkaj -p $DUNITERNODE balance $G1PUB 2>&1) || g1balance=$(silkaj balance $G1PUB 2>&1)
silkajQuantitativeAmountPattern='Total\sQuantitative\s+=\s+(.*)\s+Ğ1'
if [[ $g1balance =~ $silkajQuantitativeAmountPattern ]]
then
@ -138,9 +149,9 @@ else
fi
# OLD ssb-server publish
# sbot publish --type about --about $ssbpub --description "[Astroport Node](https://astroport.com) [$ipfsnodeid](http://localhost:8080/ipns/$ipfsnodeid) - Wallet $g1pub - $diskperf" --name "$title" --image "$id"
# sbot publish --type about --about $WHOAMI --description "[Astroport Node](https://astroport.com) [$IPFSNODEID](http://localhost:8080/ipns/$IPFSNODEID) - Wallet $G1PUB - $diskperf" --name "$title" --image "$id"
# NEW sbotc publish to oasis
sbotc publish "{\"type\":\"about\",\"about\":\"$ssbpub\",\"description\":\"![QRCode]($qrid)\\n[Astroport #Swarm0 DEV Station](https://astroport.com)\\n - [Gchange](http://$nodename/gchange/#/app/wot/$g1pub) \\n - [Cesium - $myJune -](https://$nodename/cesium/#/app/wot/$g1pub/) \\n IPFS NODE ID : [$ipfsnodeid](http://localhost:8080/ipns/$ipfsnodeid) \\n DISK: $sizeAvail = $diskperf \\n - [LOVE Land entrance](http://$nodename/) \\n\",\"name\":\"$title\",\"image\":\"$id\"}"
sbotc publish "{\"type\":\"about\",\"about\":\"$WHOAMI\",\"description\":\"![QRCode]($qrid)\\n[Astroport #Swarm0 DEV Station](https://astroport.com)\\n - [Gchange](http://$nodename/gchange/#/app/wot/$G1PUB) \\n - [Cesium - $myJune -](https://$nodename/cesium/#/app/wot/$G1PUB/) \\n IPFS NODE ID : [$IPFSNODEID](http://localhost:8080/ipns/$IPFSNODEID) \\n DISK: $sizeAvail = $diskperf \\n - [LOVE Land entrance](http://$nodename/) \\n\",\"name\":\"$title\",\"image\":\"$id\"}"
# SSB PUBLISH G1 wallet silkaj balance
@ -161,7 +172,7 @@ echo "
$g1balance
~/.zen/ipfs/.$ipfsnodeid/G1SSB/_g1.qrcode.png
~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.qrcode.png
-- sbotc publish --
"
@ -171,8 +182,8 @@ if [[ ! $(file "/tmp/_g1.avatar.png" | grep 'PNG') ]]; then
# sbotc publish '{"type":"post","text":"![QRCode]('"$qrid"')\n Scan QRCode with [Cesium](https://cesium.app).\n Thank you\n ONE :heart:","mentions":[{"link":"'"$id"'","name":"'"$name"'","size":'"$size"',"type":"'"$type"'"}]}'
else
# Publish only if new avatar
if [[ $(diff /tmp/_g1.avatar.png ~/.zen/ipfs/.$ipfsnodeid/G1SSB/_g1.avatar.png) ]]; then
sbotc publish '{"type":"post","text":"![Cesium Avatar]('"$id"')\n from my Wallet [Cesium](https://demo.cesium.app/#/app/wot/'"$g1pub"') '"$g1pub"'","mentions":[{"link":"'"$id"'","name":"'"$name"'","size":'"$size"',"type":"'"$type"'"}]}'
if [[ $(diff /tmp/_g1.avatar.png ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.avatar.png) ]]; then
sbotc publish '{"type":"post","text":"![Cesium Avatar]('"$id"')\n from my Wallet [Cesium](https://demo.cesium.app/#/app/wot/'"$G1PUB"') '"$G1PUB"'","mentions":[{"link":"'"$id"'","name":"'"$name"'","size":'"$size"',"type":"'"$type"'"}]}'
fi
fi
@ -184,13 +195,12 @@ ___ _ _ __
_|_| | __) (_|(_|(_|
~/.zen/ipfs
ipfs ls /ipns/$ipfsnodeid
ipfs ls /ipns/$IPFSNODEID
"
# COPY NODE G1SSB ID to IPFS
curl -s ${CESIUM}/user/profile/${g1pub} | jq -r '._source.title' > ~/.zen/ipfs/.$ipfsnodeid/G1SSB/_g1.cesium_name
echo "$ssbpub" > ~/.zen/ipfs/.$ipfsnodeid/G1SSB/_ssb.whoami
echo "$g1pub" > ~/.zen/ipfs/.$ipfsnodeid/G1SSB/_g1.pubkey
echo "$WHOAMI" > ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_ssb.whoami
echo "$G1PUB" > ~/.zen/ipfs/.$IPFSNODEID/G1SSB/_g1.pubkey
# IPFS Node PUBLISH Adresses so Pub can become bootstrap for ${g1author}
ipfs id | jq -r .Addresses[] > ~/.zen/ipfs/.${ipfsnodeid}/Addresses
@ -204,7 +214,7 @@ IWALLETS=$(ipfs add -rHq ~/.zen/ipfs | tail -n 1)
NODEIPNS=$(ipfs name publish --allow-offline --quieter /ipfs/$IWALLETS)
echo "
ipfs ls /ipns/$ipfsnodeid/.$ipfsnodeid/
ipfs ls /ipns/$IPFSNODEID/.$IPFSNODEID/
_ _ _ _ _
(_)_ ____ _(_) |_ __ _| |_(_) ___ _ __
| | _ \ \ / / | __/ _| | __| |/ _ \| _ \