Skip to content

Commit f763b4a

Browse files
author
Hawkwood Glazier
committed
Added a GetComment overload that takes the raw uri
1 parent 439d42e commit f763b4a

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

RedditSharp/Reddit.cs

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public class Reddit
2525
private const string ComposeMessageUrl = "/api/compose";
2626
private const string RegisterAccountUrl = "/api/register";
2727
private const string GetThingUrl = "/api/info.json?id={0}";
28-
private const string GetCommentUrl = "/r/{0}/comments/{1}/foo/{2}.json";
28+
private const string GetCommentUrl = "/r/{0}/comments/{1}/foo/{2}";
2929
private const string GetPostUrl = "{0}.json";
3030
private const string DomainUrl = "www.reddit.com";
3131
private const string OAuthDomainUrl = "oauth.reddit.com";
@@ -322,18 +322,28 @@ public Comment GetComment(string subreddit, string name, string linkName)
322322
linkName = linkName.Substring(3);
323323
if (name.StartsWith("t1_"))
324324
name = name.Substring(3);
325-
var request = _webAgent.CreateGet(string.Format(GetCommentUrl, subreddit, linkName, name));
326-
var response = request.GetResponse();
327-
var data = _webAgent.GetResponseString(response.GetResponseStream());
328-
var json = JToken.Parse(data);
329-
return Thing.Parse(this, json[1]["data"]["children"][0], _webAgent) as Comment;
325+
326+
var url = string.Format(GetCommentUrl, subreddit, linkName, name);
327+
return GetComment(new Uri(url));
330328
}
331329
catch (WebException)
332330
{
333331
return null;
334332
}
335333
}
336334

335+
public Comment GetComment(Uri uri)
336+
{
337+
var url = string.Format(GetPostUrl, uri.AbsoluteUri);
338+
var request = _webAgent.CreateGet(url);
339+
var response = request.GetResponse();
340+
var data = _webAgent.GetResponseString(response.GetResponseStream());
341+
var json = JToken.Parse(data);
342+
343+
var sender = new Post().Init(this, json[0]["data"]["children"][0], _webAgent);
344+
return new Comment().Init(this, json[1]["data"]["children"][0], _webAgent, sender);
345+
}
346+
337347
public Listing<T> SearchByUrl<T>(string url) where T : Thing
338348
{
339349
var urlSearchQuery = string.Format(UrlSearchPattern, url);

0 commit comments

Comments
 (0)