Compare commits
5 Commits
ab3eef14f3
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
6416d983cd
|
|||
|
a318d2e625
|
|||
|
2cc96ff67c
|
|||
|
901f35870f
|
|||
|
020412e3a8
|
@@ -156,9 +156,8 @@ namespace EpisodeRenamer
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// Переводим консоль на передний план для лучшего захвата клавиш
|
|
||||||
_listenerTask = Task.Run(() => ListenForHotkeys(_cancellationTokenSource.Token),
|
_listenerTask = Task.Run(() => ListenForHotkeys(_cancellationTokenSource.Token),
|
||||||
_cancellationTokenSource.Token);
|
_cancellationTokenSource.Token);
|
||||||
|
|
||||||
await Task.CompletedTask;
|
await Task.CompletedTask;
|
||||||
}
|
}
|
||||||
@@ -194,7 +193,8 @@ namespace EpisodeRenamer
|
|||||||
await _listenerTask.ContinueWith(t =>
|
await _listenerTask.ContinueWith(t =>
|
||||||
{
|
{
|
||||||
// Игнорируем исключения отмены задачи
|
// Игнорируем исключения отмены задачи
|
||||||
if (t.IsFaulted) OnError?.Invoke(t.Exception);
|
if (t.IsFaulted)
|
||||||
|
OnError?.Invoke(t.Exception);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
37
Program.cs
37
Program.cs
@@ -4,7 +4,6 @@ using System.Collections.Generic;
|
|||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace EpisodeRenamer
|
namespace EpisodeRenamer
|
||||||
@@ -45,6 +44,29 @@ namespace EpisodeRenamer
|
|||||||
|
|
||||||
static async Task Main(string[] args)
|
static async Task Main(string[] args)
|
||||||
{
|
{
|
||||||
|
if (args.Length > 0)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
LoadConfiguration();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Ошибка загрузки конфигурации: {ex.Message}");
|
||||||
|
Console.WriteLine("Программа будет завершена.");
|
||||||
|
Console.ReadLine();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
foreach (string line in args)
|
||||||
|
if (Directory.Exists(line))
|
||||||
|
{
|
||||||
|
ProcessFolder(line);
|
||||||
|
Console.WriteLine();
|
||||||
|
}
|
||||||
|
Console.ReadLine();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Создаем экземпляр слушателя
|
// Создаем экземпляр слушателя
|
||||||
using (var hotkeyListener = new HotkeyListener())
|
using (var hotkeyListener = new HotkeyListener())
|
||||||
{
|
{
|
||||||
@@ -57,8 +79,6 @@ namespace EpisodeRenamer
|
|||||||
LoadConfiguration(true);
|
LoadConfiguration(true);
|
||||||
break;
|
break;
|
||||||
case "ControlC":
|
case "ControlC":
|
||||||
Console.WriteLine("\nВыход из программы.");
|
|
||||||
Thread.Sleep(1500);
|
|
||||||
Environment.Exit(0);
|
Environment.Exit(0);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -97,12 +117,6 @@ namespace EpisodeRenamer
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Console.CancelKeyPress += (sender, e) =>
|
|
||||||
//{
|
|
||||||
// Console.WriteLine("\nВыход из программы.");
|
|
||||||
// Environment.Exit(0);
|
|
||||||
//};
|
|
||||||
|
|
||||||
Console.WriteLine("Чтобы оставить текущую директорию нажмите 'Enter'");
|
Console.WriteLine("Чтобы оставить текущую директорию нажмите 'Enter'");
|
||||||
Console.WriteLine("Чтобы перезагрузить конфигурацию нажмите 'Ctrl + Alt + R'");
|
Console.WriteLine("Чтобы перезагрузить конфигурацию нажмите 'Ctrl + Alt + R'");
|
||||||
Console.WriteLine("Чтобы выйти нажмите 'Ctrl + C'");
|
Console.WriteLine("Чтобы выйти нажмите 'Ctrl + C'");
|
||||||
@@ -141,15 +155,14 @@ namespace EpisodeRenamer
|
|||||||
{
|
{
|
||||||
extensions.Clear();
|
extensions.Clear();
|
||||||
patterns.Clear();
|
patterns.Clear();
|
||||||
|
GC.Collect();
|
||||||
Console.WriteLine("\nЗапрошена перезагрузка конфигурации.");
|
Console.WriteLine("\nЗапрошена перезагрузка конфигурации.");
|
||||||
}
|
}
|
||||||
|
|
||||||
string configPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "config.json");
|
string configPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "config.json");
|
||||||
|
|
||||||
if (!File.Exists(configPath))
|
if (!File.Exists(configPath))
|
||||||
{
|
|
||||||
throw new FileNotFoundException("Конфигурационный файл config.json не найден");
|
throw new FileNotFoundException("Конфигурационный файл config.json не найден");
|
||||||
}
|
|
||||||
|
|
||||||
string json = File.ReadAllText(configPath);
|
string json = File.ReadAllText(configPath);
|
||||||
Config config = JsonConvert.DeserializeObject<Config>(json);
|
Config config = JsonConvert.DeserializeObject<Config>(json);
|
||||||
@@ -180,9 +193,7 @@ namespace EpisodeRenamer
|
|||||||
string extension = Path.GetExtension(fileName);
|
string extension = Path.GetExtension(fileName);
|
||||||
|
|
||||||
if (extensions.Contains(extension))
|
if (extensions.Contains(extension))
|
||||||
{
|
|
||||||
RenameFile(filePath, fileName, folder);
|
RenameFile(filePath, fileName, folder);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
|
|||||||
// Номер сборки
|
// Номер сборки
|
||||||
// Номер редакции
|
// Номер редакции
|
||||||
//
|
//
|
||||||
[assembly: AssemblyVersion("1.0.0.0")]
|
[assembly: AssemblyVersion("1.2.0.0")]
|
||||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
[assembly: AssemblyFileVersion("1.2.0.0")]
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Enabled": false,
|
"Enabled": false,
|
||||||
"Regex": "[ ]\\d[2][ ]",
|
"Regex": "[ ]\\d{2}[ ]",
|
||||||
"Start": 1,
|
"Start": 1,
|
||||||
"End": null
|
"End": null
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user