1
0
Fork 0
mirror of https://github.com/fiso64/slsk-batchdl.git synced 2024-12-22 14:32:40 +00:00

.conf file support

This commit is contained in:
fiso64 2023-05-25 21:55:02 +02:00
parent d4f728ba20
commit fa126ee33f
3 changed files with 21 additions and 4 deletions

View file

@ -82,6 +82,13 @@ Download youtube playlist:
``` ```
To include unavailable videos, you will need to provide an api key with `--youtube-key`. Get it here https://console.cloud.google.com. Create a new project, click "Enable Api" and search for "youtube data", then follow the prompts. To include unavailable videos, you will need to provide an api key with `--youtube-key`. Get it here https://console.cloud.google.com. Create a new project, click "Enable Api" and search for "youtube data", then follow the prompts.
Supports .conf files: Create a file named `slsk-batchdl.conf` in the same directory as the exe and write your arguments there, e.g:
```
--username "fakename"
--password "fakepass"
--pref-format "flac"
```
## Notes: ## Notes:
- YouTube playlist downloading is unreliable since there are no track name / artist tags - YouTube playlist downloading is unreliable since there are no track name / artist tags
- The CSV file must be saved with `,` as field delimiter and `"` as string delimiter, encoded with UTF8 - The CSV file must be saved with `,` as field delimiter and `"` as string delimiter, encoded with UTF8

View file

@ -4,7 +4,6 @@ using Soulseek;
using Konsole; using Konsole;
using System.Net.NetworkInformation; using System.Net.NetworkInformation;
class Program class Program
{ {
static SoulseekClient client = new SoulseekClient(); static SoulseekClient client = new SoulseekClient();
@ -52,7 +51,7 @@ class Program
Console.WriteLine(" --yt-parse Enable if you have a csv file of YouTube video titles and channel names; attempt to parse."); Console.WriteLine(" --yt-parse Enable if you have a csv file of YouTube video titles and channel names; attempt to parse.");
Console.WriteLine(); Console.WriteLine();
Console.WriteLine(" -s --single <str> Search & download a specific track"); Console.WriteLine(" -s --single <str> Search & download a specific track");
Console.WriteLine(" -a --album <str> Search & download a specific album. DOES NOTHING"); Console.WriteLine(" -a --album <str> Does nothing");
Console.WriteLine(); Console.WriteLine();
Console.WriteLine(" --pref-format <format> Preferred file format (default: mp3)"); Console.WriteLine(" --pref-format <format> Preferred file format (default: mp3)");
Console.WriteLine(" --pref-length-tol <tol> Preferred length tolerance (if length col provided) (default: 3)"); Console.WriteLine(" --pref-length-tol <tol> Preferred length tolerance (if length col provided) (default: 3)");
@ -163,6 +162,16 @@ class Program
MaxSampleRate = -1, MaxSampleRate = -1,
}; };
string confPath = Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location), "slsk-batchdl.conf");
if (System.IO.File.Exists(confPath))
{
string confArgs = System.IO.File.ReadAllText(confPath);
List<string> finalArgs = new List<string>();
finalArgs.AddRange(ParseCommand(confArgs));
finalArgs.AddRange(args);
args = finalArgs.ToArray();
}
for (int i = 0; i < args.Length; i++) for (int i = 0; i < args.Length; i++)
{ {
switch (args[i]) switch (args[i])
@ -560,6 +569,8 @@ class Program
if (reverse) if (reverse)
tracks.Reverse(); tracks.Reverse();
if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password))
throw new Exception("No soulseek username or password");
await client.ConnectAsync(username, password); await client.ConnectAsync(username, password);
object lockObj = new object(); object lockObj = new object();

View file

@ -1,8 +1,7 @@
{ {
"profiles": { "profiles": {
"slsk-batchdl": { "slsk-batchdl": {
"commandName": "Project", "commandName": "Project"
"commandLineArgs": "-s \"nanoray mimicloq\""
}, },
"YouTube": { "YouTube": {
"commandName": "Project", "commandName": "Project",