public string replaceVariables(string commandText, string commandArgs) { JObject broadcastData = null; TimeSpan uptime = new TimeSpan(0); Quote q = null; foreach (String cmd in ChatHandler.getMessageVars()) { if (commandText.Contains("$" + cmd)) { switch (cmd) { case "QUOTE": if (q == null) { q = QuoteHandler.getInstance().getQuote(sender); } commandText = commandText.Replace("$QUOTE", q.getQuoteText()); break; case "QNUM": if (q == null) { q = QuoteHandler.getInstance().getQuote(sender); } commandText = commandText.Replace("$QNUM", q.getQuoteNumber().ToString()); break; case "ADDQUOTE": QuoteHandler.getInstance().addQuote(commandArgs, sender, senderIsMod); return(null); case "VOTEYES": QuoteHandler.getInstance().voteYes(sender); return(null); case "BROADCASTER": commandText = commandText.Replace("$BROADCASTER", ChatHandler.getChannel()); break; case "SENDER": commandText = commandText.Replace("$SENDER", sender); break; case "GAME": if (broadcastData == null) { broadcastData = ChatHandler.getBroadcastDataFromAPI(); } commandText = commandText.Replace("$GAME", broadcastData.Property("game").Value.ToString()); break; case "TITLE": if (broadcastData == null) { broadcastData = ChatHandler.getBroadcastDataFromAPI(); } commandText = commandText.Replace("$TITLE", broadcastData.Property("status").Value.ToString()); break; case "UPHOURS": if (uptime.Ticks == 0) { uptime = ChatHandler.getUptime(); } commandText = commandText.Replace("$UPHOURS", uptime.Hours.ToString()); break; case "UPMINUTES": if (uptime.Ticks == 0) { uptime = ChatHandler.getUptime(); } commandText = commandText.Replace("$UPMINUTES", uptime.Minutes.ToString()); break; case "8BALL": commandText = commandText.Replace("$8BALL", ChatHandler.get8BallResponse()); break; case "CALCULATOR": Expression e = new Expression(commandArgs); string x = e.calculate().ToString(); commandText = commandText.Replace("$CALCULATOR", x); break; case "COMMANDS": commandText = commandText.Replace("$COMMANDS", ChatHandler.commandsForHelp); break; case "SONGREQ": string id = ""; string res = "Queued."; try { Uri ytlink = new Uri(commandArgs); id = getIdFromYoutubeLink(ytlink); } catch { var searchListRequest = SongRequest.youtubeService.Search.List("snippet"); searchListRequest.Q = commandArgs; searchListRequest.MaxResults = 5; searchListRequest.Type = "video"; var searchListResponse = searchListRequest.Execute(); if (searchListResponse.Items.Count == 0) { return("No results found."); } foreach (var item in searchListResponse.Items) { if (item.Snippet.Title.ToLower().Contains("lyrics")) { id = item.Id.VideoId; res = "Queued \"" + item.Snippet.Title + "\"."; break; } } if (id == "") { id = searchListResponse.Items[0].Id.VideoId; res = "Queued \"" + searchListResponse.Items[0].Snippet.Title + "\"."; } } if (MainForm.songRequestForm == null) { string reply = Properties.Settings.Default.closedSrWindowResponse; reply = reply.Replace("$SENDER", sender); reply = reply.Replace("$BROADCASTER", ChatHandler.getChannel()); commandText = reply; } else if (id != null) { SongRequest sr = new SongRequest(id, sender); if (sr.embeddable == false) { string reply = Properties.Settings.Default.nonEmbeddableSrResponse; reply = reply.Replace("$SENDER", sender); reply = reply.Replace("$BROADCASTER", ChatHandler.getChannel()); return(reply); } MainForm.songRequestForm.queueSong(sr); return(res); } else { commandText = "Unable to parse link."; } break; case "QUEUETIME": commandText = commandText.Replace("$QUEUETIME", MainForm.songRequestForm.getQueueLength().ToString()); break; } } } return(commandText); }
internal void removeSong(SongRequest songRequest) { q.removeSong(songRequest); }