Skip to content

Commit 7fe120c

Browse files
棒読みちゃん連携など微調整
1 parent c5eb973 commit 7fe120c

File tree

1 file changed

+86
-18
lines changed

1 file changed

+86
-18
lines changed

NicoSitePlugin2/TestCommentProvider.cs

Lines changed: 86 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -577,8 +577,16 @@ private void MetaProvider_Received(object sender, Metadata.IMetaMessage e)
577577
});
578578
break;
579579
case Metadata.Disconnect disconnect:
580-
SendSystemInfo($"コメントデータサーバーとの接続が切断されました{Environment.NewLine}原因:{disconnect.Reason}", InfoType.Notice);
581-
//Disconnect();
580+
if (disconnect.Reason == "END_PROGRAM")
581+
{
582+
SendSystemInfo($"配信が終了したため切断します。", InfoType.Notice);
583+
Disconnect();
584+
}
585+
else
586+
{
587+
SendSystemInfo($"コメントデータサーバーとの接続が切断されました{Environment.NewLine}原因:{disconnect.Reason}", InfoType.Notice);
588+
//Disconnect();
589+
}
582590
break;
583591
case Metadata.ServerTime serverTime:
584592
break;
@@ -641,6 +649,39 @@ public async Task ProcessChunkedEntry(ChunkedEntry entry)
641649

642650
RemoveDisconnectedServers();
643651

652+
//デバック用
653+
//名札付きコメント
654+
//string base64String = "Cj4KJEVoa0tFZ2sxYzctSzIxbVJBUkZVMkdhZVVHcFVqQkNnMDVjShIMCIXh+7UGEMiC64gDGggKBgiCnOKkARI3CjUKG+ebuOaJi+OBr+epuuOBqOa1t+OBoOOBi+OCiRIG44K/44ONGPXpoAwoi5zhFjoAQIPdBQ==";
655+
//匿名コメント
656+
//string base64String = "Cj4KJEVoa0tFZ2tTZG9KdDIxbVJBUkVkRXYwN0x1YTZqUkNnMDVjShIMCP7g+7UGELjpyaEBGggKBgiCnOKkARJlCmMKQOOCguOBl+OBi+OBl+OBpuOBvuOBoOatjOiInuS8juW6p+OCv+ODr+ODvOOBq+WFpeOCjOOBquOBhOOBru+8n3cYtuegDCABMhJhOm9QanZWSHEwN2txa3k1c206AECA3QU=";
657+
//22位にランクインしました
658+
//string base64String = "Cj4KJEVoa0tFZ25iZmhQbkcxdVJBUkVseUdrSF9yUWd2eEN3OF9rSxIMCIiF/bUGEICjhNMDGggKBgjJ2eOkARIqOigyJuesrDIy5L2N44Gr44Op44Oz44Kv44Kk44Oz44GX44G+44GX44Gf";
659+
//「縁日射的」がリクエストされました
660+
//string base64String = "Cj0KJEVoa0tFZ2wtZFdyeVBsbVJBUkhiejZsZnZoNjZoeENVanQ0SxILCO+Q+7UGEPj2wGQaCAoGCPfB46QBEjc6NQoz44CM57iB5pel5bCE55qE44CN44GM44Oq44Kv44Ko44K544OI44GV44KM44G+44GX44Gf";
661+
//匿名プレミアム
662+
//string base64String = "Cj4KJEVoa0tFZ240YzlkaXgxMlJBUkVGT3Q3VEpKWU5saENFMHEwTBIMCIHj/7UGEPCHwOYCGggKBgiUheSkARIwCi4KDmh0dHAgY2xpZW5077yfGIXKBSABMhJhOjZMWHZ4ZEFPR1Q4V0RCZUM6AEAD";
663+
//名札プレミアム
664+
//string base64String = "Cj4KJEVoa0tFZ25nZVpjaEcxdVJBUkZsb05PRU9pQUNsQkN3OF9rSxIMCNaE/bUGENDy8skBGggKBgjJ2eOkARIwCi4KFemZveawl+OBqu+8ou+8p++8reOBjBIFR29oZXkYraQKIAEo5+ejAjoAQMAC";
665+
//「ゲーム」が好きな2人が来場しました
666+
//string base64String = "Cj4KJEVoa0tFZ25BY1d0aUhGdVJBUkUwWVJ4SEFISW1weEN3OF9rSxIMCKiF/bUGEOjI54gCGggKBgjJ2eOkARI4OjY6NOOAjOOCsuODvOODoOOAjeOBjOWlveOBjeOBqjLkurrjgYzmnaXloLTjgZfjgb7jgZfjgZ8=";
667+
// 3時間延長しました
668+
//string base64String = "Cj4KJEVoa0tFZ2tlYzYzZ2gyT1JBUkVpNmVWNnpLZjJzQkRUNVlnTRIMCPbUhbYGEJiU0cgDGggKBgjbzuSkARIdOhsqGTPmmYLplpPlu7bplbfjgZfjgb7jgZfjgZ8=";
669+
//運営、放送者コメント(リンクあり)
670+
//string base64String = "Cj4KJEVoa0tFZ21SY3hvSHFsbVJBUkZPdE1ReVVXUGFtUkNoMDVjShIMCNjH+7UGEPCEpZkDGggKBgiCnOKkASLwAiLtAgrqAgrnAgq4AuS9nOOBo+OBn+OCv+ODreODg+ODiOOBp+WNoOOBo+OBn+e1kOaenOOBjOS6uuOAheOBrumBi+WRveOCkuW3puWPs+OBmeOCi+ODh+ODg+OCreani+eviUFEVuOAjlRoZSBDb3NtaWMgV2hlZWwgU2lzdGVyaG9vZOOAj+OBjFN0ZWFt44Gr44GmNDAl44Kq44OV44GuMTIwMOWGhuOBq+OAguWNoOOBhOOBruWKm+OCkuaMgeOBpOmtlOWls+OBqOOBl+OBpuOCquODquOCuOODiuODq+OBruOCv+ODreODg+ODiOOCkuS9nOOCiuOAgeW8leOBhOOBn+OCq+ODvOODieOBruOAjOino+mHiOOAjeOBp+ebuOaJi+OBrumBi+WRveOBjOWkieOCj+OBo+OBpuOBhOOBjyIqaHR0cHM6Ly9uZXdzLm5pY292aWRlby5qcC93YXRjaC9udzE2MjU3NTMy";
671+
//放送者コメント(リンクなし)
672+
//string base64String = "Cj4KJEVoa0tFZ242ZEVqNG9HT1JBUkhBUmlGZE9iOHdnUkRVNVlnTRIMCOPhhbYGEID84b4BGggKBgjbzuSkASI/Ij0KOwo1CjPpm7vlrZDjg6zjg7PjgrjjgafjgrPjg6Hjg5Pjg6XokL3jgaHjgabjgZ/jgZnjgb7jgpMaAggP";
673+
//投票開始
674+
//string base64String = "Cj4KJEVoa0tFZ21sZVpCV0pWbVJBUkdGX3RJa2hPT0V1eENPdC1ZSxIMCOCD+7UGEODnmbMDGggKBgjMyOOkASJCEkAKD+OCouODs+OCseODvOODiBIOCgzjg6njg7zjg6Hjg7MSCwoJ44GG44Gp44KTEg4KDOOBneOBhuOCgeOCkxgB";
675+
//投票結果
676+
//string base64String = "Cj4KJEVoa0tFZ25IY21ka0pWbVJBUkYwU2RSMEpPMFVyaENPdC1ZSxIMCOSD+7UGENDE/tgBGggKBgjMyOOkASJJEkcKD+OCouODs+OCseODvOODiBIQCgzjg6njg7zjg6Hjg7MYABINCgnjgYbjganjgpMYABIRCgzjgZ3jgYbjgoHjgpMY6AcYAg==";
677+
//投票結果非表示(エラーなく無視する必要がある)
678+
//string base64String = "Cj4KJEVoa0tFZ2x4Zng2MkhGbVJBUkdkQzVvQ0FGOUlxUkNPdC1ZSxIMCKv/+rUGEND7tYYCGggKBgjMyOOkASICEgA=";
679+
680+
//Base64文字列をbyte[] に変換
681+
//byte[] byteArray = Convert.FromBase64String(base64String);
682+
//var chunkedMessage = ChunkedMessage.Parser.ParseFrom(byteArray);
683+
//await ProcessChunkedMessage(chunkedMessage);
684+
644685
var segmentServer = new SegmentServerClient(Uri, ProcessChunkedMessage);
645686
_segmentServers.Add(segmentServer);
646687
var task = segmentServer.doConnect();
@@ -695,7 +736,7 @@ public async Task ProcessChunkedMessage(ChunkedMessage message)
695736

