mirror of
https://github.com/appinfosapienza/so-un-bot.git
synced 2025-03-13 12:45:22 +01:00
66 lines
2.3 KiB
C#
66 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 { }
|
|
}
|
|
}
|
|
}
|
|
}
|