33using System . Threading . Tasks ;
44using ScriptBloxApi . LanguageFeatures ;
55using ScriptBloxApi . Objects ;
6+ using static System . Int32 ;
67
78namespace ScriptBloxApi . Scripts
89{
@@ -42,17 +43,18 @@ public static async Task<Results> FetchScriptsAsync(
4243 Order ? order = null
4344 )
4445 {
45- Dictionary < string , string > queryParams = new ( ) ;
46-
47- if ( page . HasValue ) queryParams . Add ( "page" , page . Value . ToString ( ) ) ;
48- if ( max . HasValue ) queryParams . Add ( "max" , max . InternalClamp ( 1 , 20 ) . ToString ( ) ) ;
49- if ( mode . HasValue ) queryParams . Add ( "mode" , mode . ToString ( ) ) ;
50- if ( patched . HasValue ) queryParams . Add ( "patched" , patched . Value . GetBoolInt ( ) ) ;
51- if ( key . HasValue ) queryParams . Add ( "key" , key . Value . GetBoolInt ( ) ) ;
52- if ( universal . HasValue ) queryParams . Add ( "universal" , universal . Value . GetBoolInt ( ) ) ;
53- if ( verified . HasValue ) queryParams . Add ( "verified" , verified . Value . GetBoolInt ( ) ) ;
54- if ( sortBy . HasValue ) queryParams . Add ( "sortBy" , sortBy . ToString ( ) ) ;
55- if ( order . HasValue ) queryParams . Add ( "order" , order . ToString ( ) ) ;
46+ ( string Key , string Value ) [ ] queryParams =
47+ [
48+ ( "page" , page ? . ToString ( ) ) ,
49+ ( "max" , max . InternalClamp ( 1 , 20 ) . ToString ( ) ) ,
50+ ( "mode" , mode ? . ToString ( ) ) ,
51+ ( "patched" , patched . GetBoolInt ( ) ) ,
52+ ( "key" , key . GetBoolInt ( ) ) ,
53+ ( "universal" , universal . GetBoolInt ( ) ) ,
54+ ( "verified" , verified . GetBoolInt ( ) ) ,
55+ ( "sortBy" , sortBy ? . ToString ( ) ) ,
56+ ( "order" , order ? . ToString ( ) )
57+ ] ;
5658
5759 FetchResult fetchResult = await Client . Get < FetchResult > ( "script/fetch" , queryParams ) ;
5860
@@ -65,10 +67,16 @@ public static async Task<Results> FetchScriptsAsync(
6567
6668 public static async Task < IReadOnlyList < Script > > FetchTrendingScriptsAsync ( int ? max = 20 )
6769 {
68- FetchResult fetchResult = await Client . Get < FetchResult > ( "script/trending" , new Dictionary < string , string >
69- {
70- { "max" , max . InternalClamp ( 1 , 20 ) . ToString ( ) }
71- } ) ;
70+ FetchResult fetchResult = await Client . Get < FetchResult > ( "script/trending" , [ ( "max" , max . InternalClamp ( 1 , 20 ) . ToString ( ) ) ] ) ;
71+ return fetchResult . Result . Scripts ;
72+ }
73+
74+ public static async Task < IReadOnlyList < Script > > FetchScriptsFromUser ( string username , int ? page = 1 , int ? max = 20 )
75+ {
76+ FetchResult fetchResult = await Client . Get < FetchResult > ( $ "user/scripts/{ username } ", [
77+ ( "page" , page . InternalClamp ( 1 , MaxValue ) . ToString ( ) ) ,
78+ ( "max" , max . InternalClamp ( 1 , 20 ) . ToString ( ) )
79+ ] ) ;
7280 return fetchResult . Result . Scripts ;
7381 }
7482
@@ -86,19 +94,20 @@ public static async Task<Results> SearchScriptsAsync(
8694 bool ? strict = null
8795 )
8896 {
89- Dictionary < string , string > queryParams = new ( ) { { "q" , query } } ;
97+ ( string Key , string Value ) [ ] queryParams =
98+ [
99+ ( "page" , page . InternalClamp ( 1 , MaxValue ) . ToString ( ) ) ,
100+ ( "max" , max . InternalClamp ( 1 , 20 ) . ToString ( ) ) ,
101+ ( "mode" , mode . ToString ( ) ) ,
102+ ( "patched" , patched . GetBoolInt ( ) ) ,
103+ ( "key" , key . GetBoolInt ( ) ) ,
104+ ( "universal" , universal . GetBoolInt ( ) ) ,
105+ ( "verified" , verified . GetBoolInt ( ) ) ,
106+ ( "sortBy" , sortBy . ToString ( ) ) ,
107+ ( "order" , order . ToString ( ) ) ,
108+ ( "strict" , strict . ToString ( ) . ToLower ( ) )
109+ ] ;
90110
91- if ( page . HasValue ) queryParams . Add ( "page" , page . Value . ToString ( ) ) ;
92- if ( max . HasValue ) queryParams . Add ( "max" , max . InternalClamp ( 1 , 20 ) . ToString ( ) ) ;
93- if ( mode . HasValue ) queryParams . Add ( "mode" , mode . ToString ( ) ) ;
94- if ( patched . HasValue ) queryParams . Add ( "patched" , patched . Value . GetBoolInt ( ) ) ;
95- if ( key . HasValue ) queryParams . Add ( "key" , key . Value . GetBoolInt ( ) ) ;
96- if ( universal . HasValue ) queryParams . Add ( "universal" , universal . Value . GetBoolInt ( ) ) ;
97- if ( verified . HasValue ) queryParams . Add ( "verified" , verified . Value . GetBoolInt ( ) ) ;
98- if ( sortBy . HasValue ) queryParams . Add ( "sortBy" , sortBy . ToString ( ) ) ;
99- if ( order . HasValue ) queryParams . Add ( "order" , order . ToString ( ) ) ;
100- if ( strict . HasValue ) queryParams . Add ( "strict" , strict . ToString ( ) . ToLower ( ) ) ;
101-
102111 FetchResult fetchResult = await Client . Get < FetchResult > ( "script/search" , queryParams ) ;
103112
104113 return fetchResult . Result ;
0 commit comments