Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
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);
        }
Example #4
0
        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));
        }
Example #5
0
        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);
        }
Example #6
0
        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);
        }
Example #7
0
        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));
        }
Example #8
0
 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);
         }
     }
 }
Example #9
0
 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);
             }
         }
     }
 }
Example #10
0
 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);
 }
Example #11
0
        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]));
        }
Example #12
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);
            }
        }
Example #13
0
        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);
        }
Example #14
0
        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);
        }
Example #15
0
 public SoftDirectory AddDirectory(SoftDirectory i)
 {
     i.Parent = (Id == 0 ? null : this);
     _subDirs.Add(i);
     return(i);
 }
Example #16
0
 public void RemoveDirectory(SoftDirectory i)
 {
     _subDirs.RemoveAll(n => n.Id == i.Id || ReferenceEquals(n, i));
 }