Compare commits
No commits in common. "0b9948e3671f978613165eec3de6333c5ea5b6f2" and "a94186455b44071a6c005548b02e1c2dd622db85" have entirely different histories.
0b9948e367
...
a94186455b
@ -67,7 +67,7 @@ public struct Manga
|
|||||||
while (this.folderName.EndsWith('.'))
|
while (this.folderName.EndsWith('.'))
|
||||||
this.folderName = this.folderName.Substring(0, this.folderName.Length - 1);
|
this.folderName = this.folderName.Substring(0, this.folderName.Length - 1);
|
||||||
string onlyLowerLetters = string.Concat(this.sortName.ToLower().Where(Char.IsLetter));
|
string onlyLowerLetters = string.Concat(this.sortName.ToLower().Where(Char.IsLetter));
|
||||||
this.internalId = DateTime.Now.Ticks.ToString();
|
this.internalId = Convert.ToBase64String(Encoding.ASCII.GetBytes($"{onlyLowerLetters}{this.year}"));
|
||||||
this.ignoreChaptersBelow = ignoreChaptersBelow ?? 0f;
|
this.ignoreChaptersBelow = ignoreChaptersBelow ?? 0f;
|
||||||
this.latestChapterDownloaded = 0;
|
this.latestChapterDownloaded = 0;
|
||||||
this.latestChapterAvailable = 0;
|
this.latestChapterAvailable = 0;
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
using System.Data;
|
using Newtonsoft.Json;
|
||||||
using System.Diagnostics;
|
|
||||||
using Newtonsoft.Json;
|
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
namespace Tranga.MangaConnectors;
|
namespace Tranga.MangaConnectors;
|
||||||
@ -24,22 +22,29 @@ public class MangaConnectorJsonConverter : JsonConverter
|
|||||||
public override object ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer)
|
public override object ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer)
|
||||||
{
|
{
|
||||||
JObject jo = JObject.Load(reader);
|
JObject jo = JObject.Load(reader);
|
||||||
string? connectorName = jo.Value<string>("name");
|
switch (jo.GetValue("name")!.Value<string>()!)
|
||||||
if (connectorName is null)
|
|
||||||
throw new ConstraintException("Name can not be null.");
|
|
||||||
return connectorName switch
|
|
||||||
{
|
{
|
||||||
"MangaDex" => this._connectors.First(c => c is MangaDex),
|
case "MangaDex":
|
||||||
"Manganato" => this._connectors.First(c => c is Manganato),
|
return this._connectors.First(c => c is MangaDex);
|
||||||
"MangaKatana" => this._connectors.First(c => c is MangaKatana),
|
case "Manganato":
|
||||||
"Mangasee" => this._connectors.First(c => c is Mangasee),
|
return this._connectors.First(c => c is Manganato);
|
||||||
"Mangaworld" => this._connectors.First(c => c is Mangaworld),
|
case "MangaKatana":
|
||||||
"Bato" => this._connectors.First(c => c is Bato),
|
return this._connectors.First(c => c is MangaKatana);
|
||||||
"Manga4Life" => this._connectors.First(c => c is MangaLife),
|
case "Mangasee":
|
||||||
"ManhuaPlus" => this._connectors.First(c => c is ManhuaPlus),
|
return this._connectors.First(c => c is Mangasee);
|
||||||
"MangaHere" => this._connectors.First(c => c is MangaHere),
|
case "Mangaworld":
|
||||||
_ => throw new UnreachableException($"Could not find Connector with name {connectorName}")
|
return this._connectors.First(c => c is Mangaworld);
|
||||||
};
|
case "Bato":
|
||||||
|
return this._connectors.First(c => c is Bato);
|
||||||
|
case "Manga4Life":
|
||||||
|
return this._connectors.First(c => c is MangaLife);
|
||||||
|
case "ManhuaPlus":
|
||||||
|
return this._connectors.First(c => c is ManhuaPlus);
|
||||||
|
case "MangaHere":
|
||||||
|
return this._connectors.First(c => c is MangaHere);
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new Exception();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool CanWrite => false;
|
public override bool CanWrite => false;
|
||||||
|
@ -243,7 +243,7 @@ public class MangaDex : MangaConnector
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(chapterNum is not "null" && !chapters.Any(chp => chp.volumeNumber.Equals(volume) && chp.chapterNumber.Equals(chapterNum)))
|
if(chapterNum is not "null")
|
||||||
chapters.Add(new Chapter(manga, title, volume, chapterNum, chapterId));
|
chapters.Add(new Chapter(manga, title, volume, chapterNum, chapterId));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -63,11 +63,10 @@ public class Server : GlobalBase
|
|||||||
{
|
{
|
||||||
HttpListenerRequest request = context.Request;
|
HttpListenerRequest request = context.Request;
|
||||||
HttpListenerResponse response = context.Response;
|
HttpListenerResponse response = context.Response;
|
||||||
if (request.Url!.LocalPath.Contains("favicon"))
|
if(request.HttpMethod == "OPTIONS")
|
||||||
{
|
SendResponse(HttpStatusCode.OK, context.Response);
|
||||||
|
if(request.Url!.LocalPath.Contains("favicon"))
|
||||||
SendResponse(HttpStatusCode.NoContent, response);
|
SendResponse(HttpStatusCode.NoContent, response);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (request.HttpMethod)
|
switch (request.HttpMethod)
|
||||||
{
|
{
|
||||||
@ -80,10 +79,7 @@ public class Server : GlobalBase
|
|||||||
case "DELETE":
|
case "DELETE":
|
||||||
HandleDelete(request, response);
|
HandleDelete(request, response);
|
||||||
break;
|
break;
|
||||||
case "OPTIONS":
|
default:
|
||||||
SendResponse(HttpStatusCode.OK, context.Response);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
SendResponse(HttpStatusCode.BadRequest, response);
|
SendResponse(HttpStatusCode.BadRequest, response);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -711,15 +707,14 @@ public class Server : GlobalBase
|
|||||||
private void SendResponse(HttpStatusCode statusCode, HttpListenerResponse response, object? content = null)
|
private void SendResponse(HttpStatusCode statusCode, HttpListenerResponse response, object? content = null)
|
||||||
{
|
{
|
||||||
//Log($"Response: {statusCode} {content}");
|
//Log($"Response: {statusCode} {content}");
|
||||||
|
|
||||||
response.StatusCode = (int)statusCode;
|
response.StatusCode = (int)statusCode;
|
||||||
response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With");
|
response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With");
|
||||||
response.AddHeader("Access-Control-Allow-Methods", "GET, POST, DELETE");
|
response.AddHeader("Access-Control-Allow-Methods", "GET, POST, DELETE");
|
||||||
response.AddHeader("Access-Control-Max-Age", "1728000");
|
response.AddHeader("Access-Control-Max-Age", "1728000");
|
||||||
response.AppendHeader("Access-Control-Allow-Origin", "*");
|
response.AppendHeader("Access-Control-Allow-Origin", "*");
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
||||||
if (content is not Stream)
|
if (content is not Stream)
|
||||||
{
|
{
|
||||||
response.ContentType = "application/json";
|
response.ContentType = "application/json";
|
||||||
@ -755,7 +750,7 @@ public class Server : GlobalBase
|
|||||||
stream.Close();
|
stream.Close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (HttpListenerException e)
|
||||||
{
|
{
|
||||||
Log(e.ToString());
|
Log(e.ToString());
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user