|
14 | 14 |
|
15 | 15 | namespace PatreonDownloader { |
16 | 16 | public class Program { |
17 | | - private static string DataFolder { get; } = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "PatreonDownloader"); |
| 17 | + private static string DataFolder { get; set; } |
18 | 18 |
|
19 | 19 | private static void Main(string[] args) { |
20 | 20 | try { |
| 21 | + do { |
| 22 | + Console.WriteLine("Please enter the full path of the folder where you want to store the downloaded files, or leave it empty to use your Documents folder."); |
| 23 | + Console.WriteLine("Make sure the directory currently exists. A folder named PatreonDownloader will be created inside it."); |
| 24 | + DataFolder = Console.ReadLine() ?? ""; |
| 25 | + |
| 26 | + if (DataFolder.Length == 0) { |
| 27 | + DataFolder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); // Unfortunately, no SpecialFolder.Downloads. |
| 28 | + } |
| 29 | + } while (!Directory.Exists(DataFolder)); |
| 30 | + |
| 31 | + DataFolder = Path.Combine(DataFolder, "PatreonDownloader"); |
| 32 | + |
21 | 33 | Directory.CreateDirectory(DataFolder); |
| 34 | + |
| 35 | + Console.WriteLine("If you want to create an extra folder inside the PatreonDownloader folder, enter its name - otherwise press enter:"); |
| 36 | + string subfolderName = Console.ReadLine() ?? ""; |
| 37 | + if (subfolderName.Length > 0) { |
| 38 | + DataFolder = Path.Combine(DataFolder, subfolderName); |
| 39 | + Directory.CreateDirectory(DataFolder); |
| 40 | + } |
22 | 41 |
|
23 | 42 | string sessionToken = null; |
24 | 43 |
|
@@ -48,7 +67,7 @@ private static void Main(string[] args) { |
48 | 67 | } |
49 | 68 | } |
50 | 69 |
|
51 | | - string backupFile = Path.Combine(DataFolder, "posts.json"); // Unfortunately, no SpecialFolder.Downloads. |
| 70 | + string backupFile = Path.Combine(DataFolder, "posts.json"); |
52 | 71 |
|
53 | 72 | var cookieContainer = new CookieContainer(); |
54 | 73 | cookieContainer.Add(new Uri("https://www.patreon.com"), new Cookie("session_id", sessionToken)); |
@@ -104,6 +123,7 @@ private static void Main(string[] args) { |
104 | 123 | } |
105 | 124 | #endif |
106 | 125 | finally { |
| 126 | + Console.WriteLine("The program has finished, press any key to exit."); |
107 | 127 | Console.ReadKey(); |
108 | 128 | } |
109 | 129 | } |
|
0 commit comments