From: <sa...@us...> - 2009-05-19 14:59:17
|
Revision: 2866 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2866&view=rev Author: saamand Date: 2009-05-19 14:59:09 +0000 (Tue, 19 May 2009) Log Message: ----------- Modified Paths: -------------- trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/LrcFinder.cs trunk/plugins/MyLyrics/My Lyrics/DatabaseUtil.cs trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/ExportTags.cs trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/ImportTags.cs trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/LyricsLibrary.cs trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/MusicDatabaseBrowse.cs trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/MyLyricsSetup.Designer.cs trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/MyLyricsSetup.cs trunk/plugins/MyLyrics/My Lyrics/MyLyrics.cs trunk/plugins/MyLyrics/My Lyrics/MyLyrics.csproj Modified: trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/LrcFinder.cs =================================================================== --- trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/LrcFinder.cs 2009-05-18 13:35:16 UTC (rev 2865) +++ trunk/plugins/MyLyrics/LyricsEngine/LyricsSites/LrcFinder.cs 2009-05-19 14:59:09 UTC (rev 2866) @@ -36,16 +36,8 @@ try { - if (string.IsNullOrEmpty(Domain)) - { - string[] domains = lrcFinder.NewDomain(); - Random r = new Random(); - Domain = domains[r.Next(domains.Length)] as string; - } + lrcFinder.Url = GetUrl(); - lrcFinder.Url = Domain + @"/LrcFinder.asmx"; - lrcFinder.RequestEncoding = Encoding.UTF8; - lrc = lrcFinder.FindLRC(this.artist, this.title); } catch (Exception e) @@ -79,12 +71,7 @@ try { - if (string.IsNullOrEmpty(Domain)) - { - string[] domains = lrcFinder.NewDomain(); - Random r = new Random(); - Domain = domains[r.Next(domains.Length)] as string; - } + lrcFinder.Url = GetUrl(); lrcs = lrcFinder.FindLRCs(this.artist, this.title); } @@ -115,12 +102,7 @@ try { - if (string.IsNullOrEmpty(Domain)) - { - string[] domains = lrcFinder.NewDomain(); - Random r = new Random(); - Domain = domains[r.Next(domains.Length)] as string; - } + lrcFinder.Url = GetUrl(); string result = lrcFinder.SaveLRC(lrcFile); return result.Equals("DONE"); @@ -130,5 +112,37 @@ return false; } } + + public bool SaveLrcWithGuid(string lrcFile, Guid guid) + { + lrcFinder = new lrcfinder.LrcFinder(); + + try + { + lrcFinder.Url = GetUrl(); + + string result = lrcFinder.SaveLRCWithGuid(lrcFile, guid); + return result.Equals("DONE"); + } + catch + { + return false; + } + } + + private string GetUrl() + { + Domain = "http://testLRCFinder.profiler.nl"; + + if (string.IsNullOrEmpty(Domain)) + { + string[] domains = lrcFinder.NewDomain(); + Random r = new Random(); + Domain = domains[r.Next(domains.Length)] as string; + } + + return Domain + @"/LrcFinder.asmx"; + } + } } Modified: trunk/plugins/MyLyrics/My Lyrics/DatabaseUtil.cs =================================================================== --- trunk/plugins/MyLyrics/My Lyrics/DatabaseUtil.cs 2009-05-18 13:35:16 UTC (rev 2865) +++ trunk/plugins/MyLyrics/My Lyrics/DatabaseUtil.cs 2009-05-19 14:59:09 UTC (rev 2866) @@ -5,6 +5,7 @@ using System.Runtime.Serialization.Formatters.Binary; using LyricsEngine; +using LyricsEngine.LRC; namespace MyLyrics { @@ -15,44 +16,77 @@ internal const int LYRIC_NOT_FOUND = -1; internal const int LYRIC_MARKED = 0; internal const int LYRIC_FOUND = 1; + internal const int LRC_FOUND = 2; + internal const int LRC_NOT_FOUND = 3; - internal static int IsTrackInLyricsDatabase(LyricsDatabase lyricDB, string artist, string title) + internal static int IsSongInLyricsDatabase(LyricsDatabase lyricDB, string artist, string title) { string lyricText = ""; - try + + string capatalizedArtist = LyricUtil.CapatalizeString(artist); + string capatalizedTitle = LyricUtil.CapatalizeString(title); + + string key = CorrectKeyFormat(capatalizedArtist, capatalizedTitle); + + if (lyricDB.ContainsKey(key)) { - string capatalizedArtist = LyricUtil.CapatalizeString(artist); - string capatalizedTitle = LyricUtil.CapatalizeString(title); + lyricText = lyricDB[key].Lyrics; - lyricText = lyricDB[CorrectKeyFormat(capatalizedArtist, capatalizedTitle)].Lyrics; + if (lyricText.Equals(MARK)) + { + return LYRIC_MARKED; + } + else + { + return LYRIC_FOUND; + } } - catch + else { return LYRIC_NOT_FOUND; } + } - if (lyricText.Equals(MARK)) + internal static int IsSongInLyricsMarkedDatabase(LyricsDatabase lyricMarkedDB, string artist, string title) + { + string key = DatabaseUtil.CorrectKeyFormat(LyricUtil.CapatalizeString(artist), LyricUtil.CapatalizeString(title)); + + if (lyricMarkedDB.ContainsKey(key)) { return LYRIC_MARKED; } else { - return LYRIC_FOUND; + return LYRIC_NOT_FOUND; } } - internal static int IsTrackInLyricsMarkedDatabase(LyricsDatabase lyricMarkedDB, string artist, string title) + internal static int IsSongInLyricsDatabaseAsLRC(LyricsDatabase lyricDB, string artist, string title) { - string lyricsText = ""; - try + string lyricText = ""; + + string capatalizedArtist = LyricUtil.CapatalizeString(artist); + string capatalizedTitle = LyricUtil.CapatalizeString(title); + + string key = CorrectKeyFormat(capatalizedArtist, capatalizedTitle); + + if (lyricDB.ContainsKey(key)) { - lyricsText = lyricMarkedDB[DatabaseUtil.CorrectKeyFormat(LyricUtil.CapatalizeString(artist), LyricUtil.CapatalizeString(title))].Lyrics; + lyricText = lyricDB[key].Lyrics; + + if (new SimpleLRC(capatalizedArtist, capatalizedTitle, lyricText).IsValid) + { + return LRC_FOUND; + } + else + { + return LYRIC_FOUND; + } } - catch + else { - return LYRIC_NOT_FOUND; + return LRC_NOT_FOUND; } - return LYRIC_MARKED; } @@ -64,12 +98,12 @@ public static void WriteToLyricsDatabase(LyricsDatabase lyricsDB, LyricsDatabase lyricsMarkedDB, string capArtist, string capTitle, string lyric, string site) { - if (DatabaseUtil.IsTrackInLyricsDatabase(lyricsDB, capArtist, capTitle).Equals(DatabaseUtil.LYRIC_NOT_FOUND)) + if (DatabaseUtil.IsSongInLyricsDatabase(lyricsDB, capArtist, capTitle).Equals(DatabaseUtil.LYRIC_NOT_FOUND)) { lyricsDB.Add(DatabaseUtil.CorrectKeyFormat(capArtist, capTitle), new LyricsItem(capArtist, capTitle, lyric, site)); } - if (DatabaseUtil.IsTrackInLyricsMarkedDatabase(lyricsMarkedDB, capArtist, capTitle).Equals(DatabaseUtil.LYRIC_MARKED)) + if (DatabaseUtil.IsSongInLyricsMarkedDatabase(lyricsMarkedDB, capArtist, capTitle).Equals(DatabaseUtil.LYRIC_MARKED)) { lyricsMarkedDB.Remove(DatabaseUtil.CorrectKeyFormat(capArtist, capTitle)); } @@ -80,14 +114,14 @@ LyricsDatabase otherDatabase = GetOtherLyricsDatabase(currentLyricsDB); string key = DatabaseUtil.CorrectKeyFormat(capArtist, capTitle); - if (DatabaseUtil.IsTrackInLyricsDatabase(currentLyricsDB, capArtist, capTitle).Equals(DatabaseUtil.LYRIC_NOT_FOUND) == false) + if (DatabaseUtil.IsSongInLyricsDatabase(currentLyricsDB, capArtist, capTitle).Equals(DatabaseUtil.LYRIC_NOT_FOUND) == false) { currentLyricsDB.Remove(key); } currentLyricsDB.Add(key, new LyricsItem(capArtist, capTitle, lyric, site)); - if (DatabaseUtil.IsTrackInLyricsMarkedDatabase(otherDatabase, capArtist, capTitle).Equals(DatabaseUtil.LYRIC_MARKED)) + if (DatabaseUtil.IsSongInLyricsMarkedDatabase(otherDatabase, capArtist, capTitle).Equals(DatabaseUtil.LYRIC_MARKED)) { otherDatabase.Remove(DatabaseUtil.CorrectKeyFormat(capArtist, capTitle)); } Modified: trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/ExportTags.cs =================================================================== --- trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/ExportTags.cs 2009-05-18 13:35:16 UTC (rev 2865) +++ trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/ExportTags.cs 2009-05-19 14:59:09 UTC (rev 2866) @@ -79,7 +79,7 @@ string capArtist = LyricsEngine.LyricUtil.CapatalizeString(song.Artist); string capTitle = LyricsEngine.LyricUtil.CapatalizeString(song.Title); - if (DatabaseUtil.IsTrackInLyricsDatabase(MyLyricsSettings.LyricsDB, capArtist, capTitle).Equals(DatabaseUtil.LYRIC_FOUND)) + if (DatabaseUtil.IsSongInLyricsDatabase(MyLyricsSettings.LyricsDB, capArtist, capTitle).Equals(DatabaseUtil.LYRIC_FOUND)) { string lyric = MyLyricsSettings.LyricsDB[DatabaseUtil.CorrectKeyFormat(capArtist, capTitle)].Lyrics; Modified: trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/ImportTags.cs =================================================================== --- trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/ImportTags.cs 2009-05-18 13:35:16 UTC (rev 2865) +++ trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/ImportTags.cs 2009-05-19 14:59:09 UTC (rev 2866) @@ -78,7 +78,7 @@ string capArtist = LyricsEngine.LyricUtil.CapatalizeString(tag.Artist); string capTitle = LyricsEngine.LyricUtil.CapatalizeString(tag.Title); - if (DatabaseUtil.IsTrackInLyricsDatabase(MyLyricsSettings.LyricsDB, capArtist, capTitle).Equals(DatabaseUtil.LYRIC_FOUND)) + if (DatabaseUtil.IsSongInLyricsDatabase(MyLyricsSettings.LyricsDB, capArtist, capTitle).Equals(DatabaseUtil.LYRIC_FOUND)) { // If lyric exists in LyricsDb then only import (and overwrite) if it isn't an LRC-file string lyricsText = (string)MyLyricsSettings.LyricsDB[DatabaseUtil.CorrectKeyFormat(capArtist, capTitle)].Lyrics; Modified: trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/LyricsLibrary.cs =================================================================== --- trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/LyricsLibrary.cs 2009-05-18 13:35:16 UTC (rev 2865) +++ trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/LyricsLibrary.cs 2009-05-19 14:59:09 UTC (rev 2866) @@ -162,7 +162,7 @@ { LyricsItem item = new LyricsItem(artist, title, lyrics, site); - if (DatabaseUtil.IsTrackInLyricsDatabase(CurrentDB, artist, title).Equals(DatabaseUtil.LYRIC_NOT_FOUND)) + if (DatabaseUtil.IsSongInLyricsDatabase(CurrentDB, artist, title).Equals(DatabaseUtil.LYRIC_NOT_FOUND)) { CurrentDB.Add(DatabaseUtil.CorrectKeyFormat(artist, title), item); AddSong(item); @@ -274,7 +274,7 @@ m_CurrentArtist = LyricUtil.CapatalizeString(artist); m_CurrentTitle = LyricUtil.CapatalizeString(title); - if (DatabaseUtil.IsTrackInLyricsDatabase(CurrentDB, m_CurrentArtist, m_CurrentTitle).Equals(DatabaseUtil.LYRIC_FOUND)) + if (DatabaseUtil.IsSongInLyricsDatabase(CurrentDB, m_CurrentArtist, m_CurrentTitle).Equals(DatabaseUtil.LYRIC_FOUND)) { LyricsItem item = CurrentDB[DatabaseUtil.CorrectKeyFormat(m_CurrentArtist, m_CurrentTitle)]; string lyricsText = item.Lyrics; @@ -366,7 +366,7 @@ if (lrc.IsValid && parent.cbUploadLrcAutomatically.Checked) { LyricsEngine.LyricSites.LrcFinder lrcFinder = new LyricsEngine.LyricSites.LrcFinder(); - lrcFinder.SaveLrc(lyrics); + lrcFinder.SaveLrcWithGuid(lyrics, parent.m_guid); } btSave.Enabled = false; @@ -547,7 +547,7 @@ LyricsItem item = CurrentDB[key]; CurrentDB.Remove(key); - if (!DatabaseUtil.IsTrackInLyricsDatabase(otherDatabase, artist, item.Title).Equals(DatabaseUtil.LYRIC_NOT_FOUND)) + if (!DatabaseUtil.IsSongInLyricsDatabase(otherDatabase, artist, item.Title).Equals(DatabaseUtil.LYRIC_NOT_FOUND)) { otherDatabase.Add(key, item); } Modified: trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/MusicDatabaseBrowse.cs =================================================================== --- trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/MusicDatabaseBrowse.cs 2009-05-18 13:35:16 UTC (rev 2865) +++ trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/MusicDatabaseBrowse.cs 2009-05-19 14:59:09 UTC (rev 2866) @@ -184,7 +184,7 @@ ListViewItem lvi = new ListViewItem(capatalizedTitle); lvi.Tag = capatalizedTitle; - int status = DatabaseUtil.IsTrackInLyricsDatabase(MyLyricsSettings.LyricsDB, capatalizedArtist, capatalizedTitle); + int status = DatabaseUtil.IsSongInLyricsDatabase(MyLyricsSettings.LyricsDB, capatalizedArtist, capatalizedTitle); switch (status) { case DatabaseUtil.LYRIC_FOUND: @@ -197,7 +197,7 @@ lvi.SubItems.Add("-"); break; case DatabaseUtil.LYRIC_NOT_FOUND: - if (DatabaseUtil.IsTrackInLyricsMarkedDatabase(MyLyricsSettings.LyricsMarkedDB, capatalizedArtist, capatalizedTitle).Equals(DatabaseUtil.LYRIC_MARKED)) + if (DatabaseUtil.IsSongInLyricsMarkedDatabase(MyLyricsSettings.LyricsMarkedDB, capatalizedArtist, capatalizedTitle).Equals(DatabaseUtil.LYRIC_MARKED)) { lvi.SubItems.Add("MarkedDB"); lvi.SubItems.Add("-"); @@ -404,7 +404,7 @@ { string artist = lvi.SubItems[0].Text; string title = lvi.SubItems[1].Text; - if (DatabaseUtil.IsTrackInLyricsMarkedDatabase(MyLyricsSettings.LyricsMarkedDB, artist, title).Equals(DatabaseUtil.LYRIC_MARKED)) + if (DatabaseUtil.IsSongInLyricsMarkedDatabase(MyLyricsSettings.LyricsMarkedDB, artist, title).Equals(DatabaseUtil.LYRIC_MARKED)) { lvi.SubItems[2].Text = "MarkedDB"; if (cancelled) @@ -574,7 +574,7 @@ string capArtist = LyricUtil.CapatalizeString(artist); string capTitle = LyricUtil.CapatalizeString(title); - if (DatabaseUtil.IsTrackInLyricsMarkedDatabase(MyLyricsSettings.LyricsMarkedDB, capArtist, capTitle).Equals(DatabaseUtil.LYRIC_NOT_FOUND)) + if (DatabaseUtil.IsSongInLyricsMarkedDatabase(MyLyricsSettings.LyricsMarkedDB, capArtist, capTitle).Equals(DatabaseUtil.LYRIC_NOT_FOUND)) { MyLyricsSettings.LyricsMarkedDB.Add(DatabaseUtil.CorrectKeyFormat(capArtist, capTitle), new LyricsItem(capArtist, capTitle, "", "")); } Modified: trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/MyLyricsSetup.Designer.cs =================================================================== --- trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/MyLyricsSetup.Designer.cs 2009-05-18 13:35:16 UTC (rev 2865) +++ trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/MyLyricsSetup.Designer.cs 2009-05-19 14:59:09 UTC (rev 2866) @@ -1101,7 +1101,7 @@ this.rbUserSelectMode.AutoSize = true; this.rbUserSelectMode.Location = new System.Drawing.Point(208, 23); this.rbUserSelectMode.Name = "rbUserSelectMode"; - this.rbUserSelectMode.Size = new System.Drawing.Size(107, 17); + this.rbUserSelectMode.Size = new System.Drawing.Size(89, 17); this.rbUserSelectMode.TabIndex = 22; this.rbUserSelectMode.Tag = "Custom mode"; this.rbUserSelectMode.Text = "Custom mode"; Modified: trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/MyLyricsSetup.cs =================================================================== --- trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/MyLyricsSetup.cs 2009-05-18 13:35:16 UTC (rev 2865) +++ trunk/plugins/MyLyrics/My Lyrics/MyLyrics Configuration/MyLyricsSetup.cs 2009-05-19 14:59:09 UTC (rev 2866) @@ -82,6 +82,8 @@ bool m_automaticWriteToMusicTag = true; bool m_automaticReadFromToMusicTag = true; + private string m_guidString = string.Empty; + public Guid m_guid; string[] m_strippedPrefixStrings; @@ -280,6 +282,8 @@ tbLrcTaggingOffset.Text = xmlreader.GetValueAsString("myLyrics", "LrcTaggingOffset", "0"); tbLrcTaggingName.Text = xmlreader.GetValueAsString("myLyrics", "LrcTaggingName", ""); + m_guidString = ((string)xmlreader.GetValueAsString("myLyrics", "Guid", "")); + cbUploadLrcAutomatically.Checked = xmlreader.GetValue("myLyrics", "uploadLrcToLrcFinder").Equals("yes"); lbSongsLimitNote.Text = ("(You have currently " + m_TotalTitles.ToString() + " titles in your music database)"); @@ -314,6 +318,21 @@ } } } + + if (string.IsNullOrEmpty(m_guidString)) + { + m_guid = Guid.NewGuid(); + m_guidString = m_guid.ToString("P"); + + using (MediaPortal.Profile.Settings xmlwriter = new MediaPortal.Profile.Settings("MediaPortal.xml")) + { + xmlwriter.SetValue("myLyrics", "Guid", m_guidString); + } + } + else + { + m_guid = new Guid(m_guidString); + } } catch (Exception ex) { @@ -552,7 +571,7 @@ string capArtist = LyricUtil.CapatalizeString(artist); string capTitle = LyricUtil.CapatalizeString(title); - if (m_MarkSongsWhenNoLyricFound && DatabaseUtil.IsTrackInLyricsMarkedDatabase(MyLyricsSettings.LyricsMarkedDB, capArtist, capTitle).Equals(DatabaseUtil.LYRIC_NOT_FOUND)) + if (m_MarkSongsWhenNoLyricFound && DatabaseUtil.IsSongInLyricsMarkedDatabase(MyLyricsSettings.LyricsMarkedDB, capArtist, capTitle).Equals(DatabaseUtil.LYRIC_NOT_FOUND)) { MyLyricsSettings.LyricsMarkedDB.Add(DatabaseUtil.CorrectKeyFormat(capArtist, capTitle), new LyricsItem(capArtist, capTitle, "", "")); } @@ -721,24 +740,24 @@ string capArtist = LyricUtil.CapatalizeString(tag.Artist); string capTitle = LyricUtil.CapatalizeString(tag.Title); - if (DatabaseUtil.IsTrackInLyricsDatabase(MyLyricsSettings.LyricsDB, capArtist, capTitle).Equals(DatabaseUtil.LYRIC_NOT_FOUND)) + if (DatabaseUtil.IsSongInLyricsDatabase(MyLyricsSettings.LyricsDB, capArtist, capTitle).Equals(DatabaseUtil.LYRIC_NOT_FOUND)) { MyLyricsSettings.LyricsDB.Add(DatabaseUtil.CorrectKeyFormat(capArtist, capTitle), new LyricsItem(capArtist, capTitle, tag.Lyrics, "music tag")); } - if (DatabaseUtil.IsTrackInLyricsMarkedDatabase(MyLyricsSettings.LyricsMarkedDB, capArtist, capTitle).Equals(DatabaseUtil.LYRIC_MARKED)) + if (DatabaseUtil.IsSongInLyricsMarkedDatabase(MyLyricsSettings.LyricsMarkedDB, capArtist, capTitle).Equals(DatabaseUtil.LYRIC_MARKED)) { MyLyricsSettings.LyricsMarkedDB.Remove(DatabaseUtil.CorrectKeyFormat(capArtist, capTitle)); } } else { - int status = DatabaseUtil.IsTrackInLyricsDatabase(MyLyricsSettings.LyricsDB, song.Artist, song.Title); + int status = DatabaseUtil.IsSongInLyricsDatabase(MyLyricsSettings.LyricsDB, song.Artist, song.Title); bool isTrackInLyricsMarkedDatabase = true; if (!m_DisregardKnownLyric && status.Equals(DatabaseUtil.LYRIC_FOUND) - || (!m_DisregardMarkedLyric && ((isTrackInLyricsMarkedDatabase = DatabaseUtil.IsTrackInLyricsMarkedDatabase(MyLyricsSettings.LyricsMarkedDB, song.Artist, song.Title).Equals(DatabaseUtil.LYRIC_MARKED)) || status.Equals(DatabaseUtil.LYRIC_MARKED))) - || (status.Equals(DatabaseUtil.LYRIC_NOT_FOUND) && !DatabaseUtil.IsTrackInLyricsMarkedDatabase(MyLyricsSettings.LyricsMarkedDB, song.Artist, song.Title).Equals(DatabaseUtil.LYRIC_MARKED))) + || (!m_DisregardMarkedLyric && ((isTrackInLyricsMarkedDatabase = DatabaseUtil.IsSongInLyricsMarkedDatabase(MyLyricsSettings.LyricsMarkedDB, song.Artist, song.Title).Equals(DatabaseUtil.LYRIC_MARKED)) || status.Equals(DatabaseUtil.LYRIC_MARKED))) + || (status.Equals(DatabaseUtil.LYRIC_NOT_FOUND) && !DatabaseUtil.IsSongInLyricsMarkedDatabase(MyLyricsSettings.LyricsMarkedDB, song.Artist, song.Title).Equals(DatabaseUtil.LYRIC_MARKED))) { songNotKnown = 1; Modified: trunk/plugins/MyLyrics/My Lyrics/MyLyrics.cs =================================================================== --- trunk/plugins/MyLyrics/My Lyrics/MyLyrics.cs 2009-05-18 13:35:16 UTC (rev 2865) +++ trunk/plugins/MyLyrics/My Lyrics/MyLyrics.cs 2009-05-19 14:59:09 UTC (rev 2866) @@ -46,6 +46,9 @@ string m_skin = ""; + string m_guidString = null; + Guid m_guid; + bool m_newTrack = false; bool m_alreadyValidLRC = false; bool m_ValidLrcLyric = false; // A valid LRC-lyric always overwrites a normal lyric in both Lyrics db and music tag (if allowed) @@ -196,6 +199,7 @@ internal string m_LrcTaggingName = null; internal bool m_uploadLrcToLrcFinder = false; + internal bool m_confirmedNoUploadLrcToLrcFinder = false; SimpleLRC m_SimpleLrc; SimpleLRCTimeAndLineCollection m_LrcTimeCollection; @@ -257,12 +261,17 @@ StopThread(); m_newTrack = false; - m_artist = m_CurrentTrackTag.Artist.Trim(); - m_artist = m_artist.Replace("| ", ""); - m_artist = m_artist.Replace(" |", ""); - m_title = m_CurrentTrackTag.Title.Trim(); + if (m_CurrentTrackTag != null) + { + m_artist = m_CurrentTrackTag.Artist.Trim(); + m_artist = m_artist.Replace("| ", ""); + m_artist = m_artist.Replace(" |", ""); + m_artist = m_artist.Replace("''", "'"); + m_title = m_CurrentTrackTag.Title.Trim(); + m_title = m_title.Replace("''", "'"); - getAlbumArt(); + getAlbumArt(); + } } if (m_CurrentTrackTag != null) @@ -355,7 +364,7 @@ { ShowLRCtoEdit(); } - else if (DatabaseUtil.IsTrackInLyricsDatabase(m_LyricsDB, m_artist, m_title).Equals(DatabaseUtil.LYRIC_FOUND)) + else if (DatabaseUtil.IsSongInLyricsDatabase(m_LyricsDB, m_artist, m_title).Equals(DatabaseUtil.LYRIC_FOUND)) { LyricsItem item = m_LyricsDB[DatabaseUtil.CorrectKeyFormat(m_artist, m_title)]; m_LyricText = item.Lyrics; @@ -406,6 +415,8 @@ private void ShowLRCtoEdit() { + m_LyricText = m_LyricText.Trim(); + SimpleLRC lrc = new SimpleLRC(m_artist, m_title, m_LyricText); if (lrc.IsValid) @@ -426,6 +437,7 @@ { GUIControl.SetControlLabel(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_LINE + i, m_lines[i]); GUIControl.SetControlLabel(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_LINE_DONE + i, m_lines[i]); + GUIControl.SetControlLabel(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_TIME + i, "[xx:xx.xx]"); } } catch { ;} @@ -463,9 +475,12 @@ m_LrcTaggingName = ((string)xmlreader.GetValueAsString("myLyrics", "LrcTaggingName", "")); m_uploadLrcToLrcFinder = ((string)xmlreader.GetValueAsString("myLyrics", "uploadLrcToLrcFinder", "False")).ToString().Equals("yes") ? true : false; + m_confirmedNoUploadLrcToLrcFinder = ((string)xmlreader.GetValueAsString("myLyrics", "confirmedNoUploadLrcToLrcFinder", "False")).ToString().Equals("yes") ? true : false; m_skin = ((string)xmlreader.GetValueAsString("skin", "name", "Blue3")); + m_guidString = ((string)xmlreader.GetValueAsString("myLyrics", "Guid", "")); + m_crossfade = xmlreader.GetValueAsInt("audioplayer", "crossfade", 2000); m_Find = xmlreader.GetValueAsString("myLyrics", "find", ""); @@ -489,7 +504,22 @@ GUIControl.HideControl(GetID, (int)GUI_Lyrics_Controls.CONTROL_LyricWide_Scroll); } + if (string.IsNullOrEmpty(m_guidString)) + { + m_guid = Guid.NewGuid(); + m_guidString = m_guid.ToString("P"); + using (MediaPortal.Profile.Settings xmlwriter = new MediaPortal.Profile.Settings("MediaPortal.xml")) + { + xmlwriter.SetValue("myLyrics", "Guid", m_guidString); + } + } + else + { + m_guid = new Guid(m_guidString); + } + + m_strippedPrefixStrings = MediaPortalUtil.GetStrippedPrefixStringArray(); ArrayList sitesToSearch = new ArrayList(); @@ -661,8 +691,8 @@ } else if (m_selectedScreen == (int)MyLyricsSettings.Screen.LRC_PICK) { - m_basicScreenSelected = true; - FindLrc(); + //m_basicScreenSelected = true; + //FindLrc(); } } else if (action.m_key.KeyChar.Equals(115)) @@ -719,7 +749,7 @@ if (m_LrcTable != null && m_LrcTable.Rows.Count > 0) { - m_LyricText = m_LrcTable.Rows[0][3] as string; + m_LyricText = m_LrcTable.Rows[0][2] as string; m_SimpleLrc = new SimpleLRC(null, null, m_LyricText); StartShowingLrc(m_LyricText, true); @@ -918,6 +948,7 @@ if (m_SimpleLrc.IsValid) { StartShowingLrc(m_CurrentTrackTag.Lyrics, false); + SaveLyricToDatabase(m_artist, m_title, m_CurrentTrackTag.Lyrics, "music tag", true); return true; } } @@ -1122,15 +1153,7 @@ m_StatusText = ""; GUIControl.SetControlLabel(GetID, (int)GUI_General_Controls.CONTROL_LBStatus, m_StatusText); - // If lyricText is empty, the LRC file was pulled out of the music tag and is still not in the lyrics database - if (string.IsNullOrEmpty(lyricText)) - { - SaveLyricToDatabase(m_artist, m_title, m_CurrentTrackTag.Lyrics, "music tag", true); - } - else - { - m_LyricText = lyricText; - } + m_LyricText = lyricText; try { @@ -1191,10 +1214,10 @@ { for (int i = 0; i < m_TAG_IN_ROUND && m_LRCLinesTotal + i < m_lines.Length; i++) { - GUIControl.ShowControl(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_LINE + i); - GUIControl.SetControlLabel(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_TIME + i, ""); GUIControl.SetControlLabel(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_LINE + i, m_lines[m_tagRoundFinished * m_TAG_IN_ROUND + i]); GUIControl.SetControlLabel(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_LINE_DONE + i, m_lines[m_tagRoundFinished * m_TAG_IN_ROUND + i]); + GUIControl.ShowControl(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_LINE + i); + GUIControl.SetControlLabel(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_TIME + i, "[xx:xx.xx]"); } } catch { ;} @@ -1207,28 +1230,28 @@ string artist = LyricUtil.CapatalizeString(m_artist); string title = LyricUtil.CapatalizeString(m_title); - lyric.Append(string.Format("[ar:{0}]\n", artist)); - lyric.Append(string.Format("[ti:{0}]\n", title)); + lyric.AppendLine(string.Format("[ar:{0}]", artist)); + lyric.AppendLine(string.Format("[ti:{0}]", title)); if (!string.IsNullOrEmpty(m_LrcTaggingName)) { - lyric.Append(string.Format("[by:{0}]\n", m_LrcTaggingName)); + lyric.AppendLine(string.Format("[by:{0}]", m_LrcTaggingName)); } if (!string.IsNullOrEmpty(m_LrcTaggingOffset)) { - lyric.Append(string.Format("[offset:{0}]\n", m_LrcTaggingOffset)); + lyric.AppendLine(string.Format("[offset:{0}]", m_LrcTaggingOffset)); } - lyric.Append("[ap:MediaPortal]\n"); + lyric.AppendLine("[ap:MediaPortal]"); for (int i = 0; i < m_lines.Length; i++) { - lyric.Append(m_lines[i] + "\n"); + lyric.AppendLine(m_lines[i] + ""); } + lyric.Replace("\r", ""); string lyricAsString = lyric.ToString(); - int lastLineShift = lyricAsString.LastIndexOf("\n"); - lyricAsString = lyricAsString.Substring(0, lastLineShift); + //lyricAsString = lyricAsString.Substring(0, lastLineShift); m_LyricText = lyricAsString; SaveLyricToDatabase(artist, title, m_LyricText, "MyLyrics LRC Editor", true); @@ -1240,35 +1263,81 @@ SaveLyricToTagLists(m_CurrentTrackTag.FileName, m_LyricText); } + m_selectedScreen = (int)MyLyricsSettings.Screen.LRC_BASIC; + ShowLyricOnScreen(m_LyricText, "MediaPortal"); + // Upload LRC to LrcFinder if user has accepted in configuration if (m_uploadLrcToLrcFinder) { - LyricsEngine.LyricSites.LrcFinder lrcFinder = new LyricsEngine.LyricSites.LrcFinder(); + UploadLrcFile(m_LyricText); + } + else if (!m_confirmedNoUploadLrcToLrcFinder) + { + GUIDialogYesNo dlgYesNo = (GUIDialogYesNo)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_YES_NO); + if (dlgYesNo != null) + { + dlgYesNo.SetHeading("Upload to LRCFinder?"); - bool lrcUploaded = lrcFinder.SaveLrc(m_LyricText); + dlgYesNo.SetLine(1, string.Empty); + dlgYesNo.SetLine(2, "Upload this and future created"); + dlgYesNo.SetLine(3, "LRC files to LrcFinder?"); + dlgYesNo.DoModal(GetID); + if (dlgYesNo.IsConfirmed) + { + UploadLrcFile(m_LyricText); - if (lrcUploaded) - { - string status = "Your LRC was successfully uploaded"; - GUIControl.SetControlLabel(GetID, (int)GUI_LRC_Controls.CONTROL_LRCPICK_STATUS, status); + m_uploadLrcToLrcFinder = true; + + using (MediaPortal.Profile.Settings xmlwriter = new MediaPortal.Profile.Settings("MediaPortal.xml")) + { + xmlwriter.SetValue("myLyrics", "uploadLrcToLrcFinder", "yes"); + } + } + else + { + m_confirmedNoUploadLrcToLrcFinder = true; + + using (MediaPortal.Profile.Settings xmlwriter = new MediaPortal.Profile.Settings("MediaPortal.xml")) + { + xmlwriter.SetValue("myLyrics", "confirmedNoUploadLrcToLrcFinder", "yes"); + } + } } - else - { - string status = "LrcFinder could not be reached..."; - GUIControl.SetControlLabel(GetID, (int)GUI_LRC_Controls.CONTROL_LRCPICK_STATUS, status); - } - } - - m_selectedScreen = (int)MyLyricsSettings.Screen.LRC_BASIC; - ShowLyricOnScreen(m_LyricText, "MediaPortal"); } } } + + private void UploadLrcFile(string lrcFile) + { + LyricsEngine.LyricSites.LrcFinder lrcFinder = new LyricsEngine.LyricSites.LrcFinder(); + + bool lrcUploaded = lrcFinder.SaveLrcWithGuid(lrcFile, m_guid); + + if (lrcUploaded) + { + string status = "Your LRC was successfully uploaded"; + GUIControl.SetControlLabel(GetID, (int)GUI_LRC_Controls.CONTROL_LRCPICK_STATUS, status); + } + else + { + string status = "LrcFinder could not be reached..."; + GUIControl.SetControlLabel(GetID, (int)GUI_LRC_Controls.CONTROL_LRCPICK_STATUS, status); + } + } + private void RemoveLatestTagLine() { --m_LRCLinesTotal; + + if (m_LRCLinesTotal < 0) + { + m_LRCLinesTotal = 0; + return; + } + + string lastTimeStampTemp = m_lines[m_LRCLinesTotal].Substring(0, 9); m_lines[m_LRCLinesTotal] = m_lines[m_LRCLinesTotal].Substring(9); if (--m_currentLRCLineIndex < 0) @@ -1276,29 +1345,29 @@ m_currentLRCLineIndex = m_TAG_IN_ROUND - 1; --m_tagRoundFinished; - GUIControl.SetControlLabel(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_TIME + m_currentLRCLineIndex, ""); - GUIControl.SetControlLabel(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_LINE + m_currentLRCLineIndex, m_lines[m_LRCLinesTotal]); - GUIControl.SetControlLabel(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_LINE_DONE + m_currentLRCLineIndex, m_lines[m_LRCLinesTotal]); - try { - for (int i = 0; i < m_TAG_IN_ROUND - 1; i++) + for (int i = 0; i < m_TAG_IN_ROUND; i++) { - GUIControl.SetControlLabel(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_TIME + i, m_lines[m_tagRoundFinished * m_TAG_IN_ROUND + i].Substring(0, 8)); + GUIControl.SetControlLabel(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_TIME + i, m_lines[m_tagRoundFinished * m_TAG_IN_ROUND + i].Substring(0, 9)); GUIControl.SetControlLabel(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_LINE + i, m_lines[m_tagRoundFinished * m_TAG_IN_ROUND + i].Substring(9)); GUIControl.SetControlLabel(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_LINE_DONE + i, m_lines[m_tagRoundFinished * m_TAG_IN_ROUND + i].Substring(9)); + GUIControl.ShowControl(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_LINE_DONE + i); GUIControl.HideControl(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_LINE + i); } } catch { ;} + GUIControl.ShowControl(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_LINE + m_currentLRCLineIndex); + GUIControl.HideControl(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_LINE_DONE + m_currentLRCLineIndex); + GUIControl.SetControlLabel(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_TIME + m_currentLRCLineIndex, "[xx:xx.xx]"); + } else { - GUIControl.SetControlLabel(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_TIME + m_currentLRCLineIndex, ""); - GUIControl.SetControlLabel(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_LINE + m_currentLRCLineIndex, m_lines[m_LRCLinesTotal]); GUIControl.ShowControl(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_LINE + m_currentLRCLineIndex); GUIControl.HideControl(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_LINE_DONE + m_currentLRCLineIndex); + GUIControl.SetControlLabel(GetID, (int)GUI_LRC_Controls.CONTROL_EDIT_TIME + m_currentLRCLineIndex, "[xx:xx.xx]"); } } @@ -1423,18 +1492,23 @@ string capArtist = LyricUtil.CapatalizeString(artist); string capTitle = LyricUtil.CapatalizeString(title); - if (DatabaseUtil.IsTrackInLyricsDatabase(m_LyricsDB, capArtist, capTitle).Equals(DatabaseUtil.LYRIC_NOT_FOUND)) + if (DatabaseUtil.IsSongInLyricsDatabase(m_LyricsDB, capArtist, capTitle).Equals(DatabaseUtil.LYRIC_NOT_FOUND)) { + m_LyricsDB.Add(DatabaseUtil.CorrectKeyFormat(capArtist, capTitle), new LyricsItem(capArtist, capTitle, lyric, site)); + SaveDatabase(m_LyricsDBName, m_LyricsDB); + } + else if (!DatabaseUtil.IsSongInLyricsDatabaseAsLRC(m_LyricsDB, capArtist, capTitle).Equals(DatabaseUtil.LRC_FOUND)) + { m_LyricsDB[DatabaseUtil.CorrectKeyFormat(capArtist, capTitle)] = new LyricsItem(capArtist, capTitle, lyric, site); SaveDatabase(m_LyricsDBName, m_LyricsDB); } else if (lrc) { - m_LyricsDB.Add(DatabaseUtil.CorrectKeyFormat(capArtist, capTitle), new LyricsItem(capArtist, capTitle, lyric, site)); + m_LyricsDB[DatabaseUtil.CorrectKeyFormat(capArtist, capTitle)] = new LyricsItem(capArtist, capTitle, lyric, site); SaveDatabase(m_LyricsDBName, m_LyricsDB); } - if (DatabaseUtil.IsTrackInLyricsMarkedDatabase(m_LyricsMarkedDB, capArtist, capTitle).Equals(DatabaseUtil.LYRIC_MARKED)) + if (DatabaseUtil.IsSongInLyricsMarkedDatabase(m_LyricsMarkedDB, capArtist, capTitle).Equals(DatabaseUtil.LYRIC_MARKED)) { m_LyricsMarkedDB.Remove(DatabaseUtil.CorrectKeyFormat(capArtist, capTitle)); SaveDatabase(m_LyricsMarkedDBName, m_LyricsMarkedDB); @@ -1448,7 +1522,7 @@ { BinaryFormatter bf = new BinaryFormatter(); lyricsDatabase.SetLastModified(); - bf.Serialize(fs, dbName); + bf.Serialize(fs, lyricsDatabase); fs.Close(); } } Modified: trunk/plugins/MyLyrics/My Lyrics/MyLyrics.csproj =================================================================== --- trunk/plugins/MyLyrics/My Lyrics/MyLyrics.csproj 2009-05-18 13:35:16 UTC (rev 2865) +++ trunk/plugins/MyLyrics/My Lyrics/MyLyrics.csproj 2009-05-19 14:59:09 UTC (rev 2866) @@ -5,7 +5,7 @@ <ProductVersion>9.0.21022</ProductVersion> <SchemaVersion>2.0</SchemaVersion> <ProjectGuid>{BBB2DAE2-0D83-4B4B-85B6-D1B5A7E10039}</ProjectGuid> - <OutputType>Library</OutputType> + <OutputType>WinExe</OutputType> <AppDesignerFolder>Properties</AppDesignerFolder> <RootNamespace>MyLyrics</RootNamespace> <AssemblyName>MyLyrics</AssemblyName> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |