public static HtmlNode DirCard(SoftDirectory i) { HtmlNode card = HtmlNode.CreateNode("<div id=\"dircard\" />"); (card.AppendChild(Text("", "div", "dirname"))).AppendChild(HtmlNode.CreateNode($"<a href=\"/dir&{i.URI()}\">{i.Name}</a>") /*Text($"/dir&{i}", "a", "dirname")*/); return(card); }
static int ChangeDirectory(string args) { SoftDirectory dir; if (args.Length < 1) { return(0); } if (args[0] == '/') { dir = Program.CentralDirectory.FindDir(args); } else { dir = selected.FindDir(args); } if (dir == null) { Console.WriteLine("Unknown directory or invalid path"); } else { selected = dir; } DisplaySelected(args); return(0); }
private static SoftDirectory LoadSoftDir(Loader a, CentralIndex s, SoftDirectory parent = null) { int id = a.NextInt; int subDirCount = a.NextInt; int fileCount = a.NextInt; string name = a.NextString; string thumb = a.NextString; string[] tags = Tags(a); SoftDirectory cur = new SoftDirectory(id, name, thumb); //if (parent == null) // cur = new SoftDirectory(id, name); //else // cur = parent.AddDirectory(new SoftDirectory(id, name)); //SoftDirectory[] subDirs = new SoftDirectory[subDirCount]; //SoftFile[] softFiles = new SoftFile[fileCount]; //for (int i = 0; i < subDirCount; i++) // subDirs[i] = LoadSoftDir(a, s, cur); //for (int i = 0; i < fileCount; i++) // softFiles[i] = s.FirstOrDefault(a.NextInt); for (int i = 0; i < subDirCount; i++) { cur.AddDirectory(LoadSoftDir(a, s, cur)); } for (int i = 0; i < fileCount; i++) { cur.DatabaseAddFile(s.FirstOrDefault(a.NextInt)); } // return new SoftDirectory(id, name, subDirs, softFiles, tags); return(cur); }
static void SendDir(TcpClient client, SoftDirectory dir, List <KeyValuePair <string, DateTime> > timings) { var a = HTML.DirectoryPage(dir); var b = GetHtml(); b.DocumentNode.SelectSingleNode("//html/body").AppendChild(a); timings.Add(new KeyValuePair <string, DateTime>("HTML Document", DateTime.Now)); client.Client.Send(new HttpResponse(new ResponseHeader(), new Content(b.Serialize())).Serialize()); timings.Add(new KeyValuePair <string, DateTime>("Sending", DateTime.Now)); }
public static HtmlNode IndexPage(SoftDirectory i) { HtmlNode node = HtmlNode.CreateNode("<div id=\"indexpage\" />"); node.AppendChild(HtmlNode.CreateNode($"<h1 id=\"indextitle\">{Encode.HtmlEncode($"Index of {i}")}</h1>")); foreach (var a in i.SoftFiles) { node.AppendChild(FileStrip(a)); } return(node); }
public SoftDirectory RecursiveSearch(int id) { if (Id == id) { return(this); } SoftDirectory result = null; foreach (var a in _subDirs) { result = (a.RecursiveSearch(id) ?? result); } return(result); }
public SoftDirectory RecursiveSearch(string[] paths, SoftDirectory last, int cur = 0) { if (cur > paths.Length - 1) { return(last); } var a = GetChild(paths[cur]); if (a == null) { return(null); } return(RecursiveSearch(paths, a, cur + 1)); }
static void Directories(List <SoftDirectory> ok, SoftDirectory cur, SoftFile i) { foreach (var a in cur.SubDirectories) { Directories(ok, a, i); } foreach (var a in cur.SoftFiles) { if (i == a) { ok.Add(cur); } } }
static void Import(string args) { if (Directory.Exists(args)) { SoftDirectory s = null; if (QueryBool("Are you sure you want to import?")) { if ((s = Import(new DirectoryInfo(args))) != null) { Program.CentralDirectory.AddDirectory(s); } } } }
static void PrintDir(SoftDirectory dir) { Console.WriteLine($"{dir.Name} ({dir.Id})"); Console.WriteLine(dir); Console.ForegroundColor = ConsoleColor.Blue; foreach (var a in dir.SubDirectories) { Console.WriteLine($"{a.Name} ({a.Id})"); } Console.ForegroundColor = ConsoleColor.Green; foreach (var a in dir.SoftFiles) { Console.WriteLine($"{a.Name} ({a.Id})"); } Console.ForegroundColor = ConsoleColor.Gray; Tags(dir); }
static SoftDirectory Import(DirectoryInfo i) { var d = i.GetDirectories(); var e = i.GetFiles(); SoftDirectory[] ss = new SoftDirectory[d.Length]; SoftFile[] ee = new SoftFile[e.Length]; for (int m = 0; m < d.Length; m++) { ss[m] = Import(d[m]); } for (int g = 0; g < e.Length; g++) { ee[g] = Import(e[g], Program.CentralDirectory); } return(new SoftDirectory(Program.CentralDirectory.NextId, i.Name, ss, ee, new string[0])); }
private static void SaveSoftDir(UnLoader a, SoftDirectory i) { var subdirs = i.SubDirectories; var files = i.SoftFiles; int subdircount = subdirs.Count; int filecount = files.Count; a.PackInt(i.Id); a.PackInt(subdircount); a.PackInt(filecount); a.PackString(i.Name); a.PackString(i.ThumbnailPath); Tags(a, i.TagArray); for (int b = 0; b < subdircount; b++) { SaveSoftDir(a, subdirs[b]); } for (int b = 0; b < filecount; b++) { a.PackInt(files[b].Id); } }
static SoftDirectory QueryDirectory(bool continueIfNull = false) { SoftDirectory dir = null; while (true) { dir = Program.CentralDirectory.FindDir(QueryInt("Directory Id?")); if (dir != null) { Console.WriteLine($"Selected {dir.Name} ({dir.Id})"); } if (!continueIfNull || dir != null) { break; } else { Console.WriteLine("Invalid Directory"); } } return(dir); }
public static HtmlNode DirectoryPage(SoftDirectory i) { HtmlNode dir = HtmlNode.CreateNode("<div id=\"directory\" />"); var div = dir.AppendChild(HtmlNode.CreateNode("<div id=\"fileheader\">")); var ass = div.AppendChild(Text(i.Name, "h1", "directorytitle")); //dir.AppendChild(Text(i.Name, "h1", "directorytitle")).AppendChild(Thumbnail(i, i.URI())); if (i.ThumbnailExists) { div.AppendChild(Thumbnail(i, i.URI())); } HtmlNode cards = dir.AppendChild(HtmlNode.CreateNode("<div id=\"filecards\" />")); foreach (var a in i.SubDirectories) { cards.AppendChild(DirCard(a)); } foreach (var a in i.SoftFiles) { cards.AppendChild(FileCard(a)); } return(dir); }
public SoftDirectory AddDirectory(SoftDirectory i) { i.Parent = (Id == 0 ? null : this); _subDirs.Add(i); return(i); }
public void RemoveDirectory(SoftDirectory i) { _subDirs.RemoveAll(n => n.Id == i.Id || ReferenceEquals(n, i)); }