Skip to content

Commit 6cbe773

Browse files
committed
YouTubeLiveのrunsをパースする時に例外が発生したら元データを収集するようにした
1 parent 0cc1999 commit 6cbe773

File tree

2 files changed

+52
-37
lines changed

2 files changed

+52
-37
lines changed

MultiCommentViewer/Properties/AssemblyInfo.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33

44
[assembly: InternalsVisibleTo("MultiCommentViewerTests")]
55

6-
[assembly: AssemblyVersion("0.6.5")]
6+
[assembly: AssemblyVersion("0.6.6")]

YouTubeLiveSitePlugin/Next/Tools.cs

+51-36
Original file line numberDiff line numberDiff line change
@@ -238,27 +238,34 @@ private static List<IMessagePart> ParseRunsOrSimpleText(dynamic ren)
238238
var messageItems = new List<IMessagePart>();
239239
if (ren.ContainsKey("runs"))
240240
{
241-
foreach (var r in ren.runs)
241+
try
242242
{
243-
if (r.ContainsKey("text"))
243+
foreach (var r in ren.runs)
244244
{
245-
var text = (string)r.text;
246-
messageItems.Add(MessagePartFactory.CreateMessageText(text));
247-
}
248-
else if (r.ContainsKey("emoji"))
249-
{
250-
var emoji = r.emoji;
251-
var thumbnail = emoji.image.thumbnails[0];
252-
var emojiUrl = thumbnail.url;
253-
var emojiWidth = (int)((int?)thumbnail.width ?? 24);
254-
var emojiHeight = (int)((int?)thumbnail.height ?? 24);
255-
var emojiAlt = emoji.image.accessibility.accessibilityData.label;
256-
messageItems.Add(new MessageImage { Url = emojiUrl, Alt = emojiAlt, Height = emojiHeight, Width = emojiWidth });
257-
}
258-
else
259-
{
260-
throw new ParseException();
245+
if (r.ContainsKey("text"))
246+
{
247+
var text = (string)r.text;
248+
messageItems.Add(MessagePartFactory.CreateMessageText(text));
249+
}
250+
else if (r.ContainsKey("emoji"))
251+
{
252+
var emoji = r.emoji;
253+
var thumbnail = emoji.image.thumbnails[0];
254+
var emojiUrl = thumbnail.url;
255+
var emojiWidth = (int)(((int?)thumbnail.width) ?? 24);
256+
var emojiHeight = (int)(((int?)thumbnail.height) ?? 24);
257+
var emojiAlt = emoji.image.accessibility.accessibilityData.label;
258+
messageItems.Add(new MessageImage { Url = emojiUrl, Alt = emojiAlt, Height = emojiHeight, Width = emojiWidth });
259+
}
260+
else
261+
{
262+
throw new ParseException();
263+
}
261264
}
265+
}catch(Exception ex)
266+
{
267+
var raw = (string)ren.runs.ToString().replace(Environment.NewLine, "");
268+
throw new ParseException(raw, ex);
262269
}
263270
}
264271
else if (ren.ContainsKey("simpleText"))
@@ -281,28 +288,36 @@ private static List<IMessagePart> GetMessageParts(dynamic ren)
281288
}
282289
if (ren.message.ContainsKey("runs"))
283290
{
284-
foreach (var r in ren.message.runs)
291+
try
285292
{
286-
if (r.ContainsKey("text"))
293+
foreach (var r in ren.message.runs)
287294
{
288-
var text = (string)r.text;
289-
messageItems.Add(MessagePartFactory.CreateMessageText(text));
290-
}
291-
else if (r.ContainsKey("emoji"))
292-
{
293-
var emoji = r.emoji;
294-
var thumbnail = emoji.image.thumbnails[0];
295-
var emojiUrl = thumbnail.url;
296-
var emojiWidth = (int)((int?)thumbnail.width ?? 24);
297-
var emojiHeight = (int)((int?)thumbnail.height ?? 24);
298-
var emojiAlt = emoji.image.accessibility.accessibilityData.label;
299-
messageItems.Add(new MessageImage { Url = emojiUrl, Alt = emojiAlt, Height = emojiHeight, Width = emojiWidth });
300-
}
301-
else
302-
{
303-
throw new ParseException();
295+
if (r.ContainsKey("text"))
296+
{
297+
var text = (string)r.text;
298+
messageItems.Add(MessagePartFactory.CreateMessageText(text));
299+
}
300+
else if (r.ContainsKey("emoji"))
301+
{
302+
var emoji = r.emoji;
303+
var thumbnail = emoji.image.thumbnails[0];
304+
var emojiUrl = thumbnail.url;
305+
var emojiWidth = (int)(((int?)thumbnail.width) ?? 24);
306+
var emojiHeight = (int)(((int?)thumbnail.height) ?? 24);
307+
var emojiAlt = emoji.image.accessibility.accessibilityData.label;
308+
messageItems.Add(new MessageImage { Url = emojiUrl, Alt = emojiAlt, Height = emojiHeight, Width = emojiWidth });
309+
}
310+
else
311+
{
312+
throw new ParseException();
313+
}
304314
}
305315
}
316+
catch(Exception ex)
317+
{
318+
var raw = (string)ren.message.runs.ToString().replace(Environment.NewLine, "");
319+
throw new ParseException(raw, ex);
320+
}
306321
}
307322
else if (ren.message.ContainsKey("simpleText"))
308323
{

0 commit comments

Comments
 (0)