Exemplo n.º 1
0
        static async Task MainAsync(string[] args)
        {
            Console.WriteLine("NowPlayingParser Initializing...");
            if (!System.IO.File.Exists("token.txt"))
            {
                Console.WriteLine("Please create 'token.txt' and write your token in it.\n");
                Console.WriteLine("Press any key to exit..");
                Console.ReadKey();
                Environment.Exit(1);
            }
            string token = System.IO.File.ReadAllText("token.txt");

            discord = new DiscordClient(new DiscordConfiguration {
                Token     = token,
                TokenType = TokenType.User
            });
            // setup iTunes event handler
            iTunesClient = new iTunesLib.iTunesApp();
            iTunesClient.OnPlayerPlayEvent += ITunesClient_OnPlayerPlayEvent;
            iTunesClient.OnPlayerStopEvent += ITunesClient_OnPlayerStopEvent;
            // connect to discord and get Username
            await discord.ConnectAsync();

            Console.WriteLine("Connected to Discord!");
            // get current user
            DiscordUser userObject = discord.CurrentUser;

            Console.WriteLine("Connected as: " + userObject.Username);
            // wait
            await Task.Delay(-1);
        }
        private void musicButton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                app = new iTunesLib.iTunesApp();
            }
            catch (Exception)
            {
                MessageBox.Show("オープンに失敗しました");
            }

            if (app != null)
            {
                try
                {
                    //何も再生していないと例外発生するぞ!(ここでは面倒なので何もしていない)
                    string trackName   = app.CurrentTrack.Name;
                    string trackArtist = app.CurrentTrack.Artist;
                    var    dialog      = new ModernDialog1("アーティスト:" + trackArtist + "\n曲名:" + trackName);
                    dialog.ShowDialog();
                    this.tweetInputBox.Text = "#nowplaying" + "\nアーティスト:" + trackArtist + "\n曲名:" + trackName;
                    //あとDisposeか何かしてやらないと、これを閉じた後もiTunesがまだ繋がってると認識するっぽい。
                }
                catch (Exception ex)
                {
                    var dialog = new ModernDialog1("何も再生していません");
                    dialog.ShowDialog();
                }
            }
        }
Exemplo n.º 3
0
        public MainWindow()
        {
            InitializeComponent();

            Closing += MainWindow_Closing;

            iTunes = new iTunesLib.iTunesApp();
            iTunes.OnAboutToPromptUserToQuitEvent += ITunesApp_OnAboutToPromptUserToQuitEvent;
        }
Exemplo n.º 4
0
 public void Start_iTunes()
 {
     try
     {
         it = new iTunesLib.iTunesApp();
     }
     catch (Exception)
     {
         //throw new Exception("iTunes not installed");
     }
 }
 private void openButton_Click(object sender, RoutedEventArgs e)
 {
     //     var player = new NowPlayingLib.iTunes();
     try
     {
         app = new iTunesLib.iTunesApp();
     }
     catch (Exception)
     {
         MessageBox.Show("オープンに失敗しました");
     }
 }
Exemplo n.º 6
0
        public void ReleaseComObject()
        {
            if (iTunes == null)
            {
                return;
            }

            iTunes.OnAboutToPromptUserToQuitEvent -= ITunesApp_OnAboutToPromptUserToQuitEvent;

            Marshal.ReleaseComObject(iTunes);
            iTunes = null;
        }
