11using System . Reflection ;
22using Flurl . Http ;
33
4- namespace SmartImage . Lib . Booru ;
4+ namespace SmartImage . Lib . Clients . Booru ;
5+
56// TODO
6- public abstract class BaseGelbooru : IDisposable
7+ public abstract class BaseGelbooruClient : IDisposable
78{
9+
810 public FlurlClient Client { get ; }
911
1012 public Url Base { get ; }
@@ -15,7 +17,7 @@ public abstract class BaseGelbooru : IDisposable
1517 [ CBN ]
1618 public string Id { get ; set ; }
1719
18- protected BaseGelbooru ( Url @base )
20+ protected BaseGelbooruClient ( Url @base )
1921 {
2022 Base = @base ;
2123
@@ -31,15 +33,21 @@ protected BaseGelbooru(Url @base)
3133
3234 public class PostsRequest
3335 {
34- public int Limit { get ; set ; }
35- public int Pid { get ; set ; }
36- public string Tags { get ; set ; }
37- public long Cid { get ; set ; }
38- public int Id { get ; set ; }
36+
37+ public int Limit { get ; set ; }
38+
39+ public int Pid { get ; set ; }
40+
41+ public string Tags { get ; set ; }
42+
43+ public long Cid { get ; set ; }
44+
45+ public int Id { get ; set ; }
3946
4047 public int Json { get ; set ; } = 1 ;
4148
4249 public PostsRequest ( ) { }
50+
4351 }
4452
4553 protected int PostMax { get ; set ; } = 100 ;
@@ -62,7 +70,7 @@ public virtual async Task<IFlurlResponse> GetPostsAsync(PostsRequest r)
6270 foreach ( PropertyInfo p in r . GetType ( ) . GetProperties ( ) ) {
6371 var o = p . GetValue ( r ) ;
6472
65- if ( o == null || ( o is string s && string . IsNullOrWhiteSpace ( s ) ) || o . Equals ( 0 ) ) {
73+ if ( o == null || o is string s && string . IsNullOrWhiteSpace ( s ) || o . Equals ( 0 ) ) {
6674 continue ;
6775 }
6876
@@ -81,12 +89,15 @@ public void Dispose()
8189 {
8290 Client ? . Dispose ( ) ;
8391 }
92+
8493}
8594
86- public class Rule34Booru : BaseGelbooru
95+ public class Rule34Booru : BaseGelbooruClient
8796{
97+
8898 public Rule34Booru ( ) : base ( "https://rule34.xxx" )
8999 {
90100 PostMax = 1000 ;
91101 }
102+
92103}
0 commit comments