moOde audio 671 – サイマルラジオ

moOde audio 670で100局位登録、正常にExport Importできたところで調子に乗って計210局登録
moOde audio 671を新規インストール、移行・・・見事Importに失敗してしまいました。
具体的な現象としてはImporting…のままImport completeにならない
やむを得ないので手作業でデータベースに追加してみることにします。

ラジオデータ復活

cfg_radio.csv
予め670からExportしたcfg_radio.csvから登録した500番以降のデータを取り出しておきます。(cfg_radio.csv.500)

$ cat cfg_radio.csv | awk -F "," '$1 >= 500 {print}' > cfg_radio.csv.500

新規インストールした671を起動、moode-sqlite3.dbのバックアップを取ってcfg_radio.csvをExport
/var/local/www/db/moode-sqlite3.db

# cd /var/local/www/db
# cp -p moode-sqlite3.db moode-sqlite3.db.671.def
# sqlite3 -csv moode-sqlite3.db "SELECT * from cfg_radio ;" > cfg_radio.csv

670で登録作成した500番以降のデータcfg_radio.csv.500のデータをデフォルトのcfg_radio.csvに追記

# cat cfg_radio.csv.500 >> cfg_radio.csv

追記したcfg_radio.csvをImport

# sqlite3 moode-sqlite3.db
SQLite version 3.16.2 2017-01-06 16:32:41
Enter ".help" for usage hints.
sqlite> .separator ,
sqlite> delete from cfg_radio;
sqlite> .mode csv
sqlite> .import cfg_radio.csv cfg_radio
sqlite> .exit

エラーメッセージが無ければ正常に読み込んでいるはずです。
インポートした内容を確認

# sqlite3 moode-sqlite3.db
SQLite version 3.16.2 2017-01-06 16:32:41
Enter ".help" for usage hints.
sqlite> .separator ,
sqlite> select * from cfg_radio;
sqlite> .exit

plsファイル 画像ファイル

670で作成された各ファイルはUSB経由でコピーするかカードを他のマシンに挿してコピーするかします。
plsファイル /var/lib/mpd/music/RADIO
画像ファイル /var/local/www/imagesw/radio-logos
画像ファイル(200×200) /var/local/www/imagesw/radio-logos/thumbs

以上で再起動するとブラウザのラジオリストにはデフォルトのラジオ局しか見えていませんがサイマルラジオからは正常に再生、moOde playerにも画像が表示されます。(サイマルラジオはcfg_radio.csvを読み込み)
ここで新規にラジオ局を登録するとインポート、登録したラジオ局がブラウザに全て見えてきます。
当サイトでは適当なラジオ1局を削除してcfg_radio.csvをImport、該当するplsファイルを削除して起動、再度削除したラジオ局を再登録することで同様に再現することができました。
新規登録及びExportは正常ですがやはりImportは失敗します。
原因は不明ですがImportの際Radio Managerから認識、書き込みできないラジオ局があるのかもしれません。

サイマルラジオ


登録したデータが戻ってきました。
手間としてはさほど変わらないので登録したデータが活きてくれれば取り敢えずいいことにします。
しばらく使ってみて原因を追求(?)、様子を見たいと思います。

登録してあるラジオ局はデフォルトを含め350前後となりmoOde playerのラジオリストからは見通しが悪くなります。
デフォルトのラジオ局をサイマルラジオのfavoriteボタンに登録することにします。
サイマルラジオからはcfg_radio.csvは~/radioに読み込みします。
リストfavorite3は~/radio/FAVORITE/simul-default/favorite3にあるものとします。任意(以下1行)

$ cat ~/radio/cfg_radio.csv | awk -F "," '$1 <= 192 { print $3,$2}' | tr -d '"' | sed 's/^/"/;s/$/"/' > FAVORITE/simul-default/favorite3


デフォルトは192まで登録されています。
awk カンマ区切り3項目、2項目を出力
tr ダブルクォートを削除
sed 再度両端にダブルクォート付け替え
画像のリストは少しだけ編集しています。
削除されたラジオ局のデータも少し残っています(DELETED)
BBC(320Kbps)などは接続不可(多分国別制限と思います)


よく聞くラジオ局は決まってくると思います。
ラジオリストでフォーカス(選択)するとコピーできます。
favorite6に再登録、Area Editで開く。xtermは中ボタンクリックでペースト、ダブルクォートを付け加えるだけでOK
サイマルラジオからの再生は mpc add url && mpc play
再生、画像表示も問題なく実行します。
音量はサイマルラジオで設定したデフォルト値を適用


CSRAのmms://関連はあまり音が良くないこと、画像も表示しないことからcsra8に纏めました。
九州、沖縄を統合しています。


moOde playerからPlayしたラジオやアルバムはON AIRボタンでタイトルバーに最低限の表示をします。
Play Listの先頭にある情報を検索します。
アルバムはアーティストのみ表示
moOde audio関連はブルーのタイトルバーにしています。


参考(暫定です*ダウンロードで日本語正常表示)
simul.py
simul-vol.py
killall.sh
default setは適宜変更
ラジオリスト、設置方法は過去記事


ナチュレボタンでmpdをリスタート

サイマルラジオ局(障害)によっては極稀に接続状態のまま操作不可になることがあるようです。
/var/lib/mpd/stateを削除、mpdをリスタート
mpdのタイムアウトを待って実行するようでしばらく時間がかかることがあります。
stateファイルは再生開始時mpdが自動作成

# Button1001 nature
def nat1001():
    proc = messagebox.askokcancel('Confirmation', "mpd restart ?")
    if proc == True:
        subprocess.run("~/bin/killall.sh", shell=True)
        time.sleep(1)
        subprocess.run("sudo rm /var/lib/mpd/state && sudo systemctl restart mpd", shell=True)
icon1001 = PhotoImage(file=dir+'64x64/nature.png')
button1001 = ttk.Button(frame1,image=icon1001,command=nat1001)
button1001.grid(row=2,column=4)