-
Notifications
You must be signed in to change notification settings - Fork 48
Expand file tree
/
Copy pathImageServer.cs
More file actions
102 lines (98 loc) · 3.07 KB
/
ImageServer.cs
File metadata and controls
102 lines (98 loc) · 3.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Threading;
using api;
namespace server
{
// Token: 0x02000050 RID: 80
internal class ImageServer
{
// Token: 0x06000227 RID: 551 RVA: 0x00006D1C File Offset: 0x00004F1C
public ImageServer()
{
try
{
Console.WriteLine("[ImageServer.cs] has started.");
new Thread(new ThreadStart(this.StartListen)).Start();
}
catch (Exception ex)
{
Console.WriteLine("An Exception Occurred while Listening :" + ex.ToString());
}
}
// Token: 0x06000228 RID: 552 RVA: 0x00006D84 File Offset: 0x00004F84
private void StartListen()
{
this.listener.Prefixes.Add("http://localhost:20182/");
for (; ; )
{
this.listener.Start();
Console.WriteLine("{ImageServer.cs] is listening.");
HttpListenerContext context = this.listener.GetContext();
HttpListenerRequest request = context.Request;
HttpListenerResponse response = context.Response;
string rawUrl = request.RawUrl;
string text;
byte[] i = File.ReadAllBytes("SaveData\\profileimage.png"); //File.ReadAllBytes("SaveData\\profileimage.png");
using (StreamReader streamReader = new StreamReader(request.InputStream, request.ContentEncoding))
{
text = streamReader.ReadToEnd();
}
if (rawUrl.StartsWith("/alt/"))
{
i = File.ReadAllBytes("SaveData\\profileimage.png");
}
else if (rawUrl.StartsWith("/" + File.ReadAllText("SaveData\\Profile\\username.txt")))
{
i = File.ReadAllBytes("SaveData\\profileimage.png");
}
else if (rawUrl.StartsWith("//room/"))
{
i = new WebClient().DownloadData("https://cdn.rec.net" + rawUrl.Remove(0, 1));
}
else if (rawUrl.StartsWith("//data/"))
{
i = new WebClient().DownloadData("https://cdn.rec.net" + rawUrl.Remove(0, 1));
}
else
{
try
{
i = new WebClient().DownloadData("https://img.rec.net" + rawUrl);
}
catch
{
Console.WriteLine("[ImageServer.cs] Image not found on img.rec.net.");
}
}
if (rawUrl.StartsWith("/CustomRoom.png"))
{
try
{
i = new WebClient().DownloadData("https://img.rec.net/" + File.ReadAllText("SaveData\\Rooms\\Downloaded\\imagename.txt"));
}
catch
{
Console.WriteLine("[ImageServer.cs] Image not found on img.rec.net.");
i = new WebClient().DownloadData("https://img.rec.net/DefaultRoomImage.jpg");
}
}
Console.WriteLine("Image Requested: " + rawUrl);
Console.WriteLine("Image Data: " + text);
Console.WriteLine("Image Response: ");
byte[] bytes = i;
response.ContentLength64 = (long)bytes.Length;
Stream outputStream = response.OutputStream;
outputStream.Write(bytes, 0, bytes.Length);
Thread.Sleep(1);
outputStream.Close();
this.listener.Stop();
}
}
public static string VersionCheckResponse = "{\"ValidVersion\":true}";
public static string BlankResponse = "";
private HttpListener listener = new HttpListener();
}
}