Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 8916490

Browse files
committed
YouTubeLiveのメンバーシップ登録とメンバーシップメッセージに対応
1 parent 6b3a7aa commit 8916490

File tree

4 files changed

+49
-12
lines changed

4 files changed

+49
-12
lines changed

‎MultiCommentViewer/ViewModels/CommentViewModel/McvYouTubeLiveCommentViewModel.cs‎

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -181,15 +181,33 @@ public McvYouTubeLiveCommentViewModel(YouTubeLiveSitePlugin.IYouTubeLiveMembersh
181181
_message = comment;
182182

183183
_nameItems = comment.NameItems;
184-
var messageItems = new List<IMessagePart>();
185-
messageItems.AddRange(comment.HeaderPrimaryTextItems);
186-
messageItems.AddRange(comment.HeaderSubTextItems);
187-
messageItems.AddRange(comment.CommentItems);
188-
MessageItems = messageItems;
189-
Thumbnail = comment.UserIcon;
190-
Id = comment.Id.ToString();
191-
PostTime = comment.PostedAt.ToString("HH:mm:ss");
192-
Info = "メンバー登録";
184+
185+
if (comment.HeaderPrimaryTextItems == null || comment.CommentItems.Count() == 0)
186+
{
187+
//メンバーシップ登録
188+
var messageItems = new List<IMessagePart>();
189+
messageItems.AddRange(comment.HeaderSubTextItems);
190+
MessageItems = messageItems;
191+
Thumbnail = comment.UserIcon;
192+
Id = comment.Id.ToString();
193+
PostTime = comment.PostedAt.ToString("HH:mm:ss");
194+
Info = "メンバーシップ登録";
195+
}
196+
else
197+
{
198+
//メンバーシップメッセージ
199+
var messageItems = new List<IMessagePart>();
200+
messageItems.AddRange(comment.HeaderPrimaryTextItems);
201+
messageItems.Add(MessagePartFactory.CreateMessageText(Environment.NewLine));
202+
messageItems.AddRange(comment.HeaderSubTextItems);
203+
messageItems.Add(MessagePartFactory.CreateMessageText(Environment.NewLine));
204+
messageItems.AddRange(comment.CommentItems);
205+
MessageItems = messageItems;
206+
Thumbnail = comment.UserIcon;
207+
Id = comment.Id.ToString();
208+
PostTime = comment.PostedAt.ToString("HH:mm:ss");
209+
Info = "メンバーシップメッセージ";
210+
}
193211
}
194212
public McvYouTubeLiveCommentViewModel(YouTubeLiveSitePlugin.IYouTubeLiveConnected connected, IMessageMetadata metadata, IMessageMethods methods, IConnectionStatus connectionStatus, IOptions options)
195213
: this(metadata, methods, connectionStatus, options)

‎YouTubeLiveSitePlugin/Message.cs‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ public YouTubeLiveMembership(MemberShip text) : base("")
6161
UserId = text.AuthorExternalChannelId;
6262
Id = text.Id;
6363
CommentItems = MessageBase.Convert(text.MessageItems);
64+
HeaderPrimaryTextItems = MessageBase.Convert(text.HeaderPrimaryTextItems);
65+
HeaderSubTextItems = MessageBase.Convert(text.HeaderSubTextItems);
6466
NameItems = MessageBase.Convert(text.AuthorName, text.AuthorBadges);
6567
UserIcon = MessageBase.Convert(text.AuthorPhoto);
6668
PostedAt = MessageBase.Convert(text.TimestampUsec);

‎YouTubeLiveSitePlugin/Next/CommentProviderNext.cs‎

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -802,13 +802,20 @@ private void OnMessageReceived(IAction action, bool isInitialComment)
802802
RaiseMessageReceived(CreateMessageContext2(giftPurchase, isInitialComment));
803803
}
804804
break;
805+
case MemberShip memberShip:
806+
{
807+
if (IsDuplicate(memberShip.Id))
808+
{
809+
return;
810+
}
811+
RaiseMessageReceived(CreateMessageContext2(memberShip, isInitialComment));
812+
}
813+
break;
805814
case ParseError parseError:
806815
{
807816
_logger.LogException(new Exception(), "ParseError", parseError.Raw);
808817
}
809818
break;
810-
case MemberShip memberShip:
811-
break;
812819
case IgnoredMessage ignoredMessage:
813820
break;
814821
default:
@@ -898,6 +905,16 @@ private YouTubeLiveMessageContext CreateMessageContext2(SponsorshipsGiftPurchase
898905
metadata.User.Name = message.NameItems;
899906
return new YouTubeLiveMessageContext(message, metadata, methods);
900907
}
908+
private YouTubeLiveMessageContext CreateMessageContext2(MemberShip text, bool isInitialComment)
909+
{
910+
var message = new YouTubeLiveMembership(text);
911+
912+
var metadata = CreateMetadata(message, isInitialComment);
913+
var methods = new YouTubeLiveMessageMethods();
914+
915+
metadata.User.Name = message.NameItems;
916+
return new YouTubeLiveMessageContext(message, metadata, methods);
917+
}
901918
//private void OnMessageReceived(IInternalMessage e, bool isInitialComment)
902919
//{
903920
// switch (e)

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /