/// <summary> /// コメント一覧を取得する(非公開API) /// </summary> /// <param name="live_id"></param> /// <param name="lastCommentId"></param> /// <param name="f"></param> /// <param name="count"></param> public static async Task <(Low.ListAll.Comment[], string raw)> GetListAll(IDataServer dataSource, string broadcasterName, long live_id, long lastCommentId, int from, int count, CookieContainer cc) { var url = $"https://twitcasting.tv/{broadcasterName}/userajax.php?c=listall&m={live_id}&k={lastCommentId}&f={from}&n={count}"; var str = await dataSource.GetAsync(url, cc); var obj = Tools.Deserialize <Low.ListAll.RootObject>(str); return(obj.Comments, str); }
/// <summary> /// (非公開API) /// </summary> /// <param name="live_id"></param> /// <param name="n"></param> /// <param name="lastCommentId"></param> public static async Task <(List <LowObject.Comment> LowComments, int Cnum, string raw)> GetListUpdate(IDataServer dataSource, string broadcaster, long live_id, int cnum, long lastCommentId, CookieContainer cc) { var url = $"http://twitcasting.tv/{broadcaster}/userajax.php?c=listupdate&m={live_id}&n={cnum}&k={lastCommentId}"; var str = await dataSource.GetAsync(url, cc); if (str == "[]") { return(new List <LowObject.Comment>(), cnum, str); } var obj = Tools.Deserialize <LowObject.ListUpdate>(str); var comments = obj.comment; var newCnum = obj.cnum; return(comments, newCnum, str); }
internal static async Task <(Low.ResponseToPost.RootObject, string raw)> PostCommentAsync( IDataServer dataSource, string broadcasterId, long liveId, long lastCommentId, string comment, CookieContainer cc) { var url = $"https://twitcasting.tv/{broadcasterId}/userajax.php?c=post"; var data = new Dictionary <string, string> { { "m", liveId.ToString() }, { "s", comment }, { "o", broadcasterId }, { "k", lastCommentId.ToString() }, { "nt", "2" }, }; var str = await dataSource.PostAsync(url, data, cc); var obj = Tools.Deserialize <Low.ResponseToPost.RootObject>(str); return(obj, str); }
private static IInternalMessage ParseEachItem(dynamic item) { var raw = (string)item.ToString(); if (item.type == "comment") { var comment = Tools.Deserialize <Low.Comment.RootObject>(raw); string profileImageUrl; if (comment.Author.ProfileImage.StartsWith("//")) { profileImageUrl = "https:" + comment.Author.ProfileImage; } else { profileImageUrl = comment.Author.ProfileImage; } var inter = new InternalComment { Id = comment.Id, Message = comment.Message, RawMessage = comment.RawMessage, HasMention = comment.HasMention, CreatedAt = UnixTime2DateTime(comment.CreatedAt / 1000), SpecialImage = comment.SpecialImage, UserId = comment.Author.Id, UserName = comment.Author.ScreenName,//2020/01/04 Twicasのバグだろうか。NameとScreenNameが逆な気がする ScreenName = comment.Author.Name, ProfileImageUrl = profileImageUrl, Grade = comment.Author.Grade, Raw = raw, }; return(inter); } else { return(new UnknownMessage { Raw = raw }); } }