1
- using devRantDotNet . Source . Models ;
1
+ using devRantDotNet . Source ;
2
+ using devRantDotNet . Source . Models ;
2
3
using Newtonsoft . Json ;
3
4
using System ;
4
5
using System . Collections . Generic ;
@@ -15,7 +16,7 @@ namespace devRantDotNet
15
16
/// <summary>
16
17
/// A C# Wrapper for the devRant API
17
18
/// </summary>
18
- public class devRant : IDisposable
19
+ public class devRant : IDisposable , IdevRant
19
20
{
20
21
21
22
/// <summary>
@@ -38,7 +39,7 @@ public enum SortType
38
39
/// </summary>
39
40
recent
40
41
}
41
-
42
+
42
43
/// <summary>
43
44
/// Uses <see cref="HttpWebRequest"/> and <see cref="HttpWebResponse"/> to create requests to the API.
44
45
/// Returns the JSON result.
@@ -62,7 +63,7 @@ private async Task<string> MakeRequestAsync(string url)
62
63
string t ;
63
64
var response = ( HttpWebResponse ) await request . GetResponseAsync ( ) ;
64
65
65
- using ( var sr = new StreamReader ( response . GetResponseStream ( ) ) )
66
+ using ( var sr = new StreamReader ( response . GetResponseStream ( ) ) )
66
67
{
67
68
t = sr . ReadToEnd ( ) ;
68
69
}
@@ -133,10 +134,12 @@ private Comment JSONToCommentObject(dynamic c)
133
134
/// Returns all the rants from the feed at: https://www.devrant.io/feed
134
135
/// </summary>
135
136
/// <param name="type"> Type of sort e.g. Top, Algo or Recent</param>
137
+ /// <param name="limit">The amount of rants to load</param>
138
+ /// <param name="skip">Skips n amount of rants, useful for paging</param>
136
139
/// <returns>A List of Rants which are iterable</returns>
137
- public async Task < List < Rant > > GetRantsAsync ( SortType type )
140
+ public async Task < List < Rant > > GetRantsAsync ( SortType type , int limit = 30 , int skip = 10 )
138
141
{
139
- var req = await MakeRequestAsync ( Values . AllRants + " ?sort=" + type + "&app=3 ") ;
142
+ var req = await MakeRequestAsync ( $ " { Values . AllRants } ?sort={ type } &limit= { limit } &skip= { skip } & { Values . AppId } ") ;
140
143
dynamic results = JsonConvert . DeserializeObject < dynamic > ( req ) ;
141
144
142
145
if ( results . success != "true" )
@@ -146,7 +149,7 @@ public async Task<List<Rant>> GetRantsAsync(SortType type)
146
149
147
150
List < Rant > rants = new List < Rant > ( ) ;
148
151
149
- for ( int i = 0 ; i < results . rants . Count ; i ++ )
152
+ for ( int i = 0 ; i < results . rants . Count ; i ++ )
150
153
{
151
154
var r = results . rants [ i ] ;
152
155
Rant rant = JSONToRantObject ( r ) ;
@@ -166,7 +169,7 @@ public async Task<Rant> GetRantAsync(int id)
166
169
{
167
170
try
168
171
{
169
- var req = await MakeRequestAsync ( Values . SingleRant + id + Values . AppId ) ;
172
+ var req = await MakeRequestAsync ( $ " { Values . SingleRant } { id } ? { Values . AppId } " ) ;
170
173
dynamic results = JsonConvert . DeserializeObject < dynamic > ( req ) ;
171
174
var r = results . rant ;
172
175
@@ -178,7 +181,8 @@ public async Task<Rant> GetRantAsync(int id)
178
181
rant . rant_comments . Add ( JSONToCommentObject ( current ) ) ;
179
182
}
180
183
return rant ;
181
- } catch ( Exception e )
184
+ }
185
+ catch ( Exception e )
182
186
{
183
187
return null ;
184
188
}
@@ -193,7 +197,7 @@ public async Task<int> GetUserIdAsync(string username)
193
197
{
194
198
try
195
199
{
196
- var req = await MakeRequestAsync ( Values . UsernameById + " ?username=" + username + "&app=3 ") ;
200
+ var req = await MakeRequestAsync ( $ " { Values . UsernameById } ?username={ username } & { Values . AppId } ") ;
197
201
dynamic results = JsonConvert . DeserializeObject < dynamic > ( req ) ;
198
202
199
203
if ( results . success != "true" )
@@ -216,10 +220,10 @@ public async Task<User> GetProfileAsync(long id)
216
220
{
217
221
try
218
222
{
219
- var req = await MakeRequestAsync ( Values . User + id + Values . AppId ) ;
223
+ var req = await MakeRequestAsync ( $ " { Values . User } { id } ? { Values . AppId } " ) ;
220
224
dynamic results = JsonConvert . DeserializeObject < dynamic > ( req ) ;
221
225
var profile = results . profile ;
222
- if ( results . success != "true" )
226
+ if ( results . success != "true" )
223
227
{
224
228
throw new Exception ( "Something went wrong!" ) ;
225
229
}
@@ -234,7 +238,8 @@ public async Task<User> GetProfileAsync(long id)
234
238
user . github = profile . github ;
235
239
user . website = profile . website ;
236
240
237
- for ( var i = 0 ; i < profile . content . content . rants . Count ; i ++ ) {
241
+ for ( var i = 0 ; i < profile . content . content . rants . Count ; i ++ )
242
+ {
238
243
user . rants . Add ( JSONToRantObject ( profile . content . content . rants [ i ] ) ) ;
239
244
}
240
245
@@ -243,12 +248,12 @@ public async Task<User> GetProfileAsync(long id)
243
248
user . upvoted . Add ( JSONToRantObject ( profile . content . content . upvoted [ i ] ) ) ;
244
249
}
245
250
246
- for ( var i = 0 ; i < profile . content . content . comments . Count ; i ++ )
251
+ for ( var i = 0 ; i < profile . content . content . comments . Count ; i ++ )
247
252
{
248
253
user . comments . Add ( JSONToCommentObject ( profile . content . content . comments [ i ] ) ) ;
249
254
}
250
255
251
- for ( var i = 0 ; i < profile . content . content . favorites . Count ; i ++ )
256
+ for ( var i = 0 ; i < profile . content . content . favorites . Count ; i ++ )
252
257
{
253
258
user . favorites . Add ( JSONToRantObject ( profile . content . content . favorites [ i ] ) ) ;
254
259
}
@@ -278,7 +283,7 @@ public async Task<List<Rant>> SearchAsync(string term)
278
283
{
279
284
try
280
285
{
281
- var req = await MakeRequestAsync ( Values . Search + " ?term=" + term + "&app=3 ") ;
286
+ var req = await MakeRequestAsync ( $ " { Values . Search } ?term={ term } & { Values . AppId } ") ;
282
287
dynamic results = JsonConvert . DeserializeObject < dynamic > ( req ) ;
283
288
284
289
if ( results . success != "true" )
@@ -310,7 +315,7 @@ public async Task<Rant> GetRandomRantAsync()
310
315
{
311
316
try
312
317
{
313
- var req = await MakeRequestAsync ( Values . Random + Values . AppId ) ;
318
+ var req = await MakeRequestAsync ( $ " { Values . Random } ? { Values . AppId } " ) ;
314
319
dynamic results = JsonConvert . DeserializeObject < dynamic > ( req ) ;
315
320
316
321
return results . success == "true" ? JSONToRantObject ( results . rant ) : null ;
0 commit comments