// load a script directly from a URL static void RunUrlLink(string url) { var script = NetAccess.LoadUrlScript(url); if (script == null) { _output.WriteLine("*** invalid url path: '{0}'", url); } else { _output.WriteLine("Loading: '{0}'", script); RunScript(url, script, _inputs, _startlevel); } }
// load a script via URL query parameters static void RunUrlQuery(string url) { var args = NetAccess.ExtractUrlParameters(url); if (args.ContainsKey("u")) // url { RunUrlLink(args["u"]); } else if (args.ContainsKey("w")) // web site { RunUrlLink(@"https://david-pfx.github.io/PuzzlangWeb/Puzzles/" + args["w"]); } else if (args.ContainsKey("p")) // local path { _output.WriteLine("Loading: '{0}'", args["p"]); RunScript(args["p"], ReadFile(args["p"]), _inputs, _startlevel); } else { _output.WriteLine("*** invalid url query: '{0}'", url); } }
static void RunGist(string gist) { var gistid = NetAccess.ExtractGist(gist); if (gistid == null) { _output.WriteLine("*** invalid gist id: '{0}'", gist); } else { _output.WriteLine("Loading gist: '{0}'", gistid); var script = NetAccess.LoadGist(gistid); if (script == null) { _output.WriteLine("*** gist not found: '{0}'", gist); } else { RunScript($"Gist: {_gist}", script, _inputs, _startlevel); } } }
static void RunGistConvert(string listname, string dir) { _output.WriteLine($"Converting gists: '{listname}' to '{dir}'"); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } foreach (var line in ReadLines(ReadFile(listname))) { var gistid = NetAccess.ExtractGist(line); if (gistid == null) { _output.WriteLine("*** invalid gist id: '{0}'", line); } else { var script = NetAccess.LoadGist(gistid); var outpath = Path.Combine(dir, gistid + ".txt"); using (var sw = new StreamWriter(outpath)) sw.Write(script); } } }