* option to purge records from local DB

* metadata editing window size is now saved in settings
* old musicbrainz library removed, musicbrainz metadata now only comes from CTDB
* confirmation dialog before submitting to CTDB
This commit is contained in:
chudov
2011-06-13 20:25:13 +00:00
parent 6982996ab9
commit e3b05e3e7f
28 changed files with 1883 additions and 1679 deletions

View File

@@ -220,29 +220,6 @@ namespace CUETools.Processor
}
}
public void FillFromMusicBrainz(MusicBrainz.Release release, int firstAudio)
{
var evs = release.GetEvents();
if (evs.Count > 0)
{
var ev = evs[0];
ReleaseDate = ev.Date ?? "";
Year = (ev.Date ?? "").Substring(0, 4);
Barcode = ev.Barcode ?? "";
Country = ev.Country;
Label = ((ev.Label == null ? null : ev.Label.GetName()) ?? "") + (ev.Label == null ? "" : " ") + (ev.CatalogNumber ?? "");
}
Artist = release.GetArtist();
Title = release.GetTitle();
// How to get Genre: http://mm.musicbrainz.org/ws/1/release/6fe1e218-2aee-49ac-94f0-7910ba2151df.html?type=xml&inc=tags
for (int i = 0; i < Tracks.Count; i++)
{
MusicBrainz.Track track = release.GetTracks()[i + firstAudio]; // !!!!!! - _toc.FirstAudio?
Tracks[i].Title = track.GetTitle();
Tracks[i].Artist = track.GetArtist();
}
}
public void FillFromFreedb(Freedb.CDEntry cdEntry, int firstAudio)
{
Year = cdEntry.Year;

View File

@@ -109,10 +109,6 @@
<Project>{8A0426FA-0BC2-4C49-A6E5-1F9A68156F19}</Project>
<Name>CUETools.Codecs.LossyWAV</Name>
</ProjectReference>
<ProjectReference Include="..\MusicBrainz\MusicBrainz.csproj">
<Project>{74C2036B-2C9B-4FC8-B7BD-AE81A8DCE533}</Project>
<Name>MusicBrainz</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">

View File

@@ -47,7 +47,6 @@ using CUETools.AccurateRip;
using CUETools.CTDB;
using CUETools.Ripper;
using CUETools.Compression;
using MusicBrainz;
using Freedb;
using CSScriptLibrary;
@@ -1146,6 +1145,8 @@ namespace CUETools.Processor
public bool CreateTOC { get; set; }
[DefaultValue(true), Category("CTDB"), DisplayName("Submit to CTDB")]
public bool CTDBSubmit { get; set; }
[DefaultValue(true), Category("CTDB"), DisplayName("Ask before submitting")]
public bool CTDBAsk { get; set; }
[DefaultValue("db.cuetools.net"), Category("CTDB"), DisplayName("CTDB Server")]
public string CTDBServer { get; set; }
@@ -1238,7 +1239,7 @@ namespace CUETools.Processor
writeArTagsOnEncode = true;
writeArLogOnConvert = true;
writeArTagsOnVerify = false;
writeArLogOnVerify = true;
writeArLogOnVerify = false;
autoCorrectFilenames = true;
preserveHTOA = true;
@@ -1547,7 +1548,7 @@ return processor.Go();
writeArTagsOnEncode = sr.LoadBoolean("ArWriteCRC") ?? true;
writeArLogOnConvert = sr.LoadBoolean("ArWriteLog") ?? true;
writeArTagsOnVerify = sr.LoadBoolean("ArWriteTagsOnVerify") ?? false;
writeArLogOnVerify = sr.LoadBoolean("ArWriteLogOnVerify") ?? true;
writeArLogOnVerify = sr.LoadBoolean("ArWriteLogOnVerify") ?? false;
preserveHTOA = sr.LoadBoolean("PreserveHTOA") ?? true;
autoCorrectFilenames = sr.LoadBoolean("AutoCorrectFilenames") ?? true;
@@ -1860,7 +1861,7 @@ return processor.Go();
public CUEAction _action = CUEAction.Encode;
public CUEStyle _CUEStyle = CUEStyle.SingleFileWithCUE;
public int _writeOffset = 0;
public bool _useFreeDb = true, _useMusicBrainz = true, _useAccurateRip = true, _useCUEToolsDB = true, _useLocalDB = true, _skipRecent = true;
public bool _useFreeDb = true, _useMusicBrainz = true, _useAccurateRip = true, _useCUEToolsDB = true, _useLocalDB = true, _skipRecent = false;
public string _name;
}
@@ -2206,11 +2207,9 @@ return processor.Go();
_localDB.Save();
}
public List<object> LookupAlbumInfo(bool useFreedb, bool useMusicBrainz, bool useCTDB, bool useCache, bool useCUE)
public List<object> LookupAlbumInfo(bool useFreedb, bool useCTDB, bool useCache, bool useCUE)
{
List<object> Releases = new List<object>();
StringCollection DiscIds = new StringCollection();
DiscIds.Add(_toc.MusicBrainzId);
CUEMetadata dbmeta = null;
@@ -2304,8 +2303,6 @@ return processor.Go();
CUEMetadata metadata = new CUEMetadata(TOC.TOCID, (int)TOC.AudioTracks);
metadata.FillFromFreedb(cdEntry, TOC.FirstAudio - 1);
CDImageLayout toc = TocFromCDEntry(cdEntry);
if (!DiscIds.Contains(toc.MusicBrainzId))
DiscIds.Add(toc.MusicBrainzId);
Releases.Add(new CUEMetadataEntry(metadata, toc, "freedb"));
}
}
@@ -2324,8 +2321,6 @@ return processor.Go();
CUEMetadata metadata = new CUEMetadata(TOC.TOCID, (int)TOC.AudioTracks);
metadata.FillFromFreedb(cdEntry, TOC.FirstAudio - 1);
CDImageLayout toc = TocFromCDEntry(cdEntry);
if (!DiscIds.Contains(toc.MusicBrainzId))
DiscIds.Add(toc.MusicBrainzId);
Releases.Add(new CUEMetadataEntry(metadata, toc,"freedb"));
}
}
@@ -2338,58 +2333,6 @@ return processor.Go();
}
}
if (useMusicBrainz && !ctdbFound)
{
ShowProgress("Looking up album via MusicBrainz...", 0.0, null, null);
//if (_tocFromLog != null && !DiscIds.Contains(_tocFromLog.MusicBrainzId))
// DiscIds.Add(_tocFromLog.MusicBrainzId);
MusicBrainzService.XmlRequest += new EventHandler<XmlRequestEventArgs>(MusicBrainz_LookupProgress);
MusicBrainzService.Proxy = proxy;
foreach (string DiscId in DiscIds)
{
ReleaseQueryParameters p = new ReleaseQueryParameters();
p.DiscId = DiscId;
Query<Release> results = Release.Query(p);
try
{
foreach (MusicBrainz.Release release in results)
{
release.GetEvents();
release.GetTracks();
try
{
foreach (MusicBrainz.Track track in release.GetTracks())
;
}
catch { }
try
{
foreach (MusicBrainz.Event ev in release.GetEvents())
;
}
catch { }
CUEMetadata metadata = new CUEMetadata(TOC.TOCID, (int)TOC.AudioTracks);
metadata.FillFromMusicBrainz(release, TOC.FirstAudio - 1);
Releases.Add(new CUEMetadataEntry(metadata, TOC, "musicbrainz"));
}
}
catch (Exception ex)
{
System.Diagnostics.Trace.WriteLine(ex.Message);
}
}
MusicBrainzService.Proxy = null;
MusicBrainzService.XmlRequest -= new EventHandler<XmlRequestEventArgs>(MusicBrainz_LookupProgress);
//if (release != null)
//{
// FillFromMusicBrainz(release);
// return;
//}
//if (cdEntry != null)
// FillFromFreedb(cdEntry);
}
ShowProgress("", 0, null, null);
return Releases;
}
@@ -3400,18 +3343,6 @@ return processor.Go();
// this.CUEToolsProgress(this, _progress);
//}
private void MusicBrainz_LookupProgress(object sender, XmlRequestEventArgs e)
{
if (this.CUEToolsProgress == null)
return;
_progress.percent = (1.0 + _progress.percent) / 2;
_progress.offset = 0;
_progress.input = e.Uri.ToString();
_progress.output = null;
_progress.status = "Looking up album via MusicBrainz";
this.CUEToolsProgress(this, _progress);
}
private void unzip_ExtractionProgress(object sender, CompressionExtractionProgressEventArgs e)
{
CheckStop();