public void AddStreamdatatoXML(TwitchStreamData stream) { try { xmlprovider.AddStreamdata("twitch", stream); } catch(Exception ex) { Console.WriteLine(ex.ToString()); } }
// Twitch Double Game Title Fix public bool AddStreamdata(string provider ,TwitchStreamData stream) { Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture; bool answer = false; try { if (provider == "twitch") { internalStream iSStream; var streams = lStreams.Where(x => x.sChannel.ToLower() == stream.Stream.Channel.Name.ToString().ToLower()); if(streams.Count() >0) { iSStream = streams.First(); string game = ""; if (iSStream.sGame != stream.Stream.Channel.Game.ToString() && stream.Stream.Channel.Game.ToString() != "") { game = stream.Stream.Channel.Game.ToString(); } if (iSStream.sGame != stream.Stream.Game.ToString() && stream.Stream.Game.ToString() != "") { game = stream.Stream.Game.ToString(); } game = stripNonValidXMLCharacters(game); game = game.Replace(",", ""); game = game.Replace(";", ""); iSStream.sGame = game; iSStream.sUrl = stream.Stream.Channel.Url; saveFile("streams"); } } answer = true; }catch(Exception ex) { Console.WriteLine(ex.ToString()); } return answer; }
private void AddNewlyStartedStreams(TwitchRootObject obj) { if (obj == null || obj.Streams == null || obj.Streams.Count == 0) return; foreach(var stream in obj.Streams) { bool globalancounce = false; if(_streamData.Keys.Contains(stream.Channel.Name)) { globalancounce = true; } bool bTryAddresult = _streamData.TryAdd(stream.Channel.Name, new TwitchStreamData { Started = DateTime.Now, Stream = stream }); if(bTryAddresult) { // Probably helps differentiate between different Game Titles from Response string oldgame = xmlprovider.StreamInfo(stream.Channel.Name, "game"); string _game = ""; if (oldgame != stream.Channel.Game) { _game = stream.Channel.Game; } if (oldgame != stream.Game) { _game = stream.Game; } var _stream = new DeathmicChatbot.StreamInfo.Stream { Channel = stream.Channel.Name, Game = _game, Message = stream.Channel.Status }; var _streamdata = new StreamData { Stream = _stream, Started = DateTime.Now, StreamProvider = this }; TwitchStreamData _tstreamdata = new TwitchStreamData(); _tstreamdata.Started = DateTime.Now; _tstreamdata.Stream = new DeathmicChatbot.StreamInfo.Twitch.Stream(); _tstreamdata.Stream.Channel = new DeathmicChatbot.StreamInfo.Twitch.Channel(); _tstreamdata.Stream.Channel.Name = stream.Channel.Name; _tstreamdata.Stream.Channel.Mature = stream.Channel.Mature; _tstreamdata.Stream.Channel.ID = stream.Channel.ID; _tstreamdata.Stream.Channel.Delay = stream.Channel.Delay; _tstreamdata.Stream.Channel.Created_At = stream.Channel.Created_At; _tstreamdata.Stream.Channel.Display_Name = stream.Channel.Display_Name; _tstreamdata.Stream.Channel.Links = stream.Channel.Links; _tstreamdata.Stream.Channel.Profile_Banner = stream.Channel.Profile_Banner; _tstreamdata.Stream.Channel.Url = stream.Channel.Url; _tstreamdata.Stream.Channel.Updated_At = stream.Channel.Updated_At; _tstreamdata.Stream.Game = _game; _tstreamdata.Stream.Channel.Game = _game; AddStreamdatatoXML(_tstreamdata); StreamEventArgs streamEventArgs = new StreamEventArgs(_streamdata); StreamStarted(this, streamEventArgs); } if(!bTryAddresult && globalancounce) { string oldgame = xmlprovider.StreamInfo(stream.Channel.Name, "game"); string _game = ""; if (oldgame != stream.Channel.Game) { _game = stream.Channel.Game; } if (oldgame != stream.Game) { _game = stream.Game; } var _stream = new DeathmicChatbot.StreamInfo.Stream { Channel = stream.Channel.Name, Game = _game, Message = stream.Channel.Status }; var _streamdata = new StreamData { Stream = _stream, Started = DateTime.Now, StreamProvider = this }; StreamEventArgs streamEventArgs = new StreamEventArgs(_streamdata); StreamGlobalNotification(this, streamEventArgs); } } }