Program.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. using System;
  2. using System.IO;
  3. namespace Rac
  4. {
  5. internal class Program
  6. {
  7. //TODO: Folder browser
  8. private static void Main(string[] args)
  9. {
  10. var db = "project.db3";
  11. void PrintUsage()
  12. {
  13. Console.WriteLine("args: [mode] [args]");
  14. Console.WriteLine(" crawler [project.db3] * default mode");
  15. Console.WriteLine(" offline [project.db3]");
  16. Console.WriteLine(" browser [project.db3]");
  17. }
  18. if (args.Length == 0)
  19. {
  20. RunCrawler(db);
  21. }
  22. else
  23. {
  24. if (args.Length > 1) db = args[1];
  25. switch (args[0].ToLower())
  26. {
  27. default:
  28. PrintUsage();
  29. break;
  30. case "crawler":
  31. RunCrawler(db);
  32. break;
  33. case "offline":
  34. RunOffline(db);
  35. break;
  36. case "browser":
  37. RunBrowser(db);
  38. break;
  39. }
  40. }
  41. Console.Write("Finished, Press ENTER to exit...");
  42. Console.ReadLine();
  43. }
  44. private static void RunCrawler(string db)
  45. {
  46. var inst = new Crawler(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, db));
  47. inst.Log += (sender, ea) => Console.WriteLine($"RAC -- {ea.Level} -- {ea.Log}");
  48. Console.WriteLine("Press ENTER to stop.");
  49. inst.Start();
  50. Console.ReadLine();
  51. if (inst.IsRunning)
  52. {
  53. Console.WriteLine("Stopping...");
  54. inst.Stop();
  55. Console.WriteLine();
  56. }
  57. }
  58. private static void RunOffline(string db)
  59. {
  60. var inst = new OfflineWebServer(db);
  61. inst.Log += (sender, ea) => Console.WriteLine($"OWS -- {ea.Level} -- {ea.Log}");
  62. Console.WriteLine("Press ENTER to stop.");
  63. inst.Start();
  64. Console.ReadLine();
  65. inst.Stop();
  66. }
  67. private static void RunBrowser(string db)
  68. {
  69. var inst = new FileBrowseServer(db);
  70. inst.Log += (sender, ea) => Console.WriteLine($"OWS -- {ea.Level} -- {ea.Log}");
  71. Console.WriteLine("Press ENTER to stop.");
  72. inst.Start();
  73. Console.ReadLine();
  74. inst.Stop();
  75. }
  76. }
  77. }