public void IYouTubeCommentがXMLに正常に書き出されるか() { var optionsMock = new Mock <Options>(); optionsMock.Setup(o => o.IsEnabled).Returns(true); var messageMetadataMock = new Mock <IMessageMetadata>(); var pluginMock = new Mock <CommentGeneratorPlugin>() { CallBase = true }; pluginMock.Protected().Setup <string>("CommentXmlPath").Returns(FilePath); pluginMock.Protected().Setup <Options>("Options").Returns(optionsMock.Object); pluginMock.Protected().Setup <bool>("IsHcgSettingFileExists").Returns(true); pluginMock.Protected().Setup <DateTime>("GetCurrentDateTime").Returns(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).ToLocalTime()); var message = new YtComment() { NameItems = new List <IMessagePart> { Common.MessagePartFactory.CreateMessageText("name") }, CommentItems = new List <IMessagePart> { Common.MessagePartFactory.CreateMessageText("comment") }, }; var messageMetadata = messageMetadataMock.Object; var plugin = pluginMock.Object; plugin.OnMessageReceived(message, messageMetadata); plugin.Write(); if (!File.Exists(FilePath)) { Assert.Fail(); } string content; using (var sr = new System.IO.StreamReader(FilePath)) { content = sr.ReadToEnd(); } Assert.AreEqual("<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<log>\r\n <comment no=\"0\" time=\"0\" owner=\"0\" service=\"youtubelive\" handle=\"name\">comment</comment>\r\n</log>", content); }
static string GetWordCheck(YtComment jo) { List <string> lst = new List <string>(); jo.items.ForEach(t => { if (t.snippet != null) { AddCmts(t.snippet, lst); } }); WebClient client = new WebClient(); System.Collections.Specialized.NameValueCollection formData = new System.Collections.Specialized.NameValueCollection(); formData["comments"] = JsonConvert.SerializeObject(lst); byte[] resp = client.UploadValues(@"http://vulgarity-validator.immanuel.co/Profane/Comments", formData); return(System.Text.Encoding.UTF8.GetString(resp)); }
public static string Validate(string clientid, string url) { var hubContext = GlobalHost.ConnectionManager.GetHubContext <ProgressHub>(); //hubContext.Clients.User(clientid).progress("Called from Controller"); hubContext.Clients.Client(clientid).progress("getting video info.."); string uid = GetYid(url); WebClient client = new WebClient(); string json = client.DownloadString("https://www.googleapis.com/youtube/v3/videos?part=statistics&key=AIzaSyBRhULlCbQcdBk_HLFrpP-UU6VlyXInAPQ&id=" + uid); YtVideo jo1 = JsonConvert.DeserializeObject <YtVideo>(json); hubContext.Clients.Client(clientid).progress("getting video comments..."); json = client.DownloadString("https://www.googleapis.com/youtube/v3/commentThreads?key=AIzaSyBRhULlCbQcdBk_HLFrpP-UU6VlyXInAPQ&textFormat=plainText&part=snippet&maxResults=100&videoId=" + uid); YtComment jo = JsonConvert.DeserializeObject <YtComment>(json); hubContext.Clients.Client(clientid).progress("validating the feed..."); var rest = GetWordCheck(jo); hubContext.Clients.Client(clientid).progress("Completed..."); return(GetRating(rest, jo1)); }
static void Main(string[] args) { string url = "https://www.youtube.com/watch?v=rWSSSzM7Nbg"; //url = "https://www.youtube.com/embed/BmOpD46eZoA?start=36&end=65"; url = "https://www.youtube.com/watch?v=2Vv-BfVoq4g&list=PLx0sYbCqOb8TBPRdmBHs5Iftvv9TPboYG"; //url = "http://immanuel.co/"; //url = ""; url = "rWSSSzM7Nbg"; //var uid = Regex.Match(url, @"(?:youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^""&?\/ ]{11})").Groups[1].Value; //var uid1 = Regex.Match(url, @"(?:youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^""&?\/ ]{11})").Groups[1].Value; //Works fine var regexString = @"^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*"; var vvvl = Regex.Match(url, regexString); var uid3 = vvvl.Groups[2].Value; uid3 = string.IsNullOrEmpty(uid3) ? url : uid3; WebClient client = new WebClient(); string json = client.DownloadString("https://www.googleapis.com/youtube/v3/commentThreads?key=AIzaSyBRhULlCbQcdBk_HLFrpP-UU6VlyXInAPQ&textFormat=plainText&part=snippet&maxResults=100&videoId=" + uid3); YtComment jo = JsonConvert.DeserializeObject <YtComment>(json); json = client.DownloadString("https://www.googleapis.com/youtube/v3/videos?part=statistics&key=AIzaSyBRhULlCbQcdBk_HLFrpP-UU6VlyXInAPQ&id=" + uid3); YtVideo jo1 = JsonConvert.DeserializeObject <YtVideo>(json); Console.WriteLine(uid3); //HtmlDocument doc = new HtmlDocument(); //WebClient client = new WebClient(); //string html = client.DownloadString("https://www.googleapis.com/youtube/v3/commentThreads?key=AIzaSyBRhULlCbQcdBk_HLFrpP-UU6VlyXInAPQ&textFormat=plainText&part=snippet&videoId=9EVeC7jmdtc"); //doc.LoadHtml(html); //HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//div"); //YtComment jo = JsonConvert.DeserializeObject<YtComment>(File.ReadAllText(@"C:\Immi\Personal\MyProjects\you-dl\Immanuel.Ydl\Immanuel.Yt.Cmments.Feedback\Test.Scrape\YT_Comment_1.json")); //YtVideo jo1 = JsonConvert.DeserializeObject<YtVideo>(File.ReadAllText(@"C:\Immi\Personal\MyProjects\you-dl\Immanuel.Ydl\Immanuel.Yt.Cmments.Feedback\Test.Scrape\YT_Vid.json")); //JObject dd = JsonConvert.DeserializeObject<JObject>(File.ReadAllText(@"C:\Immi\Personal\MyProjects\you-dl\Immanuel.Ydl\Immanuel.Yt.Cmments.Feedback\Immanuel.Yt.Cmments.Feedback\App_Data\en-EN\Vulgar.json")); //List<string> vulgar = JsonConvert.DeserializeObject<List<string>>(dd.GetValue("vulgar").ToString()); //dd = JsonConvert.DeserializeObject<JObject>(File.ReadAllText(@"C:\Immi\Personal\MyProjects\you-dl\Immanuel.Ydl\Immanuel.Yt.Cmments.Feedback\Immanuel.Yt.Cmments.Feedback\App_Data\en-EN\Ugly.json")); //List<string> ugly = JsonConvert.DeserializeObject<List<string>>(dd.GetValue("ugly").ToString()); //dd = JsonConvert.DeserializeObject<JObject>(File.ReadAllText(@"C:\Immi\Personal\MyProjects\you-dl\Immanuel.Ydl\Immanuel.Yt.Cmments.Feedback\Immanuel.Yt.Cmments.Feedback\App_Data\en-EN\Positive.json")); //List<string> positive = JsonConvert.DeserializeObject<List<string>>(dd.GetValue("positive").ToString()); //dd = JsonConvert.DeserializeObject<JObject>(File.ReadAllText(@"C:\Immi\Personal\MyProjects\you-dl\Immanuel.Ydl\Immanuel.Yt.Cmments.Feedback\Immanuel.Yt.Cmments.Feedback\App_Data\en-EN\Offensive.json")); //List<string> offensive = JsonConvert.DeserializeObject<List<string>>(dd.GetValue("offensive").ToString()); //dd = JsonConvert.DeserializeObject<JObject>(File.ReadAllText(@"C:\Immi\Personal\MyProjects\you-dl\Immanuel.Ydl\Immanuel.Yt.Cmments.Feedback\Immanuel.Yt.Cmments.Feedback\App_Data\en-EN\Negative.json")); //List<string> negative = JsonConvert.DeserializeObject<List<string>>(dd.GetValue("negative").ToString()); //dd = JsonConvert.DeserializeObject<JObject>(File.ReadAllText(@"C:\Immi\Personal\MyProjects\you-dl\Immanuel.Ydl\Immanuel.Yt.Cmments.Feedback\Immanuel.Yt.Cmments.Feedback\App_Data\en-EN\Insult.json")); //List<string> insult = JsonConvert.DeserializeObject<List<string>>(dd.GetValue("insult").ToString()); //dd = JsonConvert.DeserializeObject<JObject>(File.ReadAllText(@"C:\Immi\Personal\MyProjects\you-dl\Immanuel.Ydl\Immanuel.Yt.Cmments.Feedback\Immanuel.Yt.Cmments.Feedback\App_Data\en-EN\Harsh.json")); //List<string> harsh = JsonConvert.DeserializeObject<List<string>>(dd.GetValue("harsh").ToString()); ////dd = JsonConvert.DeserializeObject<JObject>(File.ReadAllText(@"C:\Immi\Personal\MyProjects\you-dl\Immanuel.Ydl\Immanuel.Yt.Cmments.Feedback\Immanuel.Yt.Cmments.Feedback\App_Data\en-EN\Complaint.json")); ////List<string> complaint = JsonConvert.DeserializeObject<List<string>>(dd.GetValue("complaint").ToString()); //dd = JsonConvert.DeserializeObject<JObject>(File.ReadAllText(@"C:\Immi\Personal\MyProjects\you-dl\Immanuel.Ydl\Immanuel.Yt.Cmments.Feedback\Immanuel.Yt.Cmments.Feedback\App_Data\en-EN\Apologizing.json")); //List<string> apologize = JsonConvert.DeserializeObject<List<string>>(dd.GetValue("apologize").ToString()); //string text = "Why pay 400 for 3 instruments when you can get all 3 for 400 each! oh wait...."; //var sents = text.Split('.').ToList(); //List<string> wrds = new List<string>(); //sents.ForEach(t => wrds.AddRange(t.Split(' '))); //var vulgarinter = vulgar.Intersect(wrds, StringComparer.OrdinalIgnoreCase).ToList(); //vulgarinter = vulgar.Intersect(sents, StringComparer.OrdinalIgnoreCase).ToList(); //var uglyinter = ugly.Intersect(wrds, StringComparer.OrdinalIgnoreCase).ToList(); //uglyinter = ugly.Intersect(sents, StringComparer.OrdinalIgnoreCase).ToList(); //var positiveinter = positive.Intersect(wrds, StringComparer.OrdinalIgnoreCase).ToList(); //positiveinter = positive.Intersect(sents, StringComparer.OrdinalIgnoreCase).ToList(); //var offensiveinter = offensive.Intersect(wrds, StringComparer.OrdinalIgnoreCase).ToList(); //offensiveinter = offensive.Intersect(sents, StringComparer.OrdinalIgnoreCase).ToList(); //var negativeinter = negative.Intersect(wrds, StringComparer.OrdinalIgnoreCase).ToList(); //negativeinter = negative.Intersect(sents, StringComparer.OrdinalIgnoreCase).ToList(); //var insultinter = insult.Intersect(wrds, StringComparer.OrdinalIgnoreCase).ToList(); //insultinter = insult.Intersect(sents, StringComparer.OrdinalIgnoreCase).ToList(); //var harshinter = harsh.Intersect(wrds, StringComparer.OrdinalIgnoreCase).ToList(); //harshinter = harsh.Intersect(sents, StringComparer.OrdinalIgnoreCase).ToList(); //var apologizeinter = apologize.Intersect(wrds, StringComparer.OrdinalIgnoreCase).ToList(); //apologizeinter = apologize.Intersect(sents, StringComparer.OrdinalIgnoreCase).ToList(); Console.ReadKey(); }