// thanks to this trouble child: https://archive.org/metadata/lotus2011-16-07.lotus2011-16-07_Neumann private string FixDisplayDate(Relisten.Vendor.ArchiveOrg.Metadata.Metadata meta) { // 1970-03-XX or 1970-XX-XX which is okay because it is handled by the rebuild if (meta.date.Contains('X')) { return(meta.date); } // happy case if (TestDate(meta.date)) { return(meta.date); } var d = TryFlippingMonthAndDate(meta.date); if (d != null) { return(d); } // try to parse it out of the identifier var matches = ExtractDateFromIdentifier.Match(meta.identifier); if (matches.Success) { var tdate = matches.Groups[1].Value; if (TestDate(tdate)) { return(tdate); } var flipped = TryFlippingMonthAndDate(tdate); if (flipped != null) { return(flipped); } } return(null); }
private Source CreateSourceForMetadata( Artist artist, Relisten.Vendor.ArchiveOrg.Metadata.Metadata meta, Relisten.Vendor.ArchiveOrg.SearchDoc searchDoc, Venue dbVenue = null ) { var sbd = meta.identifier.EmptyIfNull().ContainsInsensitive("sbd") || meta.title.EmptyIfNull().ContainsInsensitive("sbd") || meta.source.EmptyIfNull().ContainsInsensitive("sbd") || meta.lineage.EmptyIfNull().ContainsInsensitive("sbd") ; var remaster = meta.identifier.EmptyIfNull().ContainsInsensitive("remast") || meta.title.EmptyIfNull().ContainsInsensitive("remast") || meta.source.EmptyIfNull().ContainsInsensitive("remast") || meta.lineage.EmptyIfNull().ContainsInsensitive("remast") ; return(new Source() { artist_id = artist.id, is_soundboard = sbd, is_remaster = remaster, has_jamcharts = false, avg_rating = 0, // dbReviews.Average(rev => 1.0 * rev.rating), num_reviews = 0, // dbReviews.Count, upstream_identifier = meta.identifier, description = meta.description.EmptyIfNull(), taper_notes = meta.notes.EmptyIfNull(), source = meta.source.EmptyIfNull(), taper = meta.taper.EmptyIfNull(), transferrer = meta.transferer.EmptyIfNull(), lineage = meta.lineage.EmptyIfNull(), updated_at = searchDoc._iguana_updated_at, venue_id = dbVenue?.id, display_date = meta.date }); }