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 b94f6a5

Browse files
committed
SponsorshipsGiftPurchaseAnnouncementに対応
1 parent 8919242 commit b94f6a5

File tree

6 files changed

+74
-7
lines changed

6 files changed

+74
-7
lines changed

‎MultiCommentViewer/ViewModels/CommentViewModel/McvYouTubeLiveCommentViewModel.cs‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,21 @@ public McvYouTubeLiveCommentViewModel(YouTubeLiveSitePlugin.IYouTubeLivePaidStic
160160
Id = sticker.Id;
161161
PostTime = sticker.PostedAt.ToString("HH:mm:ss");
162162
}
163+
public McvYouTubeLiveCommentViewModel(YouTubeLiveSitePlugin.IYouTubeLiveSponsorshipsGiftPurchaseAnnouncement sticker, IMessageMetadata metadata, IMessageMethods methods, IConnectionStatus connectionStatus, IOptions options)
164+
: this(metadata, methods, connectionStatus, options)
165+
{
166+
_message = sticker;
167+
168+
_nameItems = sticker.NameItems;
169+
170+
var list = new List<IMessagePart>();
171+
list.AddRange(sticker.MessageItems);
172+
MessageItems = list;
173+
174+
Thumbnail = sticker.UserIcon;
175+
Id = sticker.Id;
176+
PostTime = sticker.PostedAt.ToString("HH:mm:ss");
177+
}
163178
public McvYouTubeLiveCommentViewModel(YouTubeLiveSitePlugin.IYouTubeLiveMembership comment, IMessageMetadata metadata, IMessageMethods methods, IConnectionStatus connectionStatus, IOptions options)
164179
: this(metadata, methods, connectionStatus, options)
165180
{

‎MultiCommentViewer/ViewModels/MainViewModel.cs‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -715,6 +715,10 @@ private void AddComment(IMessageContext messageContext, IConnectionStatus connec
715715
{
716716
mcvCvm = new McvYouTubeLiveCommentViewModel(sticker, messageContext.Metadata, messageContext.Methods, connectionName, _options);
717717
}
718+
else if (youtubeMessage is YouTubeLiveSitePlugin.IYouTubeLiveSponsorshipsGiftPurchaseAnnouncement GiftPurchaseAnnouncement)
719+
{
720+
mcvCvm = new McvYouTubeLiveCommentViewModel(GiftPurchaseAnnouncement, messageContext.Metadata, messageContext.Methods, connectionName, _options);
721+
}
718722
else if (youtubeMessage is YouTubeLiveSitePlugin.IYouTubeLiveMembership member)
719723
{
720724
mcvCvm = new McvYouTubeLiveCommentViewModel(member, messageContext.Metadata, messageContext.Methods, connectionName, _options);

‎YouTubeLiveIF/Message.cs‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ public enum YouTubeLiveMessageType
1010
Comment,
1111
Superchat,
1212
PaidSticker,
13+
SponsorshipsGiftPurchaseAnnouncement,
1314
Membership,
1415
Connected,
1516
Disconnected,
@@ -60,6 +61,15 @@ public interface IYouTubeLivePaidSticker : IYouTubeLiveMessage
6061
int StickerHeight { get; }
6162
string StickerTooltip { get; }
6263
}
64+
public interface IYouTubeLiveSponsorshipsGiftPurchaseAnnouncement : IYouTubeLiveMessage
65+
{
66+
IEnumerable<IMessagePart> NameItems { get; }
67+
IEnumerable<IMessagePart> MessageItems { get; set; }
68+
IMessageImage UserIcon { get; }
69+
DateTime PostedAt { get; }
70+
string Id { get; }
71+
string UserId { get; }
72+
}
6373
public interface IYouTubeLiveMembership : IYouTubeLiveMessage
6474
{
6575
IEnumerable<IMessagePart> NameItems { get; }

‎YouTubeLiveMessageParser‎

‎YouTubeLiveSitePlugin/Message.cs‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,27 @@ public YouTubeLivePaidSticker(PaidSticker text) : base("")
123123
StickerTooltip = text.StickerTooltip;
124124
}
125125
}
126+
internal class YouTubeLiveSponsorshipsGiftPurchaseAnnouncement : MessageBase2, IYouTubeLiveSponsorshipsGiftPurchaseAnnouncement
127+
{
128+
public override SiteType SiteType { get; } = SiteType.YouTubeLive;
129+
public YouTubeLiveMessageType YouTubeLiveMessageType { get; } = YouTubeLiveMessageType.SponsorshipsGiftPurchaseAnnouncement;
130+
public string Id { get; set; }
131+
public IEnumerable<IMessagePart> NameItems { get; set; }
132+
public IEnumerable<IMessagePart> MessageItems { get; set; }
133+
public string UserId { get; set; }
134+
public DateTime PostedAt { get; set; }
135+
public IMessageImage UserIcon { get; set; }
136+
137+
public YouTubeLiveSponsorshipsGiftPurchaseAnnouncement(SponsorshipsGiftPurchaseAnnouncement text) : base("")
138+
{
139+
UserId = text.ChannelId;
140+
Id = text.Id;
141+
MessageItems = MessageBase.Convert(text.HeaderPrimaryText);
142+
NameItems = MessageBase.Convert(text.AuthorName, text.AuthorBadges);
143+
UserIcon = MessageBase.Convert(text.AuthorPhoto);
144+
PostedAt = MessageBase.Convert(text.TimestampUsec);
145+
}
146+
}
126147
internal class YouTubeLiveComment : MessageBase2, IYouTubeLiveComment
127148
{
128149
public override SiteType SiteType { get; } = SiteType.YouTubeLive;

‎YouTubeLiveSitePlugin/Next/CommentProviderNext.cs‎

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -793,19 +793,22 @@ private void OnMessageReceived(IAction action, bool isInitialComment)
793793
RaiseMessageReceived(CreateMessageContext2(paidSticker, isInitialComment));
794794
}
795795
break;
796+
case SponsorshipsGiftPurchaseAnnouncement giftPurchase:
797+
{
798+
if (IsDuplicate(giftPurchase.Id))
799+
{
800+
return;
801+
}
802+
RaiseMessageReceived(CreateMessageContext2(giftPurchase, isInitialComment));
803+
}
804+
break;
796805
case ParseError parseError:
797806
{
798807
_logger.LogException(new Exception(), "ParseError", parseError.Raw);
799808
}
800809
break;
801810
case MemberShip memberShip:
802811
break;
803-
case TickerPaidMessage tickerPaidMessage:
804-
break;
805-
case TickerPaidSticker tickerPaidSticker:
806-
break;
807-
case TickerSponser tickerSponser:
808-
break;
809812
case IgnoredMessage ignoredMessage:
810813
break;
811814
default:
@@ -885,6 +888,16 @@ private YouTubeLiveMessageContext CreateMessageContext2(PaidSticker text, bool i
885888
metadata.User.Name = message.NameItems;
886889
return new YouTubeLiveMessageContext(message, metadata, methods);
887890
}
891+
private YouTubeLiveMessageContext CreateMessageContext2(SponsorshipsGiftPurchaseAnnouncement text, bool isInitialComment)
892+
{
893+
var message = new YouTubeLiveSponsorshipsGiftPurchaseAnnouncement(text);
894+
895+
var metadata = CreateMetadata(message, isInitialComment);
896+
var methods = new YouTubeLiveMessageMethods();
897+
898+
metadata.User.Name = message.NameItems;
899+
return new YouTubeLiveMessageContext(message, metadata, methods);
900+
}
888901
//private void OnMessageReceived(IInternalMessage e, bool isInitialComment)
889902
//{
890903
// switch (e)
@@ -1061,6 +1074,10 @@ private YouTubeLiveMessageMetadata CreateMetadata(IYouTubeLiveMessage message, b
10611074
{
10621075
userId = paidSticker.UserId;
10631076
}
1077+
else if (message is IYouTubeLiveSponsorshipsGiftPurchaseAnnouncement purchaseAnnouncement)
1078+
{
1079+
userId = purchaseAnnouncement.UserId;
1080+
}
10641081
bool isFirstComment;
10651082
IUser user;
10661083
if (userId != null)

0 commit comments

Comments
(0)

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