-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMediaType.cs
77 lines (68 loc) · 3.07 KB
/
MediaType.cs
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
using System;
namespace FreneticMediaServer
{
public abstract class MediaType
{
public Startup Server;
public abstract string Name { get; }
public abstract string[] GetValidExtensions();
public abstract string GenerateHtmlPageFor(string category, string file, string extension, MetaFile meta);
public string HtmlSafe(string text)
{
return text.Replace("&", "&").Replace("\r", "").Replace("<", "<").Replace(">", ">").Replace("$", "$").Replace("\"", """);
}
public string TextifyBasic(DateTimeOffset date)
{
return date.Year + "/" + date.Month.ToString().PadLeft(2, '0') + "/" + date.Day.ToString().PadLeft(2, '0')
+ " " + date.Hour.ToString().PadLeft(2, '0') + ":" + date.Minute.ToString().PadLeft(2, '0') + ":" + date.Second.ToString().PadLeft(2, '0');
}
public string Textify(DateTimeOffset date)
{
string offset;
if (date.Offset.Hours < 0)
{
offset = "-" + (-date.Offset.Hours).ToString().PadLeft(2, '0');
}
else
{
offset = "+" + date.Offset.Hours.ToString().PadLeft(2, '0');
}
return TextifyBasic(date) + "<span class=\"minor_date_info\">" + " UTC" + offset + "</span>";
}
public string GenerateBasePage(MetaFile meta, string rawLink, string imageLink, string embedText)
{
string headers;
if (imageLink == null)
{
headers = "";
}
else
{
headers =
"<link rel=\"image_src\" href=\"" + imageLink + "\">"
+ "<meta name=\"image\" content=\"" + imageLink + "\">"
+ "<meta name=\"og:image\" content=\"" + imageLink + "\">"
+ "<meta name=\"twitter:image\" content=\"" + imageLink + "\">"
+ "<meta property=\"image\" content=\"" + imageLink + "\">"
+ "<meta property=\"og:image\" content=\"" + imageLink + "\">"
+ "<meta property=\"twitter:image\" content=\"" + imageLink + "\">";
}
string page = Startup.Page_Ref_FileView;
page = page.Replace("$NAME$", HtmlSafe(meta.OriginalName));
page = page.Replace("$TYPE$", HtmlSafe(Name));
page = page.Replace("$DESCRIPTION$", HtmlSafe(meta.Description).Replace("\n", "\n<br>"));
page = page.Replace("$DATE$", Textify(meta.Time));
page = page.Replace("$DATE_SHORT$", TextifyBasic(meta.Time));
page = page.Replace("$UPLOADER$", HtmlSafe(meta.Uploader));
page = page.Replace("$CONTACT_EMAIL$", HtmlSafe(Server.ContactEmail));
page = page.Replace("$FILE_EMBED$", embedText);
page = page.Replace("$RAW_LINK$", rawLink);
page = page.Replace("$IMAGE_HEADERS$", headers);
return page;
}
public virtual byte[] Recrunch(string extension, byte[] input)
{
return input;
}
}
}