Skip to content

Commit

Permalink
Ver 0.0.1.16
Browse files Browse the repository at this point in the history
jkcommentviewerで取得したyoutubeコメント修復機能
- 各行処理前にHtmlDecodeするように修正
- コメント修復前にxmlファイルが壊れているか確認、壊れてなければ中止
さきゅばす変換前にxmlファイルが壊れていたら中止
README.txt修正
  • Loading branch information
nnn-revo2012 committed Dec 31, 2021
1 parent 303fae6 commit 2f2659f
Show file tree
Hide file tree
Showing 9 changed files with 101 additions and 63 deletions.
9 changes: 8 additions & 1 deletion README.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
===============================================================================
【タイトル】 comeconv
【ファイル】 comeconv.exe
【作成月日】 2021/12/28
【作成月日】 2022/01/01
【著 作 者】 nnn-revo2012
【開発環境】 Microsoft Windows 10
Microsoft Visual Studio Community 2017
Expand Down Expand Up @@ -190,3 +190,10 @@ GNU General Public License v3.0
 ニコ動・ニコ生以外のチャットのタグ要素は全てエンコードするように修正
 xmlファイル出力時 < > が正しくエンコードされなかったのを修正
 サロゲートペア文字判定条件を文字数から Char.IsSurrogate() で判定するよう修正
2022/01/01 Version 0.0.1.16
 壊れたyoutubeのコメントファイル修復タブ作成
 - Version0.0.1.14以前のさきゅばす変換でjkcommentviewerのyoutubeコメントファイルを変換すると
  xmlファイルとして読み込めなくなる場合があった。そのファイルを修復します。
 - jkcommentviewerのyoutubeコメントファイル以外は処理できません。
 - jkcommentviewerのyoutubeコメントファイルで壊れていない場合は処理しません。
 さきゅばす変換の際、xmlが壊れていたら変換中止するように修正。
4 changes: 2 additions & 2 deletions comeconv/ConvComment.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
using System.Xml.XPath;
using System.Xml.Linq;
using System.Diagnostics;
using System.Web;
using System.Net;
using System.Globalization;
using System.Text.RegularExpressions;

Expand Down Expand Up @@ -147,7 +147,7 @@ private string ConvChatData(string chat, Props props)
}
data[ele.Name.ToString()] = ele.Value.ToString();
}
var ttt = HttpUtility.HtmlDecode(xdoc.Element("chat").Value.ToString());
var ttt = WebUtility.HtmlDecode(xdoc.Element("chat").Value.ToString());
if (!data.ContainsKey("vpos"))
data["vpos"] = "0";
if (!data.ContainsKey("date_usec"))
Expand Down
4 changes: 2 additions & 2 deletions comeconv/ConvTwitch.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
using System.Xml.XPath;
using System.Xml.Linq;
using System.Diagnostics;
using System.Web;
using System.Net;
using System.Globalization;
using System.Text.RegularExpressions;

Expand Down Expand Up @@ -93,7 +93,7 @@ private string ConvChatData(IDictionary<string, string> data, Props props)

