private void OnTimer2MinTick(object sender, EventArgs e) { var posts = Instagram.GetPosts(); if (posts.Count > 0) { bool petsExist = File.Exists($"{BotTools.BasePath}\\resources\\raz_pets.json"); var pastPets = petsExist ? BotTools.ReadFromJson <List <string> >("resources\\raz_pets") : new List <string>(); try { var newPets = posts.Where(p => !pastPets.Contains(p["permalink"])); if (newPets.Count() > 0) { foreach (var post in newPets) { BotTools.LogLine($"Saw new Raz pet -> {post["permalink"]}"); DiscordBot.PostToPetsChannel(post); pastPets.Add(post["permalink"]); using (var webClient = new System.Net.WebClient()) { webClient.DownloadFile(post["media_url"], $"{BotTools.BasePath}\\datasources\\raz.jpg"); } } BotTools.WriteToJson(pastPets, "resources\\raz_pets"); } } catch (Exception petsException) { BotTools.LogToSessionLogFile(petsException.ToString()); BotTools.LogLine("There was a problem loading past Raz Pets! See the session log for details."); } } }
public static string FillSongRequest(string requestBody, string songRequestor = "RazBot", bool bypassVet = false) { SongData songData = YTE.GetSongData(requestBody, requestor: songRequestor); if (songData.Duration <= TimeSpan.FromMinutes(10)) { if (BotTools.Settings["vet_requests"] && !bypassVet) { DiscordBot.PostVetRequestToDJChannel(songData); return($"@{songData.Requestor}, Your request has been submitted for review! razBot"); } else { try { Music.GetPlaylist("request").AddSong(songData); var placement = Music.GetPlaylist("request").Songs.Count; if (DownloadedSong != null && placement == 1) { if (DownloadedSong.IsRequest) { placement++; } else { DownloadedSong = null; GetPlaylist(LoadedPlaylist).CycleBack(); } } var placementWord = BotTools.GetPlacementWord(placement); Music.SavePlaylists(); return($"@{songData.Requestor}, Your request is {placementWord} in the queue! razCool"); } catch (ArgumentException) { BotTools.LogLine($"{songRequestor}'s request rejected: Already in queue"); return($"Sorry @{songRequestor}, that request is already queued!"); } catch (FormatException e) { BotTools.LogToSessionLogFile(e.ToString()); BotTools.LogLine($"{songRequestor}'s request rejected: Bad url"); return($"Sorry @{songRequestor}, I can't access a YouTube video from that link! It may not be available in my region, or the url may not be properly formatted."); } } } else { return($"{songData.Requestor}'s request was rejected: The audio was over 10 minutes long! razS"); } }
public MainWindow() { Icon = Properties.Resources.raz_zone; InitializeComponent(); InitializeSubForms(); windowsMP.PlayStateChange += new AxWMPLib._WMPOCXEvents_PlayStateChangeEventHandler(OnPlayStateChange); LoadControlSettings(); TwitchBot.Start(); TwitchBot.Commands.MainWindow = this; DiscordBot.Start(); GuildWars.GuildWarsInit(); gw2DataFetcher.RunWorkerAsync(); }
// Player State private void OnPlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e) { var newState = (WMPLib.WMPPlayState)e.newState; if (newState == WMPLib.WMPPlayState.wmppsPlaying) { loadingSong = false; trackPosition.TrackerColor = Color.FromArgb(24, 0, 36); trackPosition.TrackLineColor = Color.FromArgb(50, 225, 255); if (BotTools.Settings["announce_songs"] && currentSongAnnounced == false && Music.LoadedSong != null) { string playing = Music.LoadedSong.IsRequest ? $"Playing {Music.LoadedSong.Requestor}'s Request" : "Playing"; string message = $"**{playing}:** `{Music.LoadedSong.Title}`\n{Music.LoadedSong.URL}"; DiscordBot.PostToDJChannel(message); currentSongAnnounced = true; } if (!playerVisualizerUp) { pnlPlayerPanel.Width = 1; pnlPlayerPanel.Height = 1; Point newPos = pnlPlayerPanel.Location; newPos.Offset(105, 105); pnlPlayerPanel.Location = newPos; tmrPlayerVisualizerIn.Start(); } } if (newState == WMPLib.WMPPlayState.wmppsMediaEnded && Music.LoadedSong != null) { string playlistName = Music.LoadedSong.IsRequest ? "request" : Music.LoadedPlaylist; unloadPath = $"{BotTools.BasePath}\\playlists\\{playlistName}\\{Music.LoadedSong.ID}_Normalized.wav"; Music.LoadedSong = null; currentSongAnnounced = false; } }