44using System . Linq ;
55using System . Net ;
66using JetBrains . Annotations ;
7+ using Newtonsoft . Json ;
78using RestSharp ;
89using SmartImage . Lib . Clients ;
910using SmartImage . Lib . Searching ;
@@ -42,14 +43,15 @@ protected override SearchResult Process(ImageQuery query, SearchResult r)
4243
4344
4445 var rq = new RestRequest ( "search" ) ;
45- rq . AddQueryParameter ( "url" , query . UploadUri . ToString ( ) ) ;
46+ rq . AddQueryParameter ( "url" , query . UploadUri . ToString ( ) , true ) ;
4647 //rq.AddQueryParameter("anilistInfo", "");
4748 rq . OnBeforeDeserialization = resp => { resp . ContentType = "application/json" ; } ;
4849 rq . Timeout = Timeout . Milliseconds ;
4950 rq . RequestFormat = DataFormat . Json ;
5051
5152 var re = Client . Execute < TraceMoeRootObject > ( rq , Method . GET ) ;
5253 var tm = re . Data ;
54+ //var tm=JsonConvert.DeserializeObject<TraceMoeRootObject>(re.Content);
5355
5456 if ( tm ? . result != null ) {
5557 // Most similar to least similar
@@ -69,17 +71,16 @@ protected override SearchResult Process(ImageQuery query, SearchResult r)
6971 }
7072 catch ( Exception e ) {
7173 r = GetResult ( query ) ;
72- Debug . WriteLine ( $ "{ Name } : Error: { e . Message } ") ;
73-
74- r . Status = ResultStatus . Failure ;
74+ r . ErrorMessage = e . Message ;
75+ r . Status = ResultStatus . Failure ;
7576 return r ;
7677 }
7778
7879
7980 }
8081 else {
8182 Debug . WriteLine ( $ "{ Name } : API error", C_ERROR ) ;
82-
83+ r . ErrorMessage = $ " { re . ErrorMessage } { re . StatusCode } " ;
8384 }
8485
8586 return r ;
@@ -105,7 +106,7 @@ private IEnumerable<ImageResult> ConvertResults(TraceMoeRootObject obj)
105106 Url = new Uri ( anilistUrl ) ,
106107 Similarity = sim ,
107108 Source = name ,
108- Description = $ "Episode #{ doc . episode } @ { TimeSpan . FromSeconds ( doc . @ from) } "
109+ Description = $ "Episode #{ doc . episode } @ { TimeSpan . FromSeconds ( doc . from ) } "
109110 } ;
110111
111112 if ( result . Similarity < FILTER_THRESHOLD ) {
@@ -135,16 +136,23 @@ private IEnumerable<ImageResult> ConvertResults(TraceMoeRootObject obj)
135136 [ UsedImplicitly ( ImplicitUseTargetFlags . WithMembers ) ]
136137 private class TraceMoeDoc
137138 {
138- public double from { get ; set ; }
139- public double to { get ; set ; }
140- public long anilist { get ; set ; }
139+ public double from { get ; set ; }
140+
141+ public double to { get ; set ; }
142+
143+ public long anilist { get ; set ; }
144+
141145 public string filename { get ; set ; }
142146
143- public long episode { get ; set ; }
147+
148+ /// <remarks>Episode field may contain multiple possible results delimited by <c>|</c></remarks>
149+ public string episode { get ; set ; }
144150
145151 public double similarity { get ; set ; }
146- public string video { get ; set ; }
147- public string image { get ; set ; }
152+
153+ public string video { get ; set ; }
154+
155+ public string image { get ; set ; }
148156 }
149157
150158 [ UsedImplicitly ( ImplicitUseTargetFlags . WithMembers ) ]
0 commit comments