try
{
var ttt = HttpUtility.HtmlDecode(data["content"]);
var ttt = WebUtility.HtmlDecode(data["content"]);
if (!data.ContainsKey("vpos"))
data["vpos"] = "0";
if (!data.ContainsKey("date_usec"))
Expand Down
84 changes: 43 additions & 41 deletions comeconv/Form1.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 21 additions & 3 deletions comeconv/Form1.cs
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,17 @@ private async void tabPage1_DragDrop(object sender, DragEventArgs e)
AddLog("jkcommentviewerのyoutubeコメントファイルは変換の必要ありません。", 1);
}
else
await Task.Run(() => ConvXml(files[i]));
{
if (!Utils.CanXmlRead(files[i]))
{
AddLog("このxmlファイルは読み込めません。", 1);
AddLog("変換中止します。", 1);
}
else
{
await Task.Run(() => ConvXml(files[i]));
}
}
}
else if (filetype == 1)
await Task.Run(() => ConvVideo(files[i]));
Expand Down Expand Up @@ -406,10 +416,18 @@ private async void repair_DragDrop(object sender, DragEventArgs e)
if (Utils.IsXmlFileType(files[i]) != 10)
{
AddLog("jkcommentviewerのyoutubeコメントファイル以外は処理できません。", 1);
AddLog("また、一度修復したyoutubeコメントファイルは処理できません。", 1);
}
else
await Task.Run(() => RepairXml(files[i]));
{
if (Utils.CanXmlRead(files[i]))
{
AddLog("このyoutubeコメントファイルは壊れていません。", 1);
}
else
{
await Task.Run(() => RepairXml(files[i]));
}
}
}
}
ProgramStatus = 0;
Expand Down
4 changes: 2 additions & 2 deletions comeconv/Form1_Sub.cs
Original file line number Diff line number Diff line change
Expand Up @@ -349,7 +349,7 @@ private void RepairXml(string filename, string mode = "repair")
File.Move(filename, backupfile);
newfile = filename;

AddLog("コメント修復します。", 1);
AddLog("コメント修復開始します。", 1);
AddLog("元ファイル: " + Path.GetFileName(backupfile), 1);
AddLog("修復ファイル: " + Path.GetFileName(newfile), 1);
{
Expand All @@ -361,7 +361,7 @@ private void RepairXml(string filename, string mode = "repair")
}
else
{
AddLog("コメント変換に失敗しました。", 1);
AddLog("コメント修復に失敗しました。", 1);
}
}
return;
Expand Down
2 changes: 1 addition & 1 deletion comeconv/Prop/Version.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ namespace comeconv.Prop
public class Ver
{
public static readonly string Version = "0.0.1.16";
public static readonly string VerDate = "2021/12/28";
public static readonly string VerDate = "2022/01/01";

public static string GetFullVersion()
{
Expand Down
11 changes: 2 additions & 9 deletions comeconv/RepairXmlFile.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,12 @@
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Xml;
using System.Xml.XPath;
using System.Xml.Linq;
using System.Diagnostics;
using System.Web;
using System.Net;
using System.Globalization;
using System.Text.RegularExpressions;

Expand Down Expand Up @@ -55,10 +53,6 @@ public bool XmlRepair(string sfile, string dfile)

try
{
if (!File.Exists(sfile))
{
return false;
}
using (var sr = new StreamReader(sfile, enc))
using (var sw = new StreamWriter(dfile, true, enc))
{
Expand Down Expand Up @@ -102,14 +96,13 @@ public bool XmlRepair(string sfile, string dfile)

private string RepairChatData(string chat, Props props)
{
var data = new Dictionary<string, string>();
if (string.IsNullOrEmpty(chat))
return "";

try
{
var ttt = chat.Replace("&amp;lt;", "&lt;").Replace("&amp;gt;", "&gt;");
ttt = Utils.Encode(Utils.Decode(ttt));
ttt = Utils.Encode(WebUtility.HtmlDecode(ttt));
ttt = ttt.Replace("=&quot;", "=\"").Replace("&quot; ", "\" ");
ttt = ttt.Replace("&quot;&gt;", "\">");
ttt = ttt.Replace("&lt;chat ", "<chat ").Replace("&lt;/chat&gt;", "</chat>");
Expand Down
22 changes: 20 additions & 2 deletions comeconv/Util/Utils.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Xml;
using System.Xml.XPath;
Expand Down Expand Up @@ -151,6 +149,26 @@ public static int IsTwitchFileType(string filename)

return result;
}

//Xmlファイルが壊れてないか調べる
public static bool CanXmlRead(string file)
{
try
{
if (!File.Exists(file))
{
return false;
}
XDocument xdoc = XDocument.Load(file);
}
catch (Exception)
{
return false;
}

return true;
}

//ニコニコのXmlファイルの形式を返す
public static int IsXmlFileType(string filename)
{
Expand Down

0 comments on commit 2f2659f

Please sign in to comment.