Exemplo n.º 7
0
        static void Main(string[] args)
        {
            iTunesLib.iTunesApp app = null;
            Console.WriteLine("ITunes Synchronization");
            try
            {

                app = new iTunesLib.iTunesApp();
                Console.WriteLine("ITunes Version " + app.Version);

                iTunesLib.IITLibraryPlaylist libraryPlaylist = app.LibraryPlaylist;
                if (libraryPlaylist == null)
                {
                    Console.WriteLine("Error: No library playlist detected");
                    Environment.Exit(-1);
                    return;
                }

                if (!Directory.Exists(ITunesSync.Default.MusicDirectory))
                {
                    Console.WriteLine("Error: Music Storage Directory Not Found ({0})");
                    Console.WriteLine("Check configuration settings file");
                    Environment.Exit(-1);
                    return;
                }

                Console.WriteLine("Music Storage Directory: {0}", ITunesSync.Default.MusicDirectory);
                Console.WriteLine("Delete Unresolved Files: {0}", ITunesSync.Default.DeleteUnresolvedTracks);
                Console.WriteLine("No Updates: {0}", ITunesSync.Default.NoUpdates);
                Console.WriteLine("Proceed with sync? (y/N)");
                ConsoleKeyInfo response = Console.ReadKey();
                if (response.Key != ConsoleKey.Y)
                {
                    Console.WriteLine("Info: ITunes Synchronization Aborted");
                    return;
                }

                Console.WriteLine("{0} Playlist, {1} assets", libraryPlaylist.Name, libraryPlaylist.Tracks.Count);

                var fileTracks = from libTrack in libraryPlaylist.Tracks.OfType<iTunesLib.IITTrack>() where libTrack.Kind == iTunesLib.ITTrackKind.ITTrackKindFile select libTrack;
                var cdTracks = from track in fileTracks where track is iTunesLib.IITFileOrCDTrack select track as iTunesLib.IITFileOrCDTrack;
                var resolvedTracks = from resolvedTrack in cdTracks.AsParallel() where !String.IsNullOrEmpty(resolvedTrack.Location) select resolvedTrack.Location.ToLowerInvariant();
                var unresolvedTracks = from unresolvedTrack in cdTracks where String.IsNullOrEmpty(unresolvedTrack.Location) select unresolvedTrack as iTunesLib.IITTrack;
                var discoveredMusic = from file in Directory.GetFiles(ITunesSync.Default.MusicDirectory, "*.mp3", SearchOption.AllDirectories).AsParallel() select file.ToLowerInvariant();

                var newFiles = discoveredMusic.Except(resolvedTracks);

                bool noUpdates = ITunesSync.Default.NoUpdates;

                if (noUpdates)
                {
                    Console.WriteLine("**** NoUpdate Mode Enabled : NO CHANGES WILL BE WRITTEN TO DISK ****");
                }

                StringBuilder shortPath = new StringBuilder(MAX_PATH);
                foreach (String file in newFiles)
                {
                    if (!File.Exists(file))
                    {
                        continue;
                    }
                    if (!noUpdates)
                    {
                        if (file.Length > MAX_PATH)
                        {
                            GetShortPathName(file, shortPath, shortPath.Capacity);
                            libraryPlaylist.AddFile(shortPath.ToString());
                            shortPath.Remove(0, shortPath.Length);
                        }
                        else
                        {
                            libraryPlaylist.AddFile(file);
                        }
                    }
                    Console.WriteLine("Info: Adding {0}", file);
                }

                bool deleteUnresolved = ITunesSync.Default.DeleteUnresolvedTracks && !noUpdates;
                // print out all unknown files
                unresolvedTracks.ForEach(unresolvedTrack => Program.DeleteTrack(unresolvedTrack, deleteUnresolved));
            }
            catch
            {
                if (app != null)
                {
                    ((IDisposable)app).Dispose();
                }
            }
        }
Exemplo n.º 8
0
        private void PlayTitleCommand_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            var processes = Process.GetProcessesByName("iTunes");
            if (processes.Length != 0)
            {
                var iTunes = new iTunesLib.iTunesApp();

                try
                {
                    var track = iTunes.CurrentTrack;

                    if (track == null)
                    {
                        return;
                    }

                    var text = string.Format(Settings.Default.NowPlayingFormat, track.Name, track.Album, track.Artist);

                    TweetTextBox.Text = TweetTextBox.Text.Insert(TweetTextBox.CaretIndex, text);
                    TweetTextBox.CaretIndex = TweetTextBox.Text.Length;
                }
                finally
                {
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(iTunes);

                    iTunes = null;
                }
            }
            else
            {
                ActiveWinamp.Application Winamp = null;

                try
                {
                    Winamp = new ActiveWinamp.Application();
                    var track = Winamp.Playlist[Winamp.Playlist.Position];

                    if (track == null)
                    {
                        return;
                    }

                    var text = string.Format(Settings.Default.NowPlayingFormat, track.Title, track.Album, track.Artist);

                    TweetTextBox.Text = TweetTextBox.Text.Insert(TweetTextBox.CaretIndex, text);
                    TweetTextBox.CaretIndex = TweetTextBox.Text.Length;
                }
                catch
                {
                }
                finally
                {
                    if (Winamp != null)
                    {
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(Winamp);
                        Winamp = null;
                    }
                }
            }
        }
Exemplo n.º 9
0
    public string ExecuteCommand(string cmd, string args)
    {
        try
        {
            switch (cmd.ToLower())
            {
            // values

            case "artist":
                return(it.CurrentTrack.Artist);

            case "title":
                return(it.CurrentTrack.Name);

            case "album":
                return(it.CurrentTrack.Album);

            case "bitrate":
                return(Convert.ToString(it.CurrentTrack.BitRate));

            case "bpm":
                return(Convert.ToString(it.CurrentTrack.BPM));

            case "composer":
                return(it.CurrentTrack.Composer);

            case "elapsedtime":
                int p = it.PlayerPosition;
                if (p % 60 < 10)
                {
                    return((p / 60) + ":0" + (p % 60));
                }
                else
                {
                    return((p / 60) + ":" + (p % 60));
                }

            case "genre":
                return(it.CurrentTrack.Genre);

            case "playedcount":
                return(Convert.ToString(it.CurrentTrack.PlayedCount));

            case "rating":
                return(Convert.ToString(it.CurrentTrack.Rating));

            case "samplerate":
                return(Convert.ToString(it.CurrentTrack.SampleRate));

            case "duration":
                return(it.CurrentTrack.Time);

            case "#":
                return(Convert.ToString(it.CurrentTrack.TrackNumber));

            case "year":
                return(Convert.ToString(it.CurrentTrack.Year));

            // actions

            case "playpause":
                it.PlayPause();
                break;

            case "stop":
                it.Stop();
                break;

            case "nexttrack":
                it.NextTrack();
                break;

            case "prevtrack":
                it.PreviousTrack();
                break;

            case "quit":
                it.Quit();
                break;

            case "play":
                it.Play();
                break;

            default:
                break;
            }
            return("");
        }
        catch (NullReferenceException)
        {
            return("Not Loaded");
        }
        catch (Exception)
        {
            System.Threading.Thread.Sleep(100);
            // error - re-create itunes object
            it = new iTunesLib.iTunesApp();
            try
            {
                return(ExecuteCommand(cmd, args));
            }
            catch (Exception exp)
            {
                // still won't work, spit out a message to the user, sorry.
                return(exp.Message);
            }

            // itunes must now work, handle the request
        }
    }
Exemplo n.º 10
0
        static void Main(string[] args)
        {
            iTunesLib.iTunesApp app = null;
            Console.WriteLine("ITunes Synchronization");
            try
            {
                app = new iTunesLib.iTunesApp();
                Console.WriteLine("ITunes Version " + app.Version);

                iTunesLib.IITLibraryPlaylist libraryPlaylist = app.LibraryPlaylist;
                if (libraryPlaylist == null)
                {
                    Console.WriteLine("Error: No library playlist detected");
                    Environment.Exit(-1);
                    return;
                }

                if (!Directory.Exists(ITunesSync.Default.MusicDirectory))
                {
                    Console.WriteLine("Error: Music Storage Directory Not Found ({0})");
                    Console.WriteLine("Check configuration settings file");
                    Environment.Exit(-1);
                    return;
                }

                Console.WriteLine("Music Storage Directory: {0}", ITunesSync.Default.MusicDirectory);
                Console.WriteLine("Delete Unresolved Files: {0}", ITunesSync.Default.DeleteUnresolvedTracks);
                Console.WriteLine("No Updates: {0}", ITunesSync.Default.NoUpdates);
                Console.WriteLine("Proceed with sync? (y/N)");
                ConsoleKeyInfo response = Console.ReadKey();
                if (response.Key != ConsoleKey.Y)
                {
                    Console.WriteLine("Info: ITunes Synchronization Aborted");
                    return;
                }

                Console.WriteLine("{0} Playlist, {1} assets", libraryPlaylist.Name, libraryPlaylist.Tracks.Count);

                var fileTracks     = from libTrack in libraryPlaylist.Tracks.OfType <iTunesLib.IITTrack>() where libTrack.Kind == iTunesLib.ITTrackKind.ITTrackKindFile select libTrack;
                var cdTracks       = from track in fileTracks where track is iTunesLib.IITFileOrCDTrack select track as iTunesLib.IITFileOrCDTrack;
                var resolvedTracks = from resolvedTrack in cdTracks.AsParallel() where !String.IsNullOrEmpty(resolvedTrack.Location) select resolvedTrack.Location.ToLowerInvariant();

                var unresolvedTracks = from unresolvedTrack in cdTracks where String.IsNullOrEmpty(unresolvedTrack.Location) select unresolvedTrack as iTunesLib.IITTrack;
                var discoveredMusic  = from file in Directory.GetFiles(ITunesSync.Default.MusicDirectory, "*.mp3", SearchOption.AllDirectories).AsParallel() select file.ToLowerInvariant();

                var newFiles = discoveredMusic.Except(resolvedTracks);

                bool noUpdates = ITunesSync.Default.NoUpdates;

                if (noUpdates)
                {
                    Console.WriteLine("**** NoUpdate Mode Enabled : NO CHANGES WILL BE WRITTEN TO DISK ****");
                }

                StringBuilder shortPath = new StringBuilder(MAX_PATH);
                foreach (String file in newFiles)
                {
                    if (!File.Exists(file))
                    {
                        continue;
                    }
                    if (!noUpdates)
                    {
                        if (file.Length > MAX_PATH)
                        {
                            GetShortPathName(file, shortPath, shortPath.Capacity);
                            libraryPlaylist.AddFile(shortPath.ToString());
                            shortPath.Remove(0, shortPath.Length);
                        }
                        else
                        {
                            libraryPlaylist.AddFile(file);
                        }
                    }
                    Console.WriteLine("Info: Adding {0}", file);
                }


                bool deleteUnresolved = ITunesSync.Default.DeleteUnresolvedTracks && !noUpdates;
                // print out all unknown files
                unresolvedTracks.ForEach(unresolvedTrack => Program.DeleteTrack(unresolvedTrack, deleteUnresolved));
            }
            catch
            {
                if (app != null)
                {
                    ((IDisposable)app).Dispose();
                }
            }
        }