Add Tests, Add UserAgent, Upgrade Protocol Support to HTTP1.1 & remove whitespace. Plus VerBump

master
exsersewo 6 years ago
parent a5d8af2c33
commit dbd04999bf
  1. 12
      Booru.Net.Tests/Booru.Net.Tests.csproj
  2. 20
      Booru.Net.Tests/Program.cs
  3. 8
      Booru.Net.sln
  4. 1
      Booru.Net/Booru.Net.csproj
  5. 19
      Booru.Net/Client.cs
  6. 2
      Booru.Net/Models/Boards/E621Image.cs
  7. 6
      Booru.Net/Models/Boards/GelbooruImage.cs
  8. 9
      Booru.Net/WebRequest.cs

@ -0,0 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Booru.Net\Booru.Net.csproj" />
</ItemGroup>
</Project>

@ -0,0 +1,20 @@
using System.Threading.Tasks;
using System;
namespace Booru.Net.Tests
{
class Program
{
static void Main(string[] args) => StartAsync().GetAwaiter().GetResult();
static async Task StartAsync()
{
var BooruClient = new BooruClient();
var posts = await BooruClient.GetE621ImagesAsync("nintendo");
Console.ReadLine();
}
}
}

@ -3,7 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15 # Visual Studio 15
VisualStudioVersion = 15.0.27703.2026 VisualStudioVersion = 15.0.27703.2026
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Booru.Net", "Booru.Net\Booru.Net.csproj", "{BC612FDE-FC2D-42D8-AD7F-988874B6A839}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Booru.Net", "Booru.Net\Booru.Net.csproj", "{BC612FDE-FC2D-42D8-AD7F-988874B6A839}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Booru.Net.Tests", "Booru.Net.Tests\Booru.Net.Tests.csproj", "{747B6EAC-E4EB-4882-BDEB-5DEF9A3CA3E3}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -15,6 +17,10 @@ Global
{BC612FDE-FC2D-42D8-AD7F-988874B6A839}.Debug|Any CPU.Build.0 = Debug|Any CPU {BC612FDE-FC2D-42D8-AD7F-988874B6A839}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BC612FDE-FC2D-42D8-AD7F-988874B6A839}.Release|Any CPU.ActiveCfg = Release|Any CPU {BC612FDE-FC2D-42D8-AD7F-988874B6A839}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BC612FDE-FC2D-42D8-AD7F-988874B6A839}.Release|Any CPU.Build.0 = Release|Any CPU {BC612FDE-FC2D-42D8-AD7F-988874B6A839}.Release|Any CPU.Build.0 = Release|Any CPU
{747B6EAC-E4EB-4882-BDEB-5DEF9A3CA3E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{747B6EAC-E4EB-4882-BDEB-5DEF9A3CA3E3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{747B6EAC-E4EB-4882-BDEB-5DEF9A3CA3E3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{747B6EAC-E4EB-4882-BDEB-5DEF9A3CA3E3}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE

@ -23,6 +23,7 @@ Yande.re</Description>
<PackageTags>booru imageboard api wrapper</PackageTags> <PackageTags>booru imageboard api wrapper</PackageTags>
<PackageLicenseUrl>https://github.com/exsersewo/Booru.Net/blob/master/LICENSE</PackageLicenseUrl> <PackageLicenseUrl>https://github.com/exsersewo/Booru.Net/blob/master/LICENSE</PackageLicenseUrl>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance> <PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
<Version>1.0.0.2</Version>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

@ -121,5 +121,22 @@ namespace Booru.Net
} }
else return null; else return null;
} }
}
public async Task<IReadOnlyList<SafebooruImage>> GetSafebooruImagesAsync(params string[] tags)
=> await GetSafebooruImagesAsync(tags.AsEnumerable());
public async Task<IReadOnlyList<Rule34Image>> GetRule34ImagesAsync(params string[] tags)
=> await GetRule34ImagesAsync(tags.AsEnumerable());
public async Task<IReadOnlyList<RealbooruImage>> GetRealBooruImagesAsync(params string[] tags)
=> await GetRealBooruImagesAsync(tags.AsEnumerable());
public async Task<IReadOnlyList<DanbooruImage>> GetDanbooruImagesAsync(params string[] tags)
=> await GetDanbooruImagesAsync(tags.AsEnumerable());
public async Task<IReadOnlyList<GelbooruImage>> GetGelbooruImagesAsync(params string[] tags)
=> await GetGelbooruImagesAsync(tags.AsEnumerable());
public async Task<IReadOnlyList<KonaChanImage>> GetKonaChanImagesAsync(params string[] tags)
=> await GetKonaChanImagesAsync(tags.AsEnumerable());
public async Task<IReadOnlyList<E621Image>> GetE621ImagesAsync(params string[] tags)
=> await GetE621ImagesAsync(tags.AsEnumerable());
public async Task<IReadOnlyList<YandereImage>> GetYandereImagesAsync(params string[] tags)
=> await GetYandereImagesAsync(tags.AsEnumerable());
}
} }

@ -2,6 +2,6 @@
{ {
public class E621Image : GelbooruImage public class E621Image : GelbooruImage
{ {
public override string PostUrl { get { return "https://e621.net/post/show/" + ID; } } public override string PostUrl { get { return "https://e621.net/post/show/" + ID; } }
} }
} }

@ -7,12 +7,12 @@ namespace Booru.Net
{ {
[JsonProperty("directory")] [JsonProperty("directory")]
public string Directory { get; set; } public string Directory { get; set; }
[JsonProperty("tags")] [JsonProperty("tags")]
private string Ptags { get; set; } private string Ptags { get; set; }
public IReadOnlyList<string> Tags { get { return Ptags.Split(' '); } } public IReadOnlyList<string> Tags { get { return Ptags.Split(' '); } }
public virtual string PostUrl { get { return "https://gelbooru.com/index.php?page=post&s=view&id=" + ID; } } public virtual string PostUrl { get { return "https://gelbooru.com/index.php?page=post&s=view&id=" + ID; } }
} }
} }

@ -2,6 +2,7 @@
using System.Net; using System.Net;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.IO; using System.IO;
using System.Reflection;
namespace Booru.Net namespace Booru.Net
{ {
@ -9,12 +10,14 @@ namespace Booru.Net
{ {
public static HttpWebRequest CreateWebRequest(Uri uri) public static HttpWebRequest CreateWebRequest(Uri uri)
{ {
var cli = (HttpWebRequest)System.Net.WebRequest.Create(uri); var ver = Assembly.GetExecutingAssembly().GetName().Version;
cli.AllowAutoRedirect = true; var cli = (HttpWebRequest)System.Net.WebRequest.Create(uri);
cli.UserAgent = "Mozilla/5.0 Booru.Net/{VERSION} +https://github.com/exsersewo/Booru.Net".Replace("{VERSION}", $"{ver.Major}.{ver.MajorRevision}.{ver.Minor}.{ver.MinorRevision}");
cli.AllowAutoRedirect = true;
cli.KeepAlive = false; cli.KeepAlive = false;
cli.Timeout = 20000; cli.Timeout = 20000;
cli.ProtocolVersion = HttpVersion.Version10; cli.ProtocolVersion = HttpVersion.Version11;
return cli; return cli;
} }

Loading…
Cancel
Save