epgrecUNAに容量不足時自動削除機能を追加

 epgrecUNAはEPGStation等と違い、録画先の容量が不足した場合に古い番組から自動的に削除する機能が無いので、少しでもメンテナンスを忘れて放置するとシステムが動かなくなったりして面倒なので、何とかそういう機能を付けられないかと最近また四苦八苦していた。
 削除は録画済一覧から行えるし、録画済一覧には現在の空き容量も表示されているので、ここをヒントにどういう処理を行えばいいかをPHPも知らないのに調べてみた。
 録画済一覧はrecordedTable.phpだが、画面構成などのHTMLに相当する部分はtemplates/recordedTable.htmlに書かれている。これはSmartyってエンジンで1つに合わさって動作する仕組みになっているらしい。あと、recordedTable.phpから使われている主要な処理のいくつかがreclib.phpに記述されていた。
 結果、recordedTable.phpにある一括削除処理にreclib.phpの空き容量確認処理を組み入れて10GB未満だったら削除を続けるロジックを作り、これを録画直前に動作するscoutEpg.phpの最初の処理として組み込んでみたところ、上手く動作しているっぽい。やっと長年の課題が解決した。
 この機能を追加するには、config.phpのdefine( 'STREAMURL_INC_PW', FALSE );の下あたりにdefine( 'STORAGE_LIMIT', 21474836480 );のように最低確保容量を指定(この例では20GB)し、scoutEpg.phpの先頭部分にある$settings = Settings::factory();の下あたりに以下の内容を追加するだけ。

$rev_obj = new DBRecord( RESERVE_TBL );

$act_trans = array_key_exists( 'tsuffix', end($RECORD_MODE) );
if( $act_trans )
        $trans_obj = new DBRecord( TRANSCODE_TBL );

$del_list    = $rev_obj->fetch_array( null, null, 'complete=1 ORDER BY starttime' );

foreach( $del_list as $rec ){
        // 空き容量不足時ファイル削除
        if( disk_free_space( INSTALL_PATH.$settings->spool ) < STORAGE_LIMIT ) {
                // トラコンファイル削除
                if( $act_trans ){
                        $del_trans = $trans_obj->fetch_array( null, null, 'rec_id='.$rec['id'].' ORDER BY status' );
                        foreach( $del_trans as $del_file ){
                                switch( $del_file['status'] ){
                                        case 1:         // 処理中(0は処理済)
                                                $ps_output = shell_exec( PS_CMD );
                                                $rarr      = explode( "\n", $ps_output );
                                                killtree( $rarr, (int)$del_file['pid'] );
                                                sleep(1);
                                                break;
                                        case 2:         // 正常終了
                                        case 3:         // 異常終了
                                                if( file_exists( $del_file['path'] ) )
                                                        @unlink( $del_file['path'] );
                                                break;
                                }
                                $trans_obj->force_delete( $del_file['id'] );
                        }
                }
                // ファイルを削除
                $reced = INSTALL_PATH.$settings->spool.'/'.$rec['path'];
                if( file_exists( $reced ) )
                        @unlink( $reced );
                // サムネイル削除
                $thumbs = INSTALL_PATH.$settings->thumbs.'/'.end(explode( '/', $rec['path'] )).'.jpg';
                if( file_exists( $thumbs ) )
                        @unlink( $thumbs );

                // 予約取り消し実行
                try {
                        $ret_code = Reservation::cancel( $rec['id'], 0 );
                }catch( Exception $e ){
                        // 無視
                }
        }
}

 定時後、第二神明で帰宅。母親が壁時計の電池交換を頼んできた。何とか交換する電池は足りたものの、予備が全然無い状態なので買ってくれとのこと。せっかくなので、買おうと思っていたパーツなども一緒に注文。

AINEX シリアルATA用電源延長ケーブル [ 30cm ] SA-047SA

AINEX シリアルATA用電源延長ケーブル [ 30cm ] SA-047SA

 晩御飯は肉じゃがとおあげとじゃがいもの味噌汁。
 母親の知人KMからPCで上手くできないことがあるってことで母親と共に伺いに行く。まずは無線LAN接続の複合機PIXUS TS5030を使えるようにドライバのセットアップから。上手くできなかった理由はネットワーク上に見つかったプリンタにチェックマークを入れなければならないのが特に説明されてなくて、どうすればいいか分からず次に進めなかったことだった。無事完了。
 次はFacebookのページを何故かローカル保存したものを開いて投稿ができないと言うので、ブックマークした上で、それを開く方法を説明。
 今度はスキャンしたものを投稿しようとしたが、キャノンのクイックランチャーにあるものはPDFでしかスキャンできないっぽい。他にソフトはあるらしいが、面倒なのでWindows標準のFAXとスキャンの使い方を教える。これでJPEGファイルで取り込めたので投稿も出来た。
 最後に年賀状印刷ソフトを入れようとしたが途中でくじけたっぽい。郵便局のはがきデザインキットのインストール版を入れようとしたら、Flash Playerが既にChromeではブロックされていてページが使えない罠。どんだけ古いねん、郵便局は。
 幸いにも別のインストール方法ってページがあったので、そちらに従ってAdobe AIRをまずはダウンロード。ここでダウンロードした後、Web上ではAdobeが別の画面へと誘導しようとして怪しいと思い、閉じてしまったらしい。ダウンロードされたら無視して、ダウンロードされたものを実行してインストールすればいいと教えて問題なく終了。
 続いて、はがきデザインキットを同様にダウンロードして開いて実行してインストール。無事出来上がり。軽く使い方を説明して本日は終了。途中、お茶も出してもらって、帰る前に余ったお茶菓子も頂いた。そして、夜10時頃帰宅。
 帰宅後に母親に今日買うって言うてた電池とかの注文をさせる。こちらも無事終了。

吉田君来訪

 朝11時半、吉田君からの電話で起床。到着したとのことで、裏手のお客様用駐車場に停めるように案内。顔洗って着替える。
 吉田君来訪後、ダラダラと話しつつ、早速Pixel 3 XL白の譲渡。お代を頂く。ケースは黒い似非SラインTPUケースと透明ハードシェルカバーを見せた結果、前者を譲渡することに。あと、AndroidはどうでアップデートするからとAndroid 10にアップデートしてから使うことになった。
 少し前に俵屋君からの録画フォローのハナシで色々と対応したことで、わざわざお礼にとアトム堂本舗のポストカードを送ってきてくれたらしく、ありがたく受け取った。感謝。

 Pixel 3 XLのAndroid 10アップデート後、吉田君のNexus 5XからIIJmioのnanoSIMを抜いてPixel 3 XLに取り付け、初期化。その後、初回設定でNexus 5Xからデータ移行と言うことでUSB-C-USB-Cケーブルを使って行った。そういえば、吉田君は指紋認証を使うのが初めてだったそうでかなりその使い勝手に驚いていた。やはり、指紋タッチで電源ON&ロック画面なしで即ホーム画面ってのが便利とのこと。
 何故かデータ移行で入らなかったアプリをインストールすると入らなかった理由が判った。Android 10に対応していない模様。同様な理由でd払いも入らなかった。あと、GoogleフォトとかGoogle KeepメモとかGoogle Chromeのブックマークとか使ってなかったアプリも使えるのが判ったってとこで設定したりとか。
 最後にみおふぉんダイヤルのアプリが入っていたがホーム画面に出てなかったので聞いてみると、やっぱり通常の電話アプリと置換えて使うこととか、でも電話アプリの代わりに勝手に使ってくれないのでコールバックでかけ直す際に半額電話にならないこととかが判ってなかっったらしく、既にPlayストアでは公開されてないMultiPrefixerのapkを渡してインストールして設定しておいた。
 あと、最近ソードアート・オンラインをIIまでやっと見たとかでハマったらしく、録画フォローでアリシゼーションを渡したり。exFATのUSB HDDに入れたのでPixel 3 XLに繋いでみたが、exFATが認識できないっぽい。残念。
 起きてからご飯も食べないまま気付けば昼2時半。とりあえず、Pixel 3 XLの件は一通り終わったので吉田君が神戸市北区へ行きたいってことでMRワゴンで出かけることに。
 MRワゴンスマートフォンホルダーが未だに無いことに気付いたのでいつも使ってるZeusteのんを譲渡。エアコンフィンの間隔が小さく、差し込める奥行きも小さいので運転席の窓側に取り付けたが、窓を普段開けて走ることが多い吉田君的には落ちそうで怖いとのこと。すぐに使わずにセンターコンソールにPixel 3 XLを置いてしまっていたので、運転席左側のエアコンフィンに無理矢理にでも付けた方が良かったかも。
 とりあえず第二神明から阪神高速神戸線箕谷へ。そこから目的地の柏尾台へ。風景や景色を一通り堪能した吉田君は満足した模様。次は北区の端っこの道場あたりか、垂水あたりに行きたいってハナシになり、垂水へ向かう。
 塩屋まで下ってからジェームス山を通って小束山などを見て回って走った後、そろそろ昼夜兼用で何か食おうってことで(元々吉田君はセンタープラザのトマトラーメンを出す店に行こうと思っていたようだけど腹が減りすぎていたので)目の前に現れたブロンコビリーへ。
 再び、元がんこハンバーグことブロンコハンバーグの名前が変わって粗挽きビーフハンバーグになっていた。そして何故か10%増量セールをやっていたので280gをブロンコセットで注文。あとドリンクバー。

 ここでもダラダラと話して夜7時くらいまで滞在。その間に歌ちゃんからメールで来月のけもフレライブ昼夜とも当選したけど一緒に行かないかとのお誘いがあったので喜んで受ける。
 そこで吉田君がそのタイミングなら東京に即売会イベントで行こうと思っていたので一緒に行かないか聞かれる。日程が1日違うので泊まる費用次第と話すと吉田君が今回横浜の叔父さん宅に元々挨拶がてら泊まりに行く予定だったらしく、今は一軒家で一人暮らしだから一緒に泊まれると言うので、歌ちゃんさえ良ければその方向で行くことに。
 学園南から第二神明で帰宅する際に近場のローソンでドリンク補充。コカコーラアップルなる新製品があったので買ってみた。その後、吉田君が今回からモバイルSuicaを使い始めたものの、JREポイントの設定がまだだったので一旦帰宅して、ウチで設定を一通り行った。その際にJREポイントのアプリがあることにも気付いたので入れてみた。ちゃんと連携してるSuica番号も確認出来て良いカンジ。

 そして、吉田君は夜9時すぎ帰宅。その後、歌ちゃんに電話。ライブの件と、吉田君との同行の件を話した結果、その方向で一緒に行くことになった。あとはスマホデビュープランとかPixel 3a XLのハナシとかしたり。
 そこでキャッスレス決済のハナシの流れから、けもフレEdyのハナシとか、阪急PiTaPaが使いづらいってハナシとかが出た後、大昔のSuicaを持ってるが10年経つと破棄される的なハナシが出たので、そんなに経ってないんじゃない?と聞くと、何とSuicaイオカードだと言う。しかも、電子マネー非対応なので、恐らく2002年頃に購入したものではないかと。ちなみにレアなのかオクで意外と値段付くっぽい。
 何はともあれ、みるCaをインストールして確認してもらうと何と認識。10年経つと破棄ではなく内蔵充電容量の問題で使えなくなる恐れがあるってハナシだったようで、歌ちゃんのは最終使用がそこそこ後だったので使えた模様。しかも800円近くも残ってたとか。

 その後も延々とダラダラ話しつつ、深夜1時半頃に電話を切ってから風呂入って就寝。

日々

 朝9時半すぎに起床。両親は既に出かけていた。朝食に大久保IC前のマクドへ。アプリのクーポンでソーセージエッグマフィンセットをコーラで注文して食べる。消費税は8%から10%に変わったけど、アプリのクーポンだと税込350円のまんまだった。食べ終わってから帰宅。

 先週、千石電商に注文したアルミパンチング板とFDD4ピン電源変換ケーブル等が届いてた。これでPT2外付けユニットの3セット目が組み立てられる。

 11時半すぎに昼食を食べにイオン明石のフードコートへ。スガキヤでラーメン大を注文。Edy使えないのか。ICOCAが使えた。食べ終わってから帰宅。

 歯磨き終わってから散髪にお出かけ。迷惑電話の可能性がある0120で始まる電話がかかってきたので取ったらドコモからのドコモ光セット割引の営業だった。安くなるとか言うので、光もっともっと割でお前んトコと契約したら高くなると言うといつものように終了。
 散髪中に母親から着信。一旦切ってマナーモードにして散髪再開。終わってから母親にかけ直すも出ない。帰ってから、ふと母親の位置情報を見ると電車に乗ってるっぽいので帰ってくるのかも。しばらくして母親から着信。やっぱもう帰ってくるらしく、迎えを頼もうと思っていた模様。歯医者があるので無理ってことで。
 今度は歯医者へ。虫歯治療2回目。今日で治療は終わり。型取りして次回かぶせを付けるので、かぶせにかかる義歯は付けられないってことで次回まで手元に置いておかなければならなくなった。その後、帰宅。両親も帰宅していた。
 歯医者でも治療中眠かったこともあってか、いつの間にか自室のソファで寝ていた。晩御飯で起こされる。晩御飯は昼に食べさせられる予定だったレトルトのカレーライス。前回食ったレトルトのんより肉少なくってイマイチだった。
 夜9時回ったところでお茶入れてもらって一服。御座候を買ってきたとのことで久々にお茶菓子に食べた。
 吉田君からハングアウトで連絡。明日の昼前に来るとのこと。あと、たまたま見たことが無いので見たくなったとかで金田伊功のバース BIRTHのLD持ってないか聞かれた。持ってたか持ってなかったか覚えてない&LDラックに今アクセスできないので確認できない旨を伝える。
 何でLDなん?って聞くと、DVDはプレミア価格付いてて最低でも1.5万ほどする模様。Blu-rayは出てないっぽいし、配信やレンタルで置いてるトコも無さげ。で、LDはヤフオク見てたら手が出せないこともない価格だったんだとか。海外版DVDなら比較的安い&入手しやすいっぽい。

一人未読

  1. 20:35~21:02 SSSS.GRIDMAN #8「対・立」(毎日放送 2018/11/24(土) 26:08)
  2. 22:24~22:51 RELEASE THE SPYCE #8「N機関情報」(毎日放送 2018/11/24(土) 26:38)
  3. 22:51~23:16 ソードアート・オンライン アリシゼーション #8「剣士の矜持」(毎日放送 2018/11/24(土) 27:08)
  4. 23:16~23:42 とある魔術の禁書目録III #8「聖人崩し」(毎日放送 2018/11/24(土) 27:38)

RELEASE THE SPYCE、あれ?命が使ってる端末ってどう見てもSL-A300だよね。

日々

 昨日バッテリー交換のために発送したMoto Z Playは今朝のうちにモトローラ関西サービスセンターに到着していた。
 ふと、モトローラ関西サービスセンターの住所をGoogleマップで見ると、そこにあるのはナショナルサービス合掌で、ストリートビューで見ると関西ハイテックの看板も出ている。どうやらグループ会社らしい。で、ここがモトローラ・モビリティー・ジャパンと取引があるので、そういった提携をしてるっぽい。
 月も変わったので色々と買い物をしたいが、出来れば早く欲しいが、そこまで急ぎじゃないブツばっかりで、買うのを忘れそうってことで、買い物メモを作って置いておくことに。
 やっとこさ秋新番組のタイマーを(たぶん)全部入れ終わった(と思う)。とは言え、まだEDCBの方だけなのでEPGStationの方もメンテナンスせねば(汗)
 定時後、第二神明で帰宅。昨日の母親の旅行会社からの返金の件は、旅行会社に問い合わせた結果、父親の楽天カードで支払っていたことが判明。で、そちらに返金もされてると。確認してみると確かに引き落としされてて、翌月に返金もされていた。母親はアプリで確認してたハズだが引き落としも見つけられなかった模様(汗)あと、母親のスマートフォンのCokeOnの移行を忘れてたのでログインしたりとか。
 モトローラから見積もり来てた。何故かフロントケース不良が確認されたとのことでフロントケース(LCD+フロントケース)交換も一緒に見積り金額に上がっていた。とりあえず、フロントケース交換無しでバッテリー交換できるならお願いしたい旨を伝え、無理なら見積もりのままに修理をお願いしたい旨をメールで返信。
 晩御飯は豚肉の生姜焼きと豆腐の赤出し。
 歯医者から電話。明日キャンセルが出たので治療に来ないかとのこと。もちろん、了承。
 夜9時回ったところでお茶入れてもらって一服。