summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/SMAPI.Web/Framework/Clients/Pastebin/PastebinClient.cs32
-rw-r--r--src/SMAPI.Web/Startup.cs8
2 files changed, 10 insertions, 30 deletions
diff --git a/src/SMAPI.Web/Framework/Clients/Pastebin/PastebinClient.cs b/src/SMAPI.Web/Framework/Clients/Pastebin/PastebinClient.cs
index 12c3e83f..1e46f2dc 100644
--- a/src/SMAPI.Web/Framework/Clients/Pastebin/PastebinClient.cs
+++ b/src/SMAPI.Web/Framework/Clients/Pastebin/PastebinClient.cs
@@ -1,11 +1,8 @@
using System;
-using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
-using System.Text;
using System.Threading.Tasks;
-using System.Web;
using Pathoschild.Http.Client;
namespace StardewModdingAPI.Web.Framework.Clients.Pastebin
@@ -82,15 +79,15 @@ namespace StardewModdingAPI.Web.Framework.Clients.Pastebin
// post to API
string response = await this.Client
.PostAsync("api/api_post.php")
- .WithBodyContent(this.GetFormUrlEncodedContent(new Dictionary<string, string>
+ .WithBody(p => p.FormUrlEncoded(new
{
- ["api_option"] = "paste",
- ["api_user_key"] = this.UserKey,
- ["api_dev_key"] = this.DevKey,
- ["api_paste_private"] = "1", // unlisted
- ["api_paste_name"] = $"SMAPI log {DateTime.UtcNow:s}",
- ["api_paste_expire_date"] = "N", // never expire
- ["api_paste_code"] = content
+ api_option = "paste",
+ api_user_key = this.UserKey,
+ api_dev_key = this.DevKey,
+ api_paste_private = 1, // unlisted
+ api_paste_name = $"SMAPI log {DateTime.UtcNow:s}",
+ api_paste_expire_date = "N", // never expire
+ api_paste_code = content
}))
.AsString();
@@ -117,18 +114,5 @@ namespace StardewModdingAPI.Web.Framework.Clients.Pastebin
{
this.Client.Dispose();
}
-
-
- /*********
- ** Private methods
- *********/
- /// <summary>Build an HTTP content body with form-url-encoded content.</summary>
- /// <param name="data">The content to encode.</param>
- /// <remarks>This bypasses an issue where <see cref="FormUrlEncodedContent"/> restricts the body length to the maximum size of a URL, which isn't applicable here.</remarks>
- private HttpContent GetFormUrlEncodedContent(IDictionary<string, string> data)
- {
- string body = string.Join("&", from arg in data select $"{HttpUtility.UrlEncode(arg.Key)}={HttpUtility.UrlEncode(arg.Value)}");
- return new StringContent(body, Encoding.UTF8, "application/x-www-form-urlencoded");
- }
}
}
diff --git a/src/SMAPI.Web/Startup.cs b/src/SMAPI.Web/Startup.cs
index 315f5f88..7beb0bcc 100644
--- a/src/SMAPI.Web/Startup.cs
+++ b/src/SMAPI.Web/Startup.cs
@@ -5,7 +5,6 @@ using Microsoft.AspNetCore.Rewrite;
using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Logging;
using MongoDB.Driver;
using Newtonsoft.Json;
using StardewModdingAPI.Toolkit.Serialisation;
@@ -57,6 +56,7 @@ namespace StardewModdingAPI.Web
.Configure<SiteConfig>(this.Configuration.GetSection("Site"))
.Configure<MongoDbConfig>(this.Configuration.GetSection("MongoDB"))
.Configure<RouteOptions>(options => options.ConstraintMap.Add("semanticVersion", typeof(VersionConstraint)))
+ .AddLogging()
.AddMemoryCache()
.AddMvc()
.ConfigureApplicationPartManager(manager => manager.FeatureProviders.Add(new InternalControllerFeatureProvider()))
@@ -125,12 +125,8 @@ namespace StardewModdingAPI.Web
/// <summary>The method called by the runtime to configure the HTTP request pipeline.</summary>
/// <param name="app">The application builder.</param>
/// <param name="env">The hosting environment.</param>
- /// <param name="loggerFactory">The logger factory.</param>
- public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
+ public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
- loggerFactory.AddConsole(this.Configuration.GetSection("Logging"));
- loggerFactory.AddDebug();
-
if (env.IsDevelopment())
app.UseDeveloperExceptionPage();