シリーズをお気に入りに登録して新着チェック


シリーズ仮対応 https://writening.net/page?4pm7h5 をまず先に

シリーズをマイリストと偽ってお気に入りに登録
その際ID末尾に?を付与して区別。印が付いてたらRSSチェックの時にRubyに流せるHTMLの方に流して貰う
お気に入り登録の時に?が付くのはご愛敬
GetSmilevideoRSSに渡す所でEditMethodが使えなかったのでそちらは断念
*追記
原因は不明だが一部環境でCompile時に
CS0592 attribute 'global::Microsoft.VisualBasic.CompilerServices.OptionText'(略
というエラーが出る事があるみたいなのでその解決策
エラーが発生した時にエラー内容をダブルクリックしてエラーの位置に移動、
Ctrl+Fを押して出てくる右上のテキスト入力欄に[global::Microsoft.VisualBasic.CompilerServices.OptionText]をコピペ
左にある下向きの˘ボタン押すと出てくるReplaceALLボタンを押してCompile
再度元の画面に戻ってから修正するとエラーが起きなくなる

dnSpy

1.チェックマイリスト部分#

TrinityCS>NetUtil
26行目付近
GetSmilevideoRSS
でEditMethod
31行目
httpWebRequest.Referer = "http://www.nicovideo.jp/";
から
40行目のtry
の間(32~39行)を削除し
if (rssurl.IndexOf("??") == -1)
{
HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (Stream responseStream = httpWebResponse.GetResponseStream())
{
using (StreamReader streamReader = new StreamReader(responseStream, Variable.ENC_UTF8))
{
s = streamReader.ReadToEnd();
}
}
}
else
{
s = NetUtil.GetSmilevideoHTMLText(rssurl + "&numbers=1", 6, ref Variable.gp_CookieContainer);
}
を挿入してCompile

2.お気に入り登録部分#

nFinder>mFinder_Main
13090行目付近
obj_CtxtMain_AddFindstr_Click
でEditMethod
二個あるうちの二つ目の
MyProject.Forms.dAddFav.Activate();
の2行下(51行目)の末尾で改行し、
if (Microsoft.VisualBasic.Strings.InStr(this._LastMylistURL, "/series/", CompareMethod.Text) > 0 && Operators.CompareString(this._NowMylistID, "", true) != 0)
{
MyProject.Forms.dAddFav.SetMylistFav(this._NowMylistTitle, "ml*" + this._NowMylistID + "?");
MyProject.Forms.dAddFav.Show();
MyProject.Forms.dAddFav.Activate();
}
を挿入してCompile

3.お気に入りから開く部分#

nFinder>mFinder_Main
11204行目付近
MLV_DoubleClick
でEditMethod
42行目末尾で改行して
else
{
if (Microsoft.VisualBasic.Strings.InStr(Conversions.ToString(this.MLV.SelectedItems[0]["動画ID"]), "ml*", CompareMethod.Text) > 0)
{
this.obj_LVMenu_MylistTextBox1.Text = "http://www.nicovideo.jp/mylist/" + Microsoft.VisualBasic.Strings.Replace(Conversions.ToString(this.MLV.SelectedItems[0]["動画ID"]), "ml*", "", 1, -1, CompareMethod.Text);
this._MLV_SnapShotHTA["マイリスト"] = null;
this.SelectContents("マイリスト");
return;
}
を挿入してから
36行目の
"ml*"

"?"
に変更
37行目の
"http://www.nicovideo.jp/mylist/"

"http://www.nicovideo.jp/series/"
に変更
それから一番下までスクロールして
}
を挿入してCompile
SeveALLで保存

4.nico.rb修正部分#

20行目辺りの
nico_url = target if target.end_with?("numbers=1")
の下に
if target.include?("??")#シリーズ用の印があれば
seriesid = target.sub("http://www.nicovideo.jp/mylist/", "").sub(/\?.+/, "")
nico_url = "https://www.nicovideo.jp/series/" + seriesid
end
を挿入
41行目辺りの
if target.include?("/series") #シリーズ読込

if nico_url.include?("/series") #シリーズ読込
に変更
導入出来ているかは修正完了後にシリーズをお気に入りに入れてから手動でマイリスト更新チェックをしてみて
logフォルダの中のCheck_NewMylistにml*(数字)?というのが追加されているかどうかで判断できる。「?」が付いてないものしかなかったら失敗してる
お知らせ
実務でも趣味でも役に立つ多機能Webツールサイト【無限ツールズ】で、日常をちょっと便利にしちゃいましょう!
無限ツールズ

 
writening