public async Task AddToBanListTest() { var Agent = new RedditWebAgent(); RedditWebAgent.EnableRateLimit = true; RedditWebAgent.RateLimit = RedditWebAgent.RateLimitMode.Burst; RedditWebAgent.RootDomain = "oauth.reddit.com"; RedditWebAgent.UserAgent = "DirtBagUnitTests (By meepster23)"; RedditWebAgent.Protocol = "https"; var Auth = new RedditAuth(Agent); Auth.Login(); Agent.AccessToken = Auth.AccessToken; AutoModWrangler w = new AutoModWrangler(new RedditSharp.Reddit(Agent, true).GetSubreddit("GooAway")); await w.AddToBanList(new List <Models.BannedEntity>() { new Models.BannedEntity() { BanDate = DateTime.UtcNow, BannedBy = "DirtBagTests", BanReason = "DirtBagTests", EntityString = "DirtBagTests", Type = Models.BannedEntity.EntityType.User, SubName = "GooAway", ThingID = "66666" } }); var list = await w.GetBannedList(); int id = list.Where(l => l.ThingID == "66666" && l.BannedBy == "DirtBagTests").Select(l => l.ID).First(); await w.RemoveFromBanList(id, "DirtBagTests"); }
public async Task AddToBanListTest() { var Agent = new RedditWebAgent(); RedditWebAgent.EnableRateLimit = true; RedditWebAgent.RateLimit = RedditWebAgent.RateLimitMode.Burst; RedditWebAgent.RootDomain = "oauth.reddit.com"; RedditWebAgent.UserAgent = "DirtBagUnitTests (By meepster23)"; RedditWebAgent.Protocol = "https"; var Auth = new RedditAuth( Agent ); Auth.Login(); Agent.AccessToken = Auth.AccessToken; AutoModWrangler w = new AutoModWrangler( new RedditSharp.Reddit( Agent, true ).GetSubreddit( "GooAway" ) ); await w.AddToBanList( new List<Models.BannedEntity>() { new Models.BannedEntity() { BanDate = DateTime.UtcNow, BannedBy = "DirtBagTests", BanReason = "DirtBagTests", EntityString = "DirtBagTests", Type= Models.BannedEntity.EntityType.User, SubName = "GooAway", ThingID = "66666" } } ); var list = await w.GetBannedList(); int id = list.Where( l => l.ThingID == "66666" && l.BannedBy == "DirtBagTests" ).Select(l=>l.ID).First(); await w.RemoveFromBanList( id, "DirtBagTests" ); }
static string AuthToken(string _RedditLogin, string _RedditPWD, string _RedditAppID, string _RedditAppSecret) { // This call is good for 120 minutes string credentials = $"{_RedditAppID}:{_RedditAppSecret}"; byte[] bytes = Encoding.ASCII.GetBytes(credentials); string base64 = Convert.ToBase64String(bytes); var client = new RestClient($"https://www.reddit.com/api/v1/access_token?grant_type=password&username={_RedditLogin}&password={_RedditPWD}"); var request = new RestRequest(Method.POST); request.AddHeader("cache-control", "no-cache"); request.AddHeader("Connection", "keep-alive"); request.AddHeader("content-length", ""); request.AddHeader("accept-encoding", "gzip, deflate"); request.AddHeader("Host", "www.reddit.com"); request.AddHeader("Cache-Control", "no-cache"); request.AddHeader("Accept", "*/*"); request.AddHeader("User-Agent", "PostmanRuntime/7.15.0"); request.AddHeader($"Authorization", "Basic {base64}"); IRestResponse response = client.Execute(request); RedditAuth myReddit = RedditAuth.FromJson(response.Content); return(myReddit.AccessToken); }
public RedditApi(RedditAuth auth) : this(UrlConstants.RedditBaseOAuthApiUrl, new RedditHttpClientHandler(auth)) { }
public RedditHttpClientHandler(RedditAuth auth) { Auth = auth; }