Skip to content

Commit

Permalink
Merge pull request #1005 from rern/UPDATE
Browse files Browse the repository at this point in the history
Update
  • Loading branch information
rern authored Sep 4, 2022
2 parents a3f0fed + 8ba0fab commit 6a8e576
Show file tree
Hide file tree
Showing 17 changed files with 123 additions and 155 deletions.
30 changes: 17 additions & 13 deletions srv/http/assets/js/context.js
Original file line number Diff line number Diff line change
Expand Up @@ -450,7 +450,7 @@ function webRadioEdit() {
, checkblank : [ 0, 1 ]
, boxwidth : 'max'
, beforeshow : function() {
$( '#addwebradiodir' ).empty();
$( '#addwebradiodir' ).remove();
if ( url.includes( 'stream.radioparadise.com' ) || url.includes( 'icecast.radiofrance.fr' ) ) {
$( '#infoContent' ).find( 'tr:eq( 2 ), tr:eq( 3 )' ).remove();
}
Expand Down Expand Up @@ -491,19 +491,23 @@ function webRadioNew( name, url, charset ) {
, values : name ? [ name, url, charset ] : [ '', '', 'UTF-8' ]
, checkblank : [ 0, 1 ]
, beforeshow : function() {
$( '#addwebradiodir' ).click( function() {
info( {
icon : 'webradio'
, title : 'Add New Folder'
, textlabel : 'Name'
, focus : 0
, checkblank : 1
, ok : function() {
var dir = $( '#lib-path .lipath' ).text();
bash( [ 'wrdirnew', dir, infoVal() ] );
}
if ( $( '#lib-path .lipath' ).text() ) {
$( '#addwebradiodir' ).remove();
} else {
$( '#addwebradiodir' ).click( function() {
info( {
icon : 'webradio'
, title : 'Add New Folder'
, textlabel : 'Name'
, focus : 0
, checkblank : 1
, ok : function() {
var dir = $( '#lib-path .lipath' ).text();
bash( [ 'wrdirnew', dir, infoVal() ] );
}
} );
} );
} );
}
}
, ok : function() {
var values = infoVal();
Expand Down
38 changes: 9 additions & 29 deletions srv/http/assets/js/networks.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ $( '.container' ).click( function( e ) {
} );
$( '.back' ).click( function() {
clearTimeout( G.timeoutScan );
$( '#divinterface' ).removeClass( 'hide' );
$( '#help, #divinterface' ).removeClass( 'hide' );
$( '#divbluetooth, #divwifi, #divwebui' ).addClass( 'hide' );
$( '#listwlscan, #listbtscan' ).empty();
refreshData();
Expand All @@ -24,7 +24,7 @@ $( '#btscan' ).click( function() {
return
}

$( '#divinterface, #divwebui, #divaccesspoint' ).addClass( 'hide' );
$( '#help, #divinterface, #divwebui, #divaccesspoint' ).addClass( 'hide' );
$( '#divbluetooth' ).removeClass( 'hide' );
scanBluetooth();
} );
Expand All @@ -39,7 +39,13 @@ $( '#wladd' ).click( function() {
G.hostapd ? infoAccesspoint() : infoWiFi();
} );
$( '#wlscan' ).click( function() {
G.hostapd ? infoAccesspoint() : wlanStatus();
if ( G.hostapd ) {
infoAccesspoint();
} else {
$( '#help, #divinterface, #divwebui, #divaccesspoint' ).addClass( 'hide' );
$( '#divwifi' ).removeClass( 'hide' );
scanWlan();
}
} );
$( '#lanadd' ).click( function() {
info( {
Expand Down Expand Up @@ -521,28 +527,9 @@ function scanBluetooth() {
function scanWlan() {
bash( '/srv/http/bash/settings/networks-scan.sh wlan', function( data ) {
if ( data ) {
var signals = '';
data.forEach( function( list, i, obj ) {
if ( !list.ssid ) { // remove blank ssid
obj.splice( i, 1 );
return
}

if ( list.signal != 0 ) signals += list.signal;
} );
data.sort( function( a, b ) {
if ( signals ) {
var ab = signals.includes( 'dBm' ) ? [ a.signal, b.signal ] : [ b.signal, a.signal ];
} else {
var ab = [ a.ssid, b.ssid ];
}
return ab[ 0 ].localeCompare( ab[ 1 ], 'en', { numeric: true } )
} );
G.listwlscan = data;
var htmlwl = '';
data.forEach( function( list, i ) {
if ( 'profile' in list ) return

if ( list.signal.slice( -3 ) === 'dBm' ) {
var dbm = parseInt( list.signal.slice( 0, -4 ) );
var signal = dbm > -60 ? '' : ( dbm < -67 ? 1 : 2 );
Expand All @@ -551,11 +538,9 @@ function scanWlan() {
var signal = '';
}
htmlwl += '<li class="wlscan"><i class="fa fa-wifi'+ signal +'"></i>';
if ( list.connected ) htmlwl += '<grn>•</grn>&ensp;';
htmlwl += dbm && dbm < -67 ? '<gr>'+ list.ssid +'</gr>' : list.ssid;
if ( list.encrypt === 'on') htmlwl += ' <i class="fa fa-lock"></i>';
if ( list.signal != 0 ) htmlwl += '<gr>'+ list.signal +'</gr>';
if ( list.profile && !list.connected ) htmlwl += '&ensp;<i class="fa fa-save-circle wh"></i>';
htmlwl += '</li>';
} );
} else {
Expand All @@ -565,8 +550,3 @@ function scanWlan() {
G.timeoutScan = setTimeout( scanWlan, 12000 );
}, 'json' );
}
function wlanStatus() {
$( '#divinterface, #divwebui, #divaccesspoint' ).addClass( 'hide' );
$( '#divwifi' ).removeClass( 'hide' );
scanWlan();
}
8 changes: 3 additions & 5 deletions srv/http/bash/addons.sh
Original file line number Diff line number Diff line change
Expand Up @@ -74,12 +74,10 @@ title() {
getinstallzip() {
echo $bar Get files ...
installfile=$branch.tar.gz
curl -skLO $( jq -r .$alias.installurl $addonsjson \
fileurl=$( jq -r .$alias.installurl $addonsjson \
| sed "s|raw/main/install.sh|archive/$installfile|" )
if [[ ! -e $installfile ]]; then
echo -e "$warn Get files failed."
exit
fi
curl -sfLO $fileurl
[[ $? != 0 ]] && echo -e "$warn Get files failed." && exit

echo
echo $bar Install new files ...
Expand Down
3 changes: 2 additions & 1 deletion srv/http/bash/cmd.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ addonsListGet() {
: >/dev/tcp/8.8.8.8/53 || ( echo -2 && exit ) # online check

[[ ! $1 ]] && branch=main || branch=$1
curl -skL https://github.com/rern/rAudio-addons/raw/$branch/addons-list.json -o $diraddons/addons-list.json || ( echo -1 && exit )
curl -sfL https://github.com/rern/rAudio-addons/raw/$branch/addons-list.json -o $diraddons/addons-list.json
[[ $? != 0 ]] && echo -1 && exit
}
equalizerGet() { # sudo - mixer equal is user dependent
val=$( sudo -u mpd amixer -MD equal contents | awk -F ',' '/: value/ {print $NF}' | xargs )
Expand Down
21 changes: 8 additions & 13 deletions srv/http/bash/settings/networks-data.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,16 @@

# bluetooth
if systemctl -q is-active bluetooth; then
controller=$( bluetoothctl show | head -1 | cut -d' ' -f2 )
readarray -t macs <<< $( ls -1 /var/lib/bluetooth/$controller | egrep -v 'cache|settings' )
if [[ $macs ]]; then
for mac in "${macs[@]}"; do
readarray -t info <<< $( bluetoothctl info $mac \
| egrep 'Name: |Connected: |UUID: Audio' \
| sed -E 's/^\s*Name: //
s/^\s*Connected: yes/true/
s/^\s*Connected: no/false/
s/\s*UUID: Audio (.*) .*/\1/' )
readarray -t devices <<< $( bluetoothctl devices Paired | sort -k3 -fh )
if [[ $devices ]]; then
for dev in "${devices[@]}"; do
mac=$( echo $dev | cut -d' ' -f2 )
info=$( bluetoothctl info $mac )
listbt+=',{
"mac" : "'$mac'"
, "name" : "'${info[0]}'"
, "connected" : '${info[1]}'
, "type" : "'${info[2]}'"
, "name" : "'$( echo $dev | cut -d' ' -f3- )'"
, "connected" : '$( echo "$info" | grep -q 'Connected: yes' && echo true || echo false )'
, "type" : "'$( echo "$info" | awk '/UUID: Audio/ {print $3}' )'"
}'
done
listbt="[ ${listbt:1} ]"
Expand Down
73 changes: 32 additions & 41 deletions srv/http/bash/settings/networks-scan.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,66 +6,57 @@ if [[ $1 == wlan ]]; then
wlandev=$( cat $dirshm/wlan )
ip link set $wlandev up

# pre-scan hidden ssid to force responding to scan
readarray -t hiddenprofiles <<< $( grep -rl --exclude-dir=examples ^Hidden=yes /etc/netctl )
if [[ $hiddenprofiles ]]; then
for file in "${hiddenprofiles[@]}"; do
iwlist $wlandev scan essid "$( basename "$file" )" &> /dev/null
done
fi

# ESSID:"NAME"
# Encryption key:on
# Quality=37/70 Signal level=-73 dBm --- Quality=0/100 Signal level=25/100
# IE: IEEE 802.11i/WPA2 Version 1
# IE: WPA Version 1
scan=$( iwlist $wlandev scan \
scan=$( iwlist $wlandev scan )
[[ ! $scan ]] && exit

scan=$( echo "$scan" \
| sed -E 's/^\s*|\s*$//g' \
| egrep '^Cell|^ESSID|^Encryption|^IE.*WPA|^Quality' \
| sed -E 's/^Cell.*/},{/
s/^ESSID:/,"ssid":/
s/\\x00//g
| sed -E 's/^Cell.*/,{/
s/^Quality.*level.(.*)/,"signal":"\1"/
s/^Encryption key:(.*)/,"encrypt":"\1"/
s/^ESSID:/,"ssid":/
s/^IE.*WPA.*/,"wpa":true/
s/^Quality.*level.(.*)/,"signal":"\1"/' \
| sed '/},{/ {n;s/^,/ /}' )
# save profile
readarray -t ssids <<< $( grep '"ssid":' <<< "$scan" \
| sed -E 's/^.*:"(.*)"/\1/' \
| awk NF )
for ssid in "${ssids[@]}"; do
[[ -e "/etc/netctl/$ssid" ]] && scan=$( sed '/"ssid":"'$ssid'"/ a\,"profile":true' <<< "$scan" )
s/\\x00//g' \
| tr -d '\n' \
| sed 's/{,/{/g; s/,{/\n&/g' \
| sed -E -e '/^$|"ssid":""/ d' \
-e 's/wpa.*wpa/wpa/; s/$/}/' \
| sort )

# omit saved profile
readarray -t profiles <<< $( ls -1p /etc/netctl | grep -v /$ )
for profile in "${profiles[@]}"; do
scan=$( grep -v "ssid.*$profile" <<< "$scan" )
done
# connected ssid
connectedssid=$( iwgetid $wlandev -r )
scan=$( sed '/"ssid":"'$connectedssid'"/ a\,"connected":true' <<< "$scan" )

# },{... > [ {...} ]
echo "[ ${scan:2} } ]" | jq

echo "[ ${scan:1} ]" # ,{...} > [ {...} ]
exit
fi

bluetoothctl --timeout=10 scan on &> /dev/null
devices=$( bluetoothctl devices \
| grep -v ' ..-..-..-..-..-..$' \
| sed -E 's/Device (..:..:..:..:..:..) (.*)/\2^\1/' \
| sort -f )
devices=$( bluetoothctl devices | grep -v ' ..-..-..-..-..-..$' )
[[ ! $devices ]] && exit

controller=$( bluetoothctl show | head -1 | cut -d' ' -f2 )
readarray -t macs <<< $( ls -1 /var/lib/bluetooth/$controller | egrep -v 'cache|settings' )
if [[ $macs ]]; then
for mac in "${macs[@]}"; do
devices=$( grep -v $mac <<< "$devices" )
done
# omit paired devices
paired=$( bluetoothctl devices Paired )
if [[ $paired ]]; then
devices=$( echo "$devices
$paired" \
| sort -k3 -fh \
| uniq -u )
fi
readarray -t devices <<< "$devices"
for dev in "${devices[@]}"; do
name=${dev/^*}
mac=${dev/*^}
data+=',{
"name" : "'$name'"
, "mac" : "'$mac'"
"mac" : "'$( echo $dev | cut -d' ' -f2 )'"
, "name" : "'$( echo $dev | cut -d' ' -f3- )'"
}'
done
data2json "$data"

echo "[ ${data:1} ]"
2 changes: 1 addition & 1 deletion srv/http/bash/settings/player-conf.sh
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ fi
linecdio=$( sed -n '/cdio_paranoia/ =' /etc/mpd.conf )
[[ $linecdio ]] && sed -i "$(( linecdio - 1 )),/^$/ d" /etc/mpd.conf

lastline=$(( $( sed -n '/^resampler/=' /etc/mpd.conf ) + 3 ))
lastline=$(( $( sed -n '/^audio_output/ =' /etc/mpd.conf | head -1 ) - 1 ))
global=$( sed -n "1,$lastline p" /etc/mpd.conf | sed '/# custom0/,/# custom1/ d' )
if [[ -e $dirsystem/custom && -e $dirsystem/custom-global ]]; then
custom=$( echo "
Expand Down
5 changes: 3 additions & 2 deletions srv/http/bash/settings/system.sh
Original file line number Diff line number Diff line change
Expand Up @@ -451,9 +451,10 @@ mirrorlist )
| head -1 \
| sed 's|\.*mirror.*||; s|.*//||' )
[[ ! $current ]] && current=0
if ! grep -q '^###' $file; then
if : >/dev/tcp/8.8.8.8/53; then
pushstreamNotifyBlink 'Mirror List' 'Get ...' globe
curl -skL https://github.com/archlinuxarm/PKGBUILDs/raw/master/core/pacman-mirrorlist/mirrorlist -o $file
curl -sfLO https://github.com/archlinuxarm/PKGBUILDs/raw/master/core/pacman-mirrorlist/mirrorlist
[[ $? == 0 ]] && mv -f mirrorlist $file || rm mirrorlist
fi
readarray -t lines <<< $( awk NF $file \
| sed -n '/### A/,$ p' \
Expand Down
6 changes: 4 additions & 2 deletions srv/http/bash/status-coverart.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ path="/mnt/MPD/$file"

# found cover file
localfile=$dirshm/local/$covername
[[ -e $localfile ]] && cat $localfile && exit
[[ -f $localfile ]] && cat $localfile && exit
# found embedded
embeddedname=$( echo ${filename%.*} | tr -d ' "`?/#&'"'" )
embeddedfile=$dirshm/embedded/$embeddedname.jpg
Expand All @@ -30,7 +30,9 @@ coverfile=$( ls -1X "$path"/cover.{gif,jpg,png} 2> /dev/null | head -1 )
| egrep -i '/album\....$|cover\....$|/folder\....$|/front\....$' \
| head -1 )
if [[ $coverfile ]]; then
php -r "echo rawurlencode( '${coverfile//\'/\\\'}' );" | tee $localfile # rawurlencode - local path only
coverfile=$( php -r "echo rawurlencode( '${coverfile//\'/\\\'}' );" )
echo $coverfile
[[ -f $localfile ]] && echo $coverfile > $localfile # rawurlencode - local path only
$dirbash/cmd.sh coverfileslimit
exit
fi
Expand Down
12 changes: 7 additions & 5 deletions srv/http/bash/status-coverartonline.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,14 @@ else
method='method=album.getInfo'
fi
apikey=$( grep apikeylastfm /srv/http/assets/js/main.js | cut -d"'" -f2 )
data=$( curl -sGk -m 5 \
data=$( curl -sfG -m 5 \
--data-urlencode "artist=$artist" \
--data-urlencode "$param" \
--data "$method" \
--data "api_key=$apikey" \
--data "format=json" \
http://ws.audioscrobbler.com/2.0 )
[[ $data =~ error ]] && exit
[[ $? != 0 || $data =~ error ]] && exit

if [[ $type == webradio ]]; then
album=$( jq -r .track.album <<< "$data" )
Expand All @@ -46,7 +46,10 @@ if [[ $image && $image != null ]]; then
else
### 2 - coverartarchive.org #####################################
mbid=$( jq -r .mbid <<< "$album" )
[[ $mbid && $mbid != null ]] && url=$( curl -skL -m 10 https://coverartarchive.org/release/$mbid | jq -r .images[0].image )
if [[ $mbid && $mbid != null ]]; then
imgdata=$( curl -sfL -m 10 https://coverartarchive.org/release/$mbid )
[[ $? == 0 ]] && url=$( echo "$imgdata" | jq -r .images[0].image )
fi
fi
fi
[[ ! $url || $url == null ]] && exit
Expand All @@ -58,8 +61,7 @@ else
[[ $type ]] && prefix=$type || prefix=online
coverfile=$dirshm/$prefix/$name.$ext
fi
curl -sL $url -o $coverfile
[[ ! -e $coverfile ]] && exit
curl -sfL $url -o $coverfile || exit

data='
"url" : "'${coverfile:9}'"
Expand Down
Loading

0 comments on commit 6a8e576

Please sign in to comment.