696737
var comment = new NicoSpi(Ichiba)
697738
{
698-
Text = notification.Ichiba,
739+
Text = Ichiba,
699740
PostedAt = date,
700741
};
701742
var metadata = new SpiMessageMetadata(comment, _options, _siteOptions)
@@ -810,6 +851,10 @@ public async Task ProcessChunkedMessage(ChunkedMessage message)
810851

811852
if (message.State.Enquete != null)
812853
{
854+
if(message.State.Enquete?.Question == null||message.State.Enquete?.Question == "")
855+
{
856+
return;
857+
}
813858
var vote = message.State.Enquete;
814859
if(!vote.Status.Equals(Status.Closed)) //0 = closedは送られてこないので無視
815860
{
@@ -864,31 +909,50 @@ public async Task ProcessChunkedMessage(ChunkedMessage message)
864909
var chat = message.Message.Chat;
865910
var content = chat.Content;
866911
var vpos = chat.Vpos;
867-
//string? userId = null;
868-
//if (chat.RawUserId != 0)
869-
//{
870-
// userId = chat.RawUserId.ToString();
871-
//}
912+
string userId = "";
913+
if (chat.RawUserId != 0&& chat.Name != null && chat.Name != "")
914+
{
915+
userId = chat.Name + "(" + chat.RawUserId.ToString() + ")";
916+
}
872917
var name = "";
873918
if (chat.HashedUserId != null && chat.HashedUserId != "")
874919
{
875-
name = chat.HashedUserId.Substring(2);//a:
920+
userId = chat.HashedUserId.Substring(2);//a:
876921
}
922+
923+
877924
var anonymity = true;
878925
var no = chat.No;
879926
if (chat.Name != null&&chat.Name != "")
880927
{
881-
name = chat.Name + "(" + chat.RawUserId + ")";
928+
name = chat.Name;// + "(" + chat.RawUserId + ")";
882929
anonymity = false;
883930
}
884931
var isPremium = chat.AccountStatus == 0 ? "normal" : "premium";
885-
if(isPremium == "premium")
932+
if (anonymity)
886933
{
887-
name = "a:premium:" + name;
934+
if (userId != "")
935+
{
936+
937+
if (isPremium == "premium")
938+
{
939+
userId = "a:premium:" + userId;
940+
}
941+
else
942+
{
943+
userId = "a:" + userId;
944+
}
945+
}
888946
}
889947
else
890948
{
891-
name = "a:" + name;
949+
if (userId != "")
950+
{
951+
if (isPremium == "premium")
952+
{
953+
userId = userId + "(premium)";
954+
}
955+
}
892956
}
893957
var at = Now();
894958
if (message.Meta?.At != null)
@@ -901,6 +965,10 @@ public async Task ProcessChunkedMessage(ChunkedMessage message)
901965
{
902966
thumbNailUrl = GetThumbnail(chat.RawUserId.ToString());
903967
}
968+
//if(userId == null)
969+
//{
970+
// userId = name;
971+
//}
904972

905973

906974
var comment = new NicoComment("")
@@ -910,21 +978,21 @@ public async Task ProcessChunkedMessage(ChunkedMessage message)
910978
Is184 = anonymity,
911979
PostedAt = at,
912980
Text = content,
913-
UserId = name,
981+
UserId = userId,
914982
UserName = name,
915983
ThumbnailUrl = thumbNailUrl,
916984
};
917985

918-
var user = GetUser(name);
986+
var user = GetUser(userId);
919987
bool isFirstComment;
920-
if (_userCommentCountDict.ContainsKey(name))
988+
if (_userCommentCountDict.ContainsKey(userId))
921989
{
922-
_userCommentCountDict[name]++;
990+
_userCommentCountDict[userId]++;
923991
isFirstComment = false;
924992
}
925993
else
926994
{
927-
_userCommentCountDict.AddOrUpdate(name, 1, (s, n) => n);
995+
_userCommentCountDict.AddOrUpdate(userId, 1, (s, n) => n);
928996
isFirstComment = true;
929997
}
930998

0 commit comments

Comments
 (0)