Skip to content

Commit

Permalink
youtubeファイルのxml修復機能作成
Browse files Browse the repository at this point in the history
 解析するとコメントが取得できない場合があるのでアルゴリズムを変更
 (これでも100%修復できないがこれ以上は無理だろう)
  • Loading branch information
nnn-revo2012 committed Dec 31, 2021
1 parent 028ae7a commit 303fae6
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 15 deletions.
4 changes: 2 additions & 2 deletions comeconv/Form1.cs
Original file line number Diff line number Diff line change
Expand Up @@ -405,8 +405,8 @@ private async void repair_DragDrop(object sender, DragEventArgs e)
{
if (Utils.IsXmlFileType(files[i]) != 10)
{
AddLog("jkcommentviewerのyoutubeコメントファイル以外は修復できません。", 1);
AddLog("また、一度修復したyoutubeコメントファイル以外は修復できません。", 1);
AddLog("jkcommentviewerのyoutubeコメントファイル以外は処理できません。", 1);
AddLog("また、一度修復したyoutubeコメントファイルは処理できません。", 1);
}
else
await Task.Run(() => RepairXml(files[i]));
Expand Down
19 changes: 6 additions & 13 deletions comeconv/RepairXmlFile.cs
Original file line number Diff line number Diff line change
Expand Up @@ -100,10 +100,6 @@ public bool XmlRepair(string sfile, string dfile)
return true;
}

//private static Regex _RegGift = new Regex("\"([^\"]+)\" (\\d+) \"([^\"]*)\" \"([^\"]+)\" ?(\\d*)", RegexOptions.Compiled);
private static Regex _RegVpos = new Regex("vpos=\"(\\d+)\"", RegexOptions.Compiled);
private static Regex _RegDate = new Regex("date=\"(\\d+)\"", RegexOptions.Compiled);
private static Regex _RegComment = new Regex("date_usec=\"0\">(.*)</chat>", RegexOptions.Compiled);
private string RepairChatData(string chat, Props props)
{
var data = new Dictionary<string, string>();
Expand All @@ -112,15 +108,12 @@ private string RepairChatData(string chat, Props props)

try
{
data["vpos"] = _RegVpos.Match(chat).Groups[1].ToString();
data["date"] = _RegDate.Match(chat).Groups[1].ToString();
//data["mail"] = "";
//data["premium"] = "";
var ttt = _RegComment.Match(chat).Groups[1].ToString();
ttt= ttt.Replace("&amp;lt;", "&lt;");
ttt = ttt.Replace("&amp;gt;", "&gt;");
data["content"] = Utils.Decode(ttt);
return ConvComment.Table2Xml(data);
var ttt = chat.Replace("&amp;lt;", "&lt;").Replace("&amp;gt;", "&gt;");
ttt = Utils.Encode(Utils.Decode(ttt));
ttt = ttt.Replace("=&quot;", "=\"").Replace("&quot; ", "\" ");
ttt = ttt.Replace("&quot;&gt;", "\">");
ttt = ttt.Replace("&lt;chat ", "<chat ").Replace("&lt;/chat&gt;", "</chat>");
return ttt;
}
catch (Exception Ex)
{
Expand Down

0 comments on commit 303fae6

Please sign in to comment.