2019/12/18
EPGrecの番組検索で除外ワードを使えるようにする。
前々から思ってました。
キーワード自動録画で録られた番組の中に、「この番組は、要らないのになぁ...、自動で除外できないかなぁ...」と、
大きな条件で自動録画を登録すると、どうしても不要な番組も録画されてしまいます。
そんな時、いつも、「自動で除外できないかなぁ...」と、思いつつ録画データを手動で削除していました。
...
が、
しかし、
遂にやりました。

自動録画の番組検索時に、キーワードで除外する機能を追加しました。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

番組の検索は mySQL データベースのコマンドで実行されています。
調べてみたら、対象を除外(否定)するコマンドもある事が分かりました。

肯定 ( LIKE    、 REGEXP    )  に対して、
否定 ( NOT LIKE 、 NOT REGEXP )  です。

これを利用して検索プログラム"Keyword.class.php"を改造しました。

除外したいキーワードを、 "-{"と"}"で囲むことで検索から除外できるようにしました。

(例) 検索キーワード-{除外キーワード}
 
 
"Keyword.class.php"の変更前

if( $keyword != "" ) { if( $use_regexp ) { $options .= " AND CONCAT(title,description) REGEXP '".mysql_real_escape_string($keyword)."'"; } else { $options .= " AND CONCAT(title,description) like _utf8'%".mysql_real_escape_string($keyword)."%' collate utf8_unicode_ci"; } }  
"Keyword.class.php"の変更後

if( $keyword != "" ) { if(strpos($keyword,'-{') !== false){ $kwd1 = explode('-{',$keyword); if(strpos($kwd1[1],'}') !== false){ $kwd2 = explode('}',$kwd1[1]); $keyword = $kwd1[0].$kwd2[1]; } } if( $use_regexp ) { if( $keyword != "" ) { $options .= " AND CONCAT(title,description) REGEXP '".mysql_real_escape_string($keyword)."'"; } if( $kwd2[0] != "" ) { $options .= " AND CONCAT(title,description) NOT REGEXP '".mysql_real_escape_string($kwd2[0])."'"; } } else { if( $keyword != "" ) { $options .= " AND CONCAT(title,description) LIKE _utf8'%".mysql_real_escape_string($keyword)."%' COLLATE utf8_unicode_ci"; } if( $kwd2[0] != "" ) { $options .= " AND CONCAT(title,description) NOT LIKE _utf8'%".mysql_real_escape_string($kwd2[0])."%' COLLATE utf8_unicode_ci"; } } }  

twitter kn_ishi