private void btSave_Click(object sender, EventArgs e)
        {
            var capArtist = LyricUtil.CapatalizeString(_mCurrentArtist);
            var capTitle  = LyricUtil.CapatalizeString(_mCurrentTitle);

            var lyrics = LyricUtil.FixLyrics(tbLyrics.Text);

            CurrentLyricsDatabase[DatabaseUtil.CorrectKeyFormat(capArtist, capTitle)].Lyrics = lyrics;
            DatabaseUtil.SerializeDB(CurrentLyricsDatabase);

            if (SettingManager.GetParamAsBool(SettingManager.AutomaticWriteToMusicTag, true))
            {
                TagReaderUtil.WriteLyrics(capArtist, capTitle, lyrics);
            }

            if (CurrentLyricsDatabase.Equals(MyLyricsUtils.LyricsMarkedDB))
            {
                if (SettingManager.GetParamAsBool(SettingManager.MoveLyricFromMarkedDatabase, true))
                {
                    MoveLyricToOtherDatabase();
                }
            }

            var lrc = new SimpleLRC(capArtist, capTitle, lyrics);

            if (lrc.IsValid && _parentMyLyricsSetup.cbUploadLrcAutomatically.Checked)
            {
                LrcFinder.SaveLrcWithGuid(lyrics, _parentMyLyricsSetup.MGuid);
            }

            btSave.Enabled = false;
            treeView.Focus();
        }
        private bool isSelectedLyricALRC()
        {
            if (treeView.SelectedNode != null && treeView.SelectedNode.Parent != null)
            {
                string artist = treeView.SelectedNode.Parent.Text;
                string title  = treeView.SelectedNode.Text;

                if (artist.Length != 0 && title.Length != 0)
                {
                    m_CurrentArtist = artist;
                    m_CurrentTitle  = LyricUtil.CapatalizeString(title);

                    string lyricsText = (string)CurrentDB[DatabaseUtil.CorrectKeyFormat(artist, title)].Lyrics;

                    SimpleLRC lrc = new SimpleLRC(artist, title, lyricsText);
                    if (lrc.IsValid)
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
            }
            return(false);
        }
        private static bool IsSelectedLyricLRC(string artist, string title)
        {
            if (artist.Length != 0 && title.Length != 0)
            {
                var lyricsText = CurrentLyricsDatabase[DatabaseUtil.CorrectKeyFormat(artist, title)].Lyrics;

                var lrc = new SimpleLRC(artist, title, lyricsText);
                if (lrc.IsValid)
                {
                    return(true);
                }
                return(false);
            }

            return(false);
        }
Example #4
0
        private void bw_DoWork(object sender, DoWorkEventArgs e)
        {
            var mDB     = MusicDatabase.Instance;
            var counter = 0;

            for (var i = 0; i < _artists.Count; i++)
            {
                if (bw.CancellationPending)
                {
                    return;
                }

                var artist = (string)_artists[i];
                bw.ReportProgress(counter, artist);

                mDB.GetSongsByArtist(artist, ref _songs);

                foreach (var song in _songs)
                {
                    var tag = TagReader.ReadTag(song.FileName);
                    if (tag != null && tag.Lyrics != string.Empty)
                    {
                        var capArtist = LyricUtil.CapatalizeString(tag.Artist);
                        var capTitle  = LyricUtil.CapatalizeString(tag.Title);

                        if (
                            DatabaseUtil.IsSongInLyricsDatabase(MyLyricsUtils.LyricsDB, capArtist, capTitle).Equals(
                                DatabaseUtil.LyricFound))
                        {
                            // If lyric exists in LyricsDb then only import (and overwrite) if it isn't an LRC-file
                            var lyricsText = MyLyricsUtils.LyricsDB[DatabaseUtil.CorrectKeyFormat(capArtist, capTitle)].Lyrics;
                            var lrc        = new SimpleLRC(capArtist, capTitle, lyricsText);
                            if (!lrc.IsValid)
                            {
                                _tags.Add(tag);
                                ++counter;
                            }
                        }
                        else
                        {
                            _tags.Add(tag);
                            ++counter;
                        }
                    }
                }
            }
        }
        private int InspectFileNameAndAddToDatabaseIfValidLyrics(string filePath)
        {
            var fileInfo = new FileInfo(filePath);

            if (fileInfo.Extension.Equals(".txt"))
            {
                var fileName         = fileInfo.Name;
                var index            = fileName.IndexOf("-", StringComparison.Ordinal);
                var fileStringArtist = fileName.Substring(0, index);
                var fileStringTitle  = fileName.Substring(index + 1);
                fileStringArtist = fileStringArtist.Trim();
                fileStringTitle  = fileStringTitle.Trim();

                index           = fileStringTitle.LastIndexOf('.');
                fileStringTitle = fileStringTitle.Substring(0, index);

                var    textReader = new StreamReader(filePath);
                string line;
                var    lyrics = "";

                while ((line = textReader.ReadLine()) != null)
                {
                    lyrics += line + Environment.NewLine;
                }
                lyrics = lyrics.Trim();
                textReader.Close();

                var capArtist = LyricUtil.CapatalizeString(fileStringArtist);
                var capTitle  = LyricUtil.CapatalizeString(fileStringTitle);

                return(AddSong(capArtist, capTitle, lyrics, "Text file") ? (int)TypeOfLyrics.Normal : (int)TypeOfLyrics.None);
            }

            _lrc = new SimpleLRC(filePath);

            if (_lrc.IsValid && _lrc.Artist.Length != 0 && _lrc.Title.Length != 0)
            {
                return(AddSong(_lrc.Artist, _lrc.Title, _lrc.LyricAsLRC.Trim(), "LRC-file") ? (int)TypeOfLyrics.LRC : (int)TypeOfLyrics.None);
            }

            return((int)TypeOfLyrics.None);
        }
        private void bw_DoWork(object sender, DoWorkEventArgs e)
        {
            var mDB     = MusicDatabase.Instance;
            var counter = 0;

            for (var i = 0; i < _artists.Count; i++)
            {
                if (bw.CancellationPending)
                {
                    return;
                }

                var artist = (string)_artists[i];
                Thread.Sleep(100); // Give the GUI thread some time to update
                bw.ReportProgress(counter, artist);
                try
                {
                    mDB.GetSongsByArtist(artist, ref _songs);

                    foreach (var song in _songs)
                    {
                        var capArtist = LyricUtil.CapatalizeString(song.Artist);
                        var capTitle  = LyricUtil.CapatalizeString(song.Title);

                        if (DatabaseUtil.IsSongInLyricsDatabase(MyLyricsUtils.LyricsDB, capArtist, capTitle).Equals(DatabaseUtil.LyricFound))
                        {
                            var lyric         = MyLyricsUtils.LyricsDB[DatabaseUtil.CorrectKeyFormat(capArtist, capTitle)].Lyrics;
                            var lrcInLyricsDb = new SimpleLRC(capArtist, capTitle, lyric);

                            // If the lyricsDB lyric is LRC always export
                            if (lrcInLyricsDb.IsValid)
                            {
                                if (TagReaderUtil.WriteLyrics(song.FileName, lyric))
                                {
                                    ++counter;
                                }
                                continue;
                            }

                            var tag = TagReader.ReadTag(song.FileName);

                            // If there is a musictag lyric
                            if (tag != null && !tag.Lyrics.Equals(string.Empty))
                            {
                                // if there is no LRC lyric in the tag, then simple export
                                var lrcInTag = new SimpleLRC(capArtist, capTitle, tag.Lyrics);
                                if (!lrcInTag.IsValid)
                                {
                                    if (TagReaderUtil.WriteLyrics(song.FileName, lyric))
                                    {
                                        ++counter;
                                    }
                                }
                            }
                            // Al if no lyric in musictag simple export
                            else
                            {
                                if (TagReaderUtil.WriteLyrics(song.FileName, lyric))
                                {
                                    ++counter;
                                }
                            }
                        }
                    }
                }
                catch (Exception)
                {
                    ;
                }
            }
        }
        private int inspectFileNameAndAddToDatabaseIfValidLyrics(string filePath)
        {
            TextReader textReader = null;


            FileInfo fileInfo = new FileInfo(filePath);


            if (fileInfo.Extension.Equals(".txt"))
            {
                string fileStringArtist = "";
                string fileStringTitle  = "";
                string fileName         = fileInfo.Name;


                int index = fileName.IndexOf("-");
                fileStringArtist = fileName.Substring(0, index);
                fileStringTitle  = fileName.Substring(index + 1);
                fileStringArtist = fileStringArtist.Trim();
                fileStringTitle  = fileStringTitle.Trim();

                index           = fileStringTitle.LastIndexOf('.');
                fileStringTitle = fileStringTitle.Substring(0, index);

                textReader = new StreamReader(filePath);
                string line   = "";
                string lyrics = "";

                while ((line = textReader.ReadLine()) != null)
                {
                    lyrics += line + Environment.NewLine;
                }
                lyrics = lyrics.Trim();
                textReader.Close();

                string capArtist = LyricUtil.CapatalizeString(fileStringArtist);
                string capTitle  = LyricUtil.CapatalizeString(fileStringTitle);

                if (AddSong(capArtist, capTitle, lyrics, "Text file"))
                {
                    return((int)TYPEOFLYRICS.NORMAL);
                }
                else
                {
                    return((int)TYPEOFLYRICS.NONE);
                }
            }
            else
            {
                lrc = new SimpleLRC(filePath);

                if (lrc.IsValid && lrc.Artist.Length != 0 && lrc.Title.Length != 0)
                {
                    if (AddSong(lrc.Artist, lrc.Title, lrc.Lyric.Trim(), "LRC-file"))
                    {
                        return((int)TYPEOFLYRICS.LRC);
                    }
                    else
                    {
                        return((int)TYPEOFLYRICS.NONE);
                    }
                }
                else
                {
                    return((int)TYPEOFLYRICS.NONE);
                }
            }
        }