mirror of
https://github.com/appinfosapienza/so-un-bot.git
synced 2025-03-13 16:05:22 +01:00
67 lines
2.3 KiB
C#
67 lines
2.3 KiB
C#
|
// This feature is not maintained anymore
|
||
|
// it was exposing a webserver returning a json with all the questions and answers.
|
||
|
// It was originally intended for a web version of the bot, but was never completed.
|
||
|
|
||
|
using System.Net;
|
||
|
|
||
|
namespace SoUnBot.Modules.OttoLinux
|
||
|
{
|
||
|
public class PhotoServer
|
||
|
{
|
||
|
public PhotoServer(string baseDir)
|
||
|
{
|
||
|
using var listener = new HttpListener();
|
||
|
listener.Prefixes.Add("http://+:8001/");
|
||
|
listener.Start();
|
||
|
Console.WriteLine("PhotoServer is listening on port 8001...");
|
||
|
|
||
|
while (true)
|
||
|
{
|
||
|
HttpListenerContext ctx = listener.GetContext();
|
||
|
using HttpListenerResponse resp = ctx.Response;
|
||
|
|
||
|
resp.StatusCode = (int)HttpStatusCode.OK;
|
||
|
resp.StatusDescription = "Status OK";
|
||
|
resp.AddHeader("Access-Control-Allow-Origin", "*");
|
||
|
resp.AddHeader("Access-Control-Allow-Headers", "*");
|
||
|
resp.AddHeader("Access-Control-Allow-Methods", "GET");
|
||
|
|
||
|
if (ctx.Request.Url == null)
|
||
|
{
|
||
|
resp.StatusCode = (int)HttpStatusCode.BadRequest;
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
if (!File.Exists(baseDir + "/" + ctx.Request.Url.AbsolutePath))
|
||
|
{
|
||
|
resp.StatusCode = (int)HttpStatusCode.NotFound;
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
if (ctx.Request.Url.AbsolutePath.EndsWith("png"))
|
||
|
{
|
||
|
resp.AddHeader("Content-Type", "image/png");
|
||
|
}
|
||
|
else if (ctx.Request.Url.AbsolutePath.EndsWith("jpg"))
|
||
|
{
|
||
|
resp.AddHeader("Content-Type", "image/jpeg");
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
resp.StatusCode = (int)HttpStatusCode.BadRequest;
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
byte[] buffer = File.ReadAllBytes(baseDir + "/" + ctx.Request.Url.AbsolutePath);
|
||
|
resp.ContentLength64 = buffer.Length;
|
||
|
|
||
|
using Stream ros = resp.OutputStream;
|
||
|
try
|
||
|
{
|
||
|
ros.Write(buffer, 0, buffer.Length);
|
||
|
} catch { }
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|