1414using SmartImage . Lib . Images . Uni ;
1515using SmartImage . Lib . Results ;
1616using SmartImage . Lib . Results . Data ;
17+
1718// ReSharper disable UnusedMember.Local
1819#pragma warning disable IDE0051
1920namespace SmartImage . Lib . Engines . Impl . Search ;
@@ -66,7 +67,7 @@ public static GoogleLensItem Parse(INode n)
6667
6768}
6869
69- public class GoogleLensEngine : WebSearchEngine , IEndpointEngine /* , ICookiesEngine*/
70+ public class GoogleLensEngine : WebSearchEngine , IEndpointEngine , ICookiesEngine , ISearchConfigReceiver
7071{
7172
7273 // TODO: WIP
@@ -208,10 +209,10 @@ private Task<IFlurlResponse> SearchUrlAsync(Url url, CancellationToken token)
208209 return req ;
209210 }
210211
211- protected override ValueTask < List < INode > > GetNodes ( IDocument d )
212+ protected override ValueTask < IEnumerable < INode > > GetNodes ( IDocument d )
212213 {
213214 var all = d . QuerySelectorAll ( ".LBcIee" ) ;
214- return ValueTask . FromResult ( all . OfType < INode > ( ) . ToList ( ) ) ;
215+ return ValueTask . FromResult ( all . OfType < INode > ( ) ) ;
215216 }
216217
217218 protected override Url GetRawUrl ( SearchQuery query )
@@ -221,4 +222,33 @@ protected override Url GetRawUrl(SearchQuery query)
221222
222223 public override void Dispose ( ) { }
223224
225+ public CookieJar Jar { get ; private set ; }
226+
227+ public ICookiesProvider Provider { get ; set ; }
228+
229+ public async ValueTask < bool > ApplyCookiesAsync ( CancellationToken token = default )
230+ {
231+ var ck = await Provider . GetOrLoadCookiesAsync ( token ) ;
232+
233+ foreach ( var cookie in ck ) {
234+ if ( cookie . Name == "NID" ) {
235+ Nid = cookie . AsFlurlCookie ( ) ;
236+ break ;
237+ }
238+ }
239+
240+ return true ;
241+ }
242+
243+ #region Implementation of ISearchConfigReceiver
244+
245+ public ValueTask < bool > ApplyConfigAsync ( SearchConfig cfg , CancellationToken ct = default )
246+ {
247+ Provider = cfg . CookiesProvider ;
248+
249+ return ApplyCookiesAsync ( ct ) ;
250+ }
251+
252+ #endregion
253+
224254}
0 commit comments