From 2cb980ff7b2bc249c78c27124483643926b55b8e Mon Sep 17 00:00:00 2001 From: Sander Grindheim Date: Wed, 21 Jul 2021 02:38:04 -0700 Subject: [PATCH] added class to store html and css for site --- .../DesignTimeBuild/.dtbcache.v2 | Bin 62814 -> 62814 bytes .vs/VSWorkspaceState.json | 1 - .vs/slnx.sqlite | Bin 167936 -> 167936 bytes DataManager.cs | 2 +- ProgramManager.cs | 10 +++- Server.cs | 16 +---- WebSite.cs | 55 ++++++++++++++++++ XmlHelper.cs | 2 - 8 files changed, 66 insertions(+), 20 deletions(-) create mode 100644 WebSite.cs diff --git a/.vs/StreamLabs_Helper/DesignTimeBuild/.dtbcache.v2 b/.vs/StreamLabs_Helper/DesignTimeBuild/.dtbcache.v2 index 3dea57fdbbdffcf234d1d3f6de137d5850f6cefb..b8c5ab515ec84910dabe11d914fc3ea5e6f1e4ef 100644 GIT binary patch delta 433 zcmZ|JyH3L}6b4`?MpdcAbwdbVfwZyHbnDE*&`L}o#g0P}6H>Wf5?V^R4WK*;$|LXs zUDB}+&;@ruV&pd}5(|;O{Lb+?u}5P%8dK}})!M2@9##Azpb+2;De@fIa>;BLKX=j0@(za z&gbr$sji?JA{9ii2Q854ZoUz>vD$$nIEE8Ag)=yZh3WJK))Fq^01n{_t|5j5{?6Ut zy8{;HO^?Ygk|NElITQWyPvLf2=phSexI>!5`e2&x!Tfv{d*&klUE=owXdw@HJ%Ty- o$rSMP)(O$1qb+S~s%O5Ib=DuYR;~9;Pl~iKY1s87NlTy2ZzSzhUjP6A delta 423 zcmZ|JxlY4C5C-5~FCb_D(IFIG0bjeeJ8Bw=v@|}lASw#(%TBlgG$EGYIgsCg7a#>t zrlbhXB2iFK@DBd`qGm!#$BRql{#r)yRPHhcb0n9Ywt~1b*p@QQj^n+vDjj)4#`icHj7e< zG=m0cScL@EO8vZ$ui&%^Td)l~unT)IHJskZnI;Zk9X8+)j^G$__&Zl1Zvw|W^-ydf z3PhTvoz#y!XD7qLDdHF!&JbzYIZ*QjQ1b-t=pp|-;`ae)VQu^_ffip;0bg^TF~eGh g8_NhY@;PHhyS!W7y<~Izq566s7gkY}w;u_@H>nI#+yDRo diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json index 028eaf5..6b61141 100644 --- a/.vs/VSWorkspaceState.json +++ b/.vs/VSWorkspaceState.json @@ -2,6 +2,5 @@ "ExpandedNodes": [ "" ], - "SelectedNode": "\\WebParser.cs", "PreviewInSolutionExplorer": false } \ No newline at end of file diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite index 60d08a6d27ec08ecfb1cef089ddd9be216bda0da..30f7405fef7b59962500113bbfda9ef1233bff6c 100644 GIT binary patch delta 6287 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 delta 4704 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 Hc*OR9l8Z)b diff --git a/DataManager.cs b/DataManager.cs index 33a6b22..be6b848 100644 --- a/DataManager.cs +++ b/DataManager.cs @@ -5,7 +5,7 @@ namespace StreamLabs_Helper { public class DataManager { - private static string defaultUrl = "https://w2g.tv/rooms/e6shdqxijs69ovevtd?lang=en"; + private static string defaultUrl = "https://w2g.tv/rooms/challengerandymusic-h749vkhemnt5dmld09?lang=en"; private static string prefFileName = "Preferences.txt"; private static string preferenceFilePath; diff --git a/ProgramManager.cs b/ProgramManager.cs index 91b9f9e..c9efb23 100644 --- a/ProgramManager.cs +++ b/ProgramManager.cs @@ -1,6 +1,5 @@ using System; using System.Timers; -using System.Threading; using System.Threading.Tasks; namespace StreamLabs_Helper @@ -90,7 +89,7 @@ static void Timer_Elapsed(object sender, ElapsedEventArgs e) Set_Timer(timerInterval); } - static async Task FindIFrameDontUpdateDelegate() //might need to de-async this since it needs to run once before program can do anything + static async Task FindIFrameDontUpdateDelegate() { var result = await parser.FindIFrameOnPage(url); Console.WriteLine("iframeResult: " + result); @@ -114,10 +113,10 @@ static void Timer_Elapsed(object sender, ElapsedEventArgs e) try { string foundText = await parser.GetIFrameTitle(); - Console.WriteLine("foundText: " + foundText); if (foundText is null) { return WebParser.ParsingStatus.Failure; } + Console.WriteLine("foundText: " + foundText); server.UpdateResponse(foundText); return WebParser.ParsingStatus.Success; } @@ -128,6 +127,11 @@ static void Timer_Elapsed(object sender, ElapsedEventArgs e) } } + public static void Print(string message) + { + Console.WriteLine((message ?? "empty message") + Environment.NewLine); + } + public static void Error(string message = "unspecified error", bool fatal = false) { Console.WriteLine(message + "\n"); diff --git a/Server.cs b/Server.cs index e3832a6..1494694 100644 --- a/Server.cs +++ b/Server.cs @@ -11,23 +11,13 @@ class Server : IDisposable { static volatile HttpListener _httpListener = new HttpListener(); Thread _responseThread; - private string responsePrefix; - private string responseSuffix; private string responseString; private object threadLock = new object(); private bool shouldRun = true; public Server(string message = null) { - string parseInterval = (ProgramManager.timerInterval / 1000).ToString(); - Console.WriteLine("parseInterval: " + parseInterval); - responsePrefix = - "Watch2Gether Title Displayer"; - responseSuffix = ""; - string defaultWelcome = responsePrefix + "Server initializing.... If this takes longer than 10 seconds," + - "then it's bugged. Check to make sure a youtube video is playing (not a built-in Blender short), then restart this app." + responseSuffix; - responseString = message ?? defaultWelcome; + responseString = WebSite.FormSite(message); } public bool StartServer(string mode) @@ -100,9 +90,9 @@ void ResponseThread() } } - public void UpdateResponse(string response) //updates the reponse that the server will display + public void UpdateResponse(string newResponse) //updates the reponse that the server will display { - responseString = responsePrefix + response + responseSuffix; + responseString = WebSite.FormSite(newResponse); } public static bool IsAdministrator() diff --git a/WebSite.cs b/WebSite.cs new file mode 100644 index 0000000..0e2250d --- /dev/null +++ b/WebSite.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StreamLabs_Helper +{ + static class WebSite + { + static private int updateInterval = 3; //change to use WebSite as timer authority + public static string defaultMessage { get; } = "Server initializing.... If this takes longer than 10 seconds," + + "then it's bugged. Check to make sure a youtube video is playing (not a built-in Blender short), then restart this app."; + private static HtmlStruct SiteHtml; + private static string cssText = @""; + + struct HtmlStruct + { + public string head; + public string bodyPrefix; + public string bodySuffix; + } + + static WebSite() + { + ProgramManager.Print("updateInterval: " + updateInterval); + FormHtml(); + } + + public static string FormSite(string message) + { + if (message is not null) + return (SiteHtml.head + SiteHtml.bodyPrefix + message + SiteHtml.bodySuffix); + else + return defaultMessage; + } + + private static void FormHtml() + { + SiteHtml.head = FormHead(updateInterval, cssText); + SiteHtml.bodyPrefix = ""; + SiteHtml.bodySuffix = ""; + } + + private static string FormHead(int refreshRate, string css) + { + return "Watch2Gether Title Displayer" + css + ""; + } + } +} diff --git a/XmlHelper.cs b/XmlHelper.cs index f443ff7..7f3e8f6 100644 --- a/XmlHelper.cs +++ b/XmlHelper.cs @@ -1,7 +1,5 @@ using System; -using System.Collections.Generic; using System.Text; -using System.Threading.Tasks; using System.Xml; using System.Xml.Serialization; using System.IO;