77using System . Runtime . CompilerServices ;
88using Flurl . Http ;
99using Kantan . Net . Web ;
10- using SmartImage . Lib . Results . Data ;
1110
12- namespace SmartImage . Lib . Utilities ;
11+ namespace SmartImage . Lib . Results . Data ;
1312
1413public class AsyncLazy < T > : Lazy < Task < T > >
1514{
@@ -18,13 +17,13 @@ public AsyncLazy(Func<T> valueFactory, CancellationToken ct = default) :
1817 base ( ( ) => Task . Factory . StartNew ( valueFactory , ct ) ) { }
1918
2019 public AsyncLazy ( Func < Task < T > > taskFactory , CancellationToken ct = default ) :
21- base ( ( ) => Task . Factory . StartNew ( ( ) => taskFactory ( ) , ct ) . Unwrap ( ) ) { }
20+ base ( ( ) => Task . Factory . StartNew ( taskFactory , ct ) . Unwrap ( ) ) { }
2221
2322 public AsyncLazy ( Func < object , T > valueFactory , CancellationToken ct = default )
24- : base ( ( ) => Task . Factory . StartNew ( ( z ) => valueFactory ( z ) , ct ) ) { }
23+ : base ( ( ) => Task . Factory . StartNew ( valueFactory , ct ) ) { }
2524
2625 public AsyncLazy ( Func < object , Task < T > > valueFactory , CancellationToken ct = default )
27- : base ( ( ) => Task . Factory . StartNew ( ( z ) => valueFactory ( z ) , ct ) . Unwrap ( ) ) { }
26+ : base ( ( ) => Task . Factory . StartNew ( valueFactory , ct ) . Unwrap ( ) ) { }
2827
2928 /*public AsyncLazy(Func<object, Task<T>> valueFactory, CancellationToken ct = default)
3029 : base(() => Task.Factory.StartNew(z => valueFactory(z)), ct) { }*/
@@ -42,18 +41,18 @@ public class FirefoxCookiesProvider : ICookieProvider
4241 private readonly FirefoxCookieReader m_reader ;
4342
4443
45- public IEnumerable < IBrowserCookie > Cookies { get ; }
44+ public IList < IBrowserCookie > Cookies { get ; private set ; }
4645
4746 public FirefoxCookiesProvider ( )
4847 {
4948 m_reader = new FirefoxCookieReader ( ) ;
50- Cookies = [ ] ;
49+ Cookies = null ;
5150 }
5251
5352 public async ValueTask < bool > LoadCookiesAsync ( CancellationToken ct = default )
5453 {
55- if ( ( ( ICookieProvider ) this ) . Loaded ) {
56- if ( m_reader . Connection . State = = ConnectionState . Open ) {
54+ if ( ! ( ( ICookieProvider ) this ) . Loaded ) {
55+ if ( m_reader . Connection . State ! = ConnectionState . Open ) {
5756 await m_reader . OpenAsync ( ) ;
5857
5958 }
@@ -67,49 +66,13 @@ public async ValueTask<bool> LoadCookiesAsync(CancellationToken ct = default)
6766
6867 }
6968
70- public void Dispose ( )
71- {
72- m_reader . Dispose ( ) ;
73- }
74-
75- }
76-
77- public class CookiesManager : IDisposable
78- {
79-
80- // TODO
81-
82- // [DebuggerHidden]
83- private static async Task < List < IBrowserCookie > > ReadCookiesAsync ( ) { }
84-
85- public List < IBrowserCookie > Cookies { get ; private set ; }
86-
87- [ MNNW ( true , nameof ( Cookies ) ) ]
88- public bool Loaded => Cookies != null ;
89-
90- private CookiesManager ( )
91- {
92- Cookies = null ;
93- }
94-
95- public async Task < bool > LoadCookiesAsync ( bool force = false )
96- {
97- var b = ! Loaded || force ;
98-
99- if ( b ) {
100- Cookies = await ReadCookiesAsync ( ) ;
101-
102- }
103-
104- return Loaded ;
105- }
106-
107- public static readonly CookiesManager Instance = new ( ) ;
108-
10969 public void Dispose ( )
11070 {
11171 Cookies . Clear ( ) ;
11272 Cookies = null ;
73+ m_reader . Dispose ( ) ;
11374 }
11475
76+ public static readonly ICookieProvider Instance = new FirefoxCookiesProvider ( ) ;
77+
11578}
0 commit comments