public virtual FullSearchResult GetResult(string url) { string rawUrl = GetRawResultUrl(url); var sr = new FullSearchResult(this, rawUrl) { RawUrl = rawUrl }; return(sr); }
public ActionResult FullSearch(string id) { int totalCount; var results = DoSearch(id, out totalCount); var model = new FullSearchResult { Customers = results, SearchText = id }; return(View(model)); }
public override FullSearchResult GetResult(string url) { FullSearchResult r; //var r = base.GetResult(url); var tm = GetApiResults(url, out var code, out var res, out var msg); if (tm?.docs != null) { // Most similar to least similar try { var results = ConvertResults(tm).ToList(); var best = results[0]; r = new FullSearchResult(this, best.Url, best.Similarity) { Source = best.Source, Description = best.Description, }; r.Filter = r.Similarity < FilterThreshold; r.AddExtendedResults(results); } catch (Exception e) { r = base.GetResult(url); r.AddErrorMessage(e.Message); return(r); } } else { r = base.GetResult(url); r.AddErrorMessage(msg); } return(r); }
private BaseSearchResult[] ConvertResults(TraceMoeRootObject obj) { var docs = obj.docs; var results = new BaseSearchResult[docs.Count]; for (int i = 0; i < results.Length; i++) { var doc = docs[i]; var sim = (float?)doc.similarity * 100; var malUrl = MAL_URL + doc.mal_id; results[i] = new FullSearchResult(this, malUrl, sim) { Source = doc.title_english, Description = $"Episode #{doc.episode} @ {TimeSpan.FromSeconds(doc.at)}" }; } return(results); }
public override FullSearchResult GetResult(string url) { FullSearchResult result = base.GetResult(url); try { var orig = GetDataResults(url); if (orig == null) { //return result; Debug.WriteLine("Parsing HTML from SN!"); orig = ParseResults(url).ToArray(); } // aggregate all info for primary result string?character = orig.FirstOrDefault(o => !String.IsNullOrWhiteSpace(o.Character))?.Character; string?creator = orig.FirstOrDefault(o => !String.IsNullOrWhiteSpace(o.Creator))?.Creator; string?material = orig.FirstOrDefault(o => !String.IsNullOrWhiteSpace(o.Material))?.Material; var extended = ConvertDataResults(orig).ToList(); var ordered = extended .Where(e => e.Url != null) .OrderByDescending(e => e.Similarity) .ToList(); if (!ordered.Any()) { // No good results result.Filter = true; return(result); } var best = ordered.First(); // Copy result.UpdateFrom(best); result.Characters = character; result.Artist = creator; result.Source = material; result.AddExtendedResults(extended); if (!String.IsNullOrWhiteSpace(m_apiKey)) { result.Metadata.Add("API", "Enabled"); } } catch (Exception e) { Debug.WriteLine($"SauceNao error: {e.StackTrace}"); result.AddErrorMessage(e.Message); } return(result); }