ホーム » 「EPG」タグがついた投稿

タグアーカイブ: EPG

システム

最近の投稿

アーカイブ

カテゴリー

EPG番組表ふたたび

EPGデータの取得処理

以前運用(EPG番組表とリモコンの連動)していた自宅でよく見るチャンネルを優先する EPG 番組表だけど、番組表が Cable Gate に変わって、番組表情報が取得できなくなっていた。今回、agy (Gemini) にて「このプログラムを参考にEPG情報をとれるように直して」と命令したら、スクレイピングしていたプログラムを、内部で json 形式で読みだす API を見つけてくれたようで、無事元通り。

番組名をクリックすれば、チャンネル変更もできる機能も元通り。

追記 loading 表示

EPG の取得には時間がかかるため、loading… の表示をするように処理中に ob_flush() など埋め込んでいた。しかしながら、今回の修正で機能が復活したけど loading… の表示が正しく動いていなかった。HTTP2の機能を導入する過程で、出力データはバッファリングして一括送付するようになり、PHP の出力バッファリングで、ob_flush() などの効果がなくなっていた。

そこで、以下のような処理を PHP の先頭に埋め込んで、出力バッファリングを抑止して、loading 表示機能も復活。

// EPG取得に時間がかかるのでloading表示したい。
// このため出力バッファリングをさせない
if ( true ) {
    // 1. PHPの出力バッファリングをクリア
    while( ob_get_level() > 0 )
        ob_end_flush() ;
    // 2. mod_deflate による圧縮を回避
    if ( function_exists( 'apache_setenv' ) )
        apache_setenv( 'no-gzip' , '1' ) ;
    // 3. PHP の zlib 圧縮をオフ
    ini_set( 'zlib.output_compression' , 'Off' ) ;
    // Nginx でのみ有効
    header( "X-Accel-Buffering: no" ) ;
    // 4. キャッシュや圧縮をさせないヘッダ
    header( 'Content-Encoding: identify' ) ;
    header( 'Cache-Control: no-cache, no-store, must-revalidate' ) ;
}

EPG番組表とリモコンの連動

ちょいと、お遊び。cablegate の番組表情報から現時点の電子番組表(EPG)を取得し、その番組名をクリックすると、該当するチャンネルに替えるリモコン信号を送るようにプログラムを作ってみた。

本当は、好きな番組を適当に選んで、チャンネル替えたいけど。

画面構成の修正

タップしたチャンネル情報を保存して好きな番組を学習させられないかと、妄想を始めたけど サーバ側は PHP の方が書きやすいので、EPG番組表を PHP でObjectiveに書き直し。でも適当に書いているから、public だらけのクラスが汚いな。

Google 検索

My Google   Yahoo

Microsoft

ファンサイト

メタ情報