Exemple #1
0
        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.");
                }
            }
        }
Exemple #2
0
        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");
            }
        }
Exemple #3
0
        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();
        }
Exemple #4
0
        // 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;
            }
        }