急に LINQ を試したくなったので、LINQ to foltia を作りはじめた。
404 Not Found
とりあえず録画ライブラリの一覧は取得できたところ。
単に List<> 継承して、インスタンス化されるときに録画ライブラリページ読んで自身つっこんでるだけです。
IQueryable<> を実装した方法もLINQ to Excel を作ってみる その1 - Architect Lifeとかで紹介されているのですが、その3あたりでついて行けなくなった。あううう。
まあ、1ページロードするだけで全件取得できちゃうからこれでいいか、という感じです。
今の段階でもちょっとくらいは使えます。とりあえず「★」を含むタイトルを抽出したりしてみたり。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using EbiSoft.Linq.Foltia; namespace SampleLinqToFoltia { class Program { static void Main(string[] args) { string baseUri = ""; // foltiaの設置URL string user = ""; // 認証情報 string pass = ""; Foltia foltia = new Foltia(baseUri, user, pass); var titles = from t in foltia.Library where t.Name.Contains("★") select t.Title; foreach (var title in titles) Console.WriteLine(title); Console.Read(); } } }
あと、FoltiaLibraryTitle に Programs をつけて、放映回、サブタイトル、MP4ファイルのURLが取れるところまで作るつもり。
foltia の録画ライブラリ番組個別表示のHTMLを正規表現でパースするのは難しそうなので、いろいろがんばらないといけなさそう。マネージドなスクレイピングのライブラリとかないんだろうか。