mirror of
https://github.com/claunia/cuetools.net.git
synced 2025-12-16 18:14:25 +00:00
Preparing for next version of CTDB
This commit is contained in:
@@ -7,7 +7,7 @@ namespace CUETools.CTDB
|
|||||||
public class CTDBResponseEntry
|
public class CTDBResponseEntry
|
||||||
{
|
{
|
||||||
[XmlAttribute]
|
[XmlAttribute]
|
||||||
public string id { get; set; }
|
public long id { get; set; }
|
||||||
[XmlAttribute]
|
[XmlAttribute]
|
||||||
public string crc32 { get; set; }
|
public string crc32 { get; set; }
|
||||||
[XmlAttribute]
|
[XmlAttribute]
|
||||||
|
|||||||
@@ -232,13 +232,24 @@ namespace CUETools.CTDB
|
|||||||
if (this.QueryExceptionStatus != WebExceptionStatus.Success &&
|
if (this.QueryExceptionStatus != WebExceptionStatus.Success &&
|
||||||
(this.QueryExceptionStatus != WebExceptionStatus.ProtocolError || this.QueryResponseStatus != HttpStatusCode.NotFound))
|
(this.QueryExceptionStatus != WebExceptionStatus.ProtocolError || this.QueryResponseStatus != HttpStatusCode.NotFound))
|
||||||
return this.DBStatus;
|
return this.DBStatus;
|
||||||
DBEntry confirm = this.MatchingEntry;
|
|
||||||
if (confirm != null) confidence = 1;
|
|
||||||
int npar = AccurateRipVerify.maxNpar;
|
int npar = AccurateRipVerify.maxNpar;
|
||||||
var parity = verify.AR.GetParity(npar);
|
var parity = verify.AR.GetParity(npar);
|
||||||
DoSubmit(confidence, quality, artist, title, barcode, false, confirm, parity, npar);
|
var confirms = this.MatchingEntries;
|
||||||
|
if (confirms.Count > 0)
|
||||||
|
{
|
||||||
|
confidence = 1;
|
||||||
|
foreach (var confirm in confirms)
|
||||||
|
{
|
||||||
|
subResult = null;
|
||||||
|
DoSubmit(confidence, quality, artist, title, barcode, false, confirm, parity, npar);
|
||||||
|
if (subResult == "parity needed")
|
||||||
|
DoSubmit(confidence, quality, artist, title, barcode, true, confirm, parity, npar);
|
||||||
|
}
|
||||||
|
return subResult;
|
||||||
|
}
|
||||||
|
DoSubmit(confidence, quality, artist, title, barcode, false, null, parity, npar);
|
||||||
if (subResult == "parity needed")
|
if (subResult == "parity needed")
|
||||||
DoSubmit(confidence, quality, artist, title, barcode, true, confirm, parity, npar);
|
DoSubmit(confidence, quality, artist, title, barcode, true, null, parity, npar);
|
||||||
return subResult;
|
return subResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -271,6 +282,13 @@ namespace CUETools.CTDB
|
|||||||
{
|
{
|
||||||
files = new UploadFile[0];
|
files = new UploadFile[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
long maxId = 0;
|
||||||
|
foreach (var e in this.entries)
|
||||||
|
{
|
||||||
|
maxId = Math.Max(maxId, e.id);
|
||||||
|
}
|
||||||
|
|
||||||
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(urlbase + "/submit2.php");
|
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(urlbase + "/submit2.php");
|
||||||
req.Proxy = proxy;
|
req.Proxy = proxy;
|
||||||
req.UserAgent = this.userAgent;
|
req.UserAgent = this.userAgent;
|
||||||
@@ -280,7 +298,8 @@ namespace CUETools.CTDB
|
|||||||
if (upload)
|
if (upload)
|
||||||
form.Add("parityfile", "1");
|
form.Add("parityfile", "1");
|
||||||
if (confirm != null)
|
if (confirm != null)
|
||||||
form.Add("confirmid", confirm.id);
|
form.Add("confirmid", confirm.id.ToString());
|
||||||
|
form.Add("maxid", maxId.ToString());
|
||||||
form.Add("toc", toc.ToString());
|
form.Add("toc", toc.ToString());
|
||||||
form.Add("crc32", ((int)verify.CRC).ToString());
|
form.Add("crc32", ((int)verify.CRC).ToString());
|
||||||
form.Add("trackcrcs", verify.TrackCRCs);
|
form.Add("trackcrcs", verify.TrackCRCs);
|
||||||
@@ -437,17 +456,18 @@ namespace CUETools.CTDB
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public DBEntry MatchingEntry
|
public List<DBEntry> MatchingEntries
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (this.QueryExceptionStatus != WebExceptionStatus.Success)
|
var res = new List<DBEntry>();
|
||||||
return null;
|
if (this.QueryExceptionStatus != WebExceptionStatus.Success)
|
||||||
foreach (DBEntry entry in this.Entries)
|
return res;
|
||||||
if (entry.toc.ToString() == this.toc.ToString() && !entry.hasErrors)
|
foreach (DBEntry entry in this.Entries)
|
||||||
return entry;
|
if (entry.toc.ToString() == this.toc.ToString() && !entry.hasErrors)
|
||||||
return null;
|
res.Add(entry);
|
||||||
}
|
return res;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Init(AccurateRipVerify ar)
|
public void Init(AccurateRipVerify ar)
|
||||||
|
|||||||
@@ -15,11 +15,11 @@ namespace CUETools.CTDB
|
|||||||
public bool canRecover;
|
public bool canRecover;
|
||||||
public CDRepairFix repair;
|
public CDRepairFix repair;
|
||||||
public HttpStatusCode httpStatus;
|
public HttpStatusCode httpStatus;
|
||||||
public string id;
|
public long id;
|
||||||
public CDImageLayout toc;
|
public CDImageLayout toc;
|
||||||
public string hasParity;
|
public string hasParity;
|
||||||
|
|
||||||
public DBEntry(ushort[,] syndrome, int conf, int stride, uint crc, string id, CDImageLayout toc, string hasParity)
|
public DBEntry(ushort[,] syndrome, int conf, int stride, uint crc, long id, CDImageLayout toc, string hasParity)
|
||||||
{
|
{
|
||||||
this.syndrome = syndrome;
|
this.syndrome = syndrome;
|
||||||
this.id = id;
|
this.id = id;
|
||||||
|
|||||||
@@ -1027,7 +1027,7 @@ namespace JDP
|
|||||||
&& cueSheet.ArVerify.ARStatus == null
|
&& cueSheet.ArVerify.ARStatus == null
|
||||||
&& cueSheet.ArVerify.WorstConfidence() >= 2
|
&& cueSheet.ArVerify.WorstConfidence() >= 2
|
||||||
&& (cueSheet.AccurateRipId == null || AccurateRipVerify.CalculateAccurateRipId(cueSheet.TOC) == cueSheet.AccurateRipId)
|
&& (cueSheet.AccurateRipId == null || AccurateRipVerify.CalculateAccurateRipId(cueSheet.TOC) == cueSheet.AccurateRipId)
|
||||||
&& cueSheet.CTDB.MatchingEntry == null
|
&& cueSheet.CTDB.MatchingEntries.Count == 0
|
||||||
&& (cueSheet.CTDB.QueryExceptionStatus == WebExceptionStatus.Success
|
&& (cueSheet.CTDB.QueryExceptionStatus == WebExceptionStatus.Success
|
||||||
|| (cueSheet.CTDB.QueryExceptionStatus == WebExceptionStatus.ProtocolError && cueSheet.CTDB.QueryResponseStatus == HttpStatusCode.NotFound)
|
|| (cueSheet.CTDB.QueryExceptionStatus == WebExceptionStatus.ProtocolError && cueSheet.CTDB.QueryResponseStatus == HttpStatusCode.NotFound)
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user