Skip to content

Commit 4aabc9b

Browse files
committed
고급 형식 문자열 기능 추가
1 parent 3fc5e1a commit 4aabc9b

File tree

9 files changed

+581
-121
lines changed

9 files changed

+581
-121
lines changed

DaramRenamer.Commands/Commands/AdvancedFormatCommand.cs

+442
Large diffs are not rendered by default.

DaramRenamer.Commands/Commands/Tags/AddDocumentTagCommand.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public bool DoCommand(FileInfo file)
4343
return true;
4444
}
4545

46-
private class File
46+
public class File
4747
{
4848
public string Title { get; }
4949
public string Author { get; }

DaramRenamer.Commands/Commands/Tags/AddGitInfoCommand.cs

+16-7
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,20 @@ public class AddGitInfoCommand : ICommand
1616
[LocalizationKey ("Command_Argument_AddGitInfo_Position")]
1717
public Position1 Position { get; set; } = Position1.EndPoint;
1818

19-
private static readonly string[] Arguments =
19+
private static readonly string[] Arguments =
2020
{
2121
"rev-parse HEAD",
2222
"rev-parse --short HEAD",
2323
"branch",
2424
"rev-list --count --all",
2525
};
2626

27-
public bool DoCommand(FileInfo file)
27+
public static string GetGitValue(GitInfo gitInfo, string path)
2828
{
29-
var psInfo = new ProcessStartInfo("git", Arguments[(int)GitInfo])
29+
var psInfo = new ProcessStartInfo("git", Arguments[(int)gitInfo])
3030
{
3131
UseShellExecute = false,
32-
WorkingDirectory = file.OriginalPath,
32+
WorkingDirectory = path,
3333
RedirectStandardOutput = true,
3434
StandardOutputEncoding = Encoding.UTF8,
3535
WindowStyle = ProcessWindowStyle.Hidden,
@@ -42,15 +42,15 @@ public bool DoCommand(FileInfo file)
4242
process = Process.Start (psInfo);
4343
process?.WaitForExit();
4444
if (process?.ExitCode != 0)
45-
return false;
45+
return null;
4646
}
4747
catch
4848
{
49-
return false;
49+
return null;
5050
}
5151

5252
var value = process.StandardOutput.ReadToEnd().Trim();
53-
if (GitInfo == GitInfo.BranchName)
53+
if (gitInfo == GitInfo.BranchName)
5454
{
5555
var list = value.Split('\n');
5656
foreach (var item in list)
@@ -62,6 +62,15 @@ public bool DoCommand(FileInfo file)
6262
}
6363
}
6464

65+
return value;
66+
}
67+
68+
public bool DoCommand(FileInfo file)
69+
{
70+
var value = GetGitValue(GitInfo, file.OriginalFullPath);
71+
if (value == null)
72+
return false;
73+
6574
var fn = Path.GetFileNameWithoutExtension (file.ChangedFilename);
6675
var ext = Path.GetExtension (file.ChangedFilename);
6776
file.ChangedFilename = Position switch

DaramRenamer.Commands/Commands/Tags/AddHashCommand.cs

+13-8
Original file line numberDiff line numberDiff line change
@@ -16,29 +16,29 @@ public class AddHashCommand : ICommand
1616
[LocalizationKey("Command_Argument_AddHash_Position")]
1717
public Position1 Position { get; set; } = Position1.EndPoint;
1818

19-
public bool DoCommand(FileInfo file)
19+
public static string ComputeHash(HashType hashType, string path)
2020
{
2121
byte[] returnValue = null;
22-
switch (HashType)
22+
switch (hashType)
2323
{
2424
case HashType.MD5:
25-
using (Stream stream = File.Open(file.ChangedFullPath, FileMode.Open))
25+
using (Stream stream = File.Open(path, FileMode.Open))
2626
returnValue = System.Security.Cryptography.MD5.Create().ComputeHash(stream);
2727
break;
2828
case HashType.SHA1:
29-
using (Stream stream = File.Open(file.ChangedFullPath, FileMode.Open))
29+
using (Stream stream = File.Open(path, FileMode.Open))
3030
returnValue = System.Security.Cryptography.SHA1.Create().ComputeHash(stream);
3131
break;
3232
case HashType.SHA256:
33-
using (Stream stream = File.Open(file.ChangedFullPath, FileMode.Open))
33+
using (Stream stream = File.Open(path, FileMode.Open))
3434
returnValue = System.Security.Cryptography.SHA256.Create().ComputeHash(stream);
3535
break;
3636
case HashType.SHA384:
37-
using (Stream stream = File.Open(file.ChangedFullPath, FileMode.Open))
37+
using (Stream stream = File.Open(path, FileMode.Open))
3838
returnValue = System.Security.Cryptography.SHA384.Create().ComputeHash(stream);
3939
break;
4040
case HashType.SHA512:
41-
using (Stream stream = File.Open(file.ChangedFullPath, FileMode.Open))
41+
using (Stream stream = File.Open(path, FileMode.Open))
4242
returnValue = System.Security.Cryptography.SHA512.Create().ComputeHash(stream);
4343
break;
4444
}
@@ -48,7 +48,12 @@ public bool DoCommand(FileInfo file)
4848
foreach (var t in returnValue)
4949
sBuilder.Append(t.ToString("x2"));
5050

51-
var hash = sBuilder.ToString();
51+
return sBuilder.ToString();
52+
}
53+
54+
public bool DoCommand(FileInfo file)
55+
{
56+
var hash = ComputeHash(HashType, file.OriginalFullPath);
5257

5358
var fn = Path.GetFileNameWithoutExtension(file.ChangedFilename);
5459
var ext = Path.GetExtension(file.ChangedFilename);

DaramRenamer.Commands/Commands/Tags/AddMediaTagCommand.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public bool DoCommand(FileInfo file)
9999
}
100100

101101
// Code idea from https://github.com/mildblue/DaramRenamer/commit/d3a2b71c081bacfc30a3b195280f0d10eff08944
102-
private string ConvertUnicodeText(string text)
102+
public static string ConvertUnicodeText(string text)
103103
{
104104
var latinStr =
105105
Encoding.Default.GetString(Encoding.GetEncoding("ISO-8859-1").GetBytes(text.Replace("?", "")));

DaramRenamer.Commands/DaramRenamer.Commands.csproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>netstandard2.0</TargetFramework>
4+
<TargetFramework>netstandard2.1</TargetFramework>
55
<RootNamespace>DaramRenamer</RootNamespace>
66
<LangVersion>latest</LangVersion>
7-
<Version>2021.5.2</Version>
7+
<Version>2021.7.1</Version>
88
<Authors>Jin Jae-yeon</Authors>
99
<Company>DARAM WORLD</Company>
1010
<Product>DaramRenamer Command</Product>

DaramRenamer.Shared/Strings/Strings.default.json

+4
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,10 @@
192192
"Command_Argument_ManualEdit_ChangeName": "Name",
193193
"Command_Argument_ManualEdit_ChangePath": "Path",
194194

195+
"Command_Name_AdvancedFormat": "Advanced Format String",
196+
"Command_Argument_AdvancedFormat_FileNameFormatString": "Name",
197+
"Command_Argument_AdvancedFormat_PathFormatString": "Path",
198+
195199
"Menu_Condition_Condition": "C_onditions",
196200

197201
"Condition_Name_TextFile": "Text File",

DaramRenamer.Shared/Strings/Strings.ko_kr.json

+4
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,10 @@
192192
"Command_Argument_ManualEdit_ChangeName": "변경 이름",
193193
"Command_Argument_ManualEdit_ChangePath": "변경 경로",
194194

195+
"Command_Name_AdvancedFormat": "고급 형식 문자열",
196+
"Command_Argument_AdvancedFormat_FileNameFormatString": "이름",
197+
"Command_Argument_AdvancedFormat_PathFormatString": "경로",
198+
195199
"Menu_Condition_Condition": "조건(_O)",
196200

197201
"Condition_Name_TextFile": "텍스트 파일",
+98-102
Original file line numberDiff line numberDiff line change
@@ -1,112 +1,108 @@
11
<Project Sdk="Microsoft.NET.Sdk">
2+
<PropertyGroup>
3+
<OutputType>WinExe</OutputType>
4+
<TargetFramework>net5.0-windows</TargetFramework>
5+
<PublishTrimmed>true</PublishTrimmed>
6+
<TrimMode>Link</TrimMode>
7+
<UseWPF>true</UseWPF>
8+
<RootNamespace>DaramRenamer</RootNamespace>
9+
<PackageId>DaramRenamer</PackageId>
10+
<Authors>Jin Jae-yeon</Authors>
11+
<Company>DARAM WORLD</Company>
12+
<Product>DaramRenamer for Windows</Product>
13+
<ApplicationIcon>Resources\ProgramIcon.ico</ApplicationIcon>
14+
<AssemblyName>DaramRenamer</AssemblyName>
15+
<Copyright>Copyright ⓒ 2013-2021 Jin Jae-yeon</Copyright>
16+
<Version>2021.7.1</Version>
17+
<SignAssembly>true</SignAssembly>
18+
<AssemblyOriginatorKeyFile>../Modules/StrongNameKey/Daelumgi.snk</AssemblyOriginatorKeyFile>
19+
<ApplicationManifest>DaramRenamer.manifest</ApplicationManifest>
20+
<PackageIcon>Icon.jpg</PackageIcon>
21+
<PackageLicenseFile>LICENSE.md</PackageLicenseFile>
22+
<PackageProjectUrl>https://github.com/daramkun/DaramRenamer</PackageProjectUrl>
23+
<RepositoryUrl>https://github.com/daramkun/DaramRenamer</RepositoryUrl>
24+
<RepositoryType>git</RepositoryType>
25+
<DelaySign>false</DelaySign>
26+
</PropertyGroup>
227

3-
<PropertyGroup>
4-
<OutputType>WinExe</OutputType>
5-
<TargetFramework>net5.0-windows</TargetFramework>
6-
<UseWPF>true</UseWPF>
7-
<RootNamespace>DaramRenamer</RootNamespace>
8-
<PackageId>DaramRenamer</PackageId>
9-
<Authors>Jin Jae-yeon</Authors>
10-
<Company>DARAM WORLD</Company>
11-
<Product>DaramRenamer for Windows</Product>
12-
<ApplicationIcon>Resources\ProgramIcon.ico</ApplicationIcon>
13-
<AssemblyName>DaramRenamer</AssemblyName>
14-
<Copyright>Copyright ⓒ 2013-2021 Jin Jae-yeon</Copyright>
15-
<Version>2021.5.2</Version>
16-
<SignAssembly>true</SignAssembly>
17-
<AssemblyOriginatorKeyFile>../Modules/StrongNameKey/Daelumgi.snk</AssemblyOriginatorKeyFile>
18-
<ApplicationManifest>DaramRenamer.manifest</ApplicationManifest>
19-
<PackageIcon>Icon.jpg</PackageIcon>
20-
<PackageLicenseFile>LICENSE.md</PackageLicenseFile>
21-
<PackageProjectUrl>https://github.com/daramkun/DaramRenamer</PackageProjectUrl>
22-
<RepositoryUrl>https://github.com/daramkun/DaramRenamer</RepositoryUrl>
23-
<RepositoryType>git</RepositoryType>
24-
<DelaySign>false</DelaySign>
25-
</PropertyGroup>
28+
<PropertyGroup>
29+
<DefineConstants>TRACE;WPF</DefineConstants>
30+
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
31+
</PropertyGroup>
2632

27-
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
28-
<DefineConstants>TRACE;WPF</DefineConstants>
29-
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
30-
</PropertyGroup>
33+
<ItemGroup>
34+
<None Remove="Resources\Icon.jpg" />
35+
<None Remove="Resources\ToolBarIcons\add_date.png" />
36+
<None Remove="Resources\ToolBarIcons\add_ext.png" />
37+
<None Remove="Resources\ToolBarIcons\add_index.png" />
38+
<None Remove="Resources\ToolBarIcons\apply.png" />
39+
<None Remove="Resources\ToolBarIcons\casecast_ext.png" />
40+
<None Remove="Resources\ToolBarIcons\casecast_text.png" />
41+
<None Remove="Resources\ToolBarIcons\clear.png" />
42+
<None Remove="Resources\ToolBarIcons\concat_text.png" />
43+
<None Remove="Resources\ToolBarIcons\delete_block.png" />
44+
<None Remove="Resources\ToolBarIcons\delete_ext.png" />
45+
<None Remove="Resources\ToolBarIcons\delete_text.png" />
46+
<None Remove="Resources\ToolBarIcons\del_without_num.png" />
47+
<None Remove="Resources\ToolBarIcons\inc_dec_num.png" />
48+
<None Remove="Resources\ToolBarIcons\item_down.png" />
49+
<None Remove="Resources\ToolBarIcons\item_sort.png" />
50+
<None Remove="Resources\ToolBarIcons\item_up.png" />
51+
<None Remove="Resources\ToolBarIcons\match_num_count.png" />
52+
<None Remove="Resources\ToolBarIcons\open.png" />
53+
<None Remove="Resources\ToolBarIcons\redo.png" />
54+
<None Remove="Resources\ToolBarIcons\replace_ext.png" />
55+
<None Remove="Resources\ToolBarIcons\replace_text.png" />
56+
<None Remove="Resources\ToolBarIcons\substring.png" />
57+
<None Remove="Resources\ToolBarIcons\trim_text.png" />
58+
<None Remove="Resources\ToolBarIcons\undo.png" />
59+
<None Include="..\LICENSE.md">
60+
<Pack>True</Pack>
61+
<PackagePath></PackagePath>
62+
</None>
63+
<None Include="Resources\Icon.jpg">
64+
<Pack>True</Pack>
65+
<PackagePath></PackagePath>
66+
</None>
67+
</ItemGroup>
3168

32-
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
33-
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
34-
<DefineConstants>TRACE;WPF</DefineConstants>
35-
</PropertyGroup>
69+
<ItemGroup>
70+
<ProjectReference Include="..\DaramRenamer.Commands\DaramRenamer.Commands.csproj" />
71+
</ItemGroup>
3672

37-
<ItemGroup>
38-
<None Remove="Resources\Icon.jpg" />
39-
<None Remove="Resources\ToolBarIcons\add_date.png" />
40-
<None Remove="Resources\ToolBarIcons\add_ext.png" />
41-
<None Remove="Resources\ToolBarIcons\add_index.png" />
42-
<None Remove="Resources\ToolBarIcons\apply.png" />
43-
<None Remove="Resources\ToolBarIcons\casecast_ext.png" />
44-
<None Remove="Resources\ToolBarIcons\casecast_text.png" />
45-
<None Remove="Resources\ToolBarIcons\clear.png" />
46-
<None Remove="Resources\ToolBarIcons\concat_text.png" />
47-
<None Remove="Resources\ToolBarIcons\delete_block.png" />
48-
<None Remove="Resources\ToolBarIcons\delete_ext.png" />
49-
<None Remove="Resources\ToolBarIcons\delete_text.png" />
50-
<None Remove="Resources\ToolBarIcons\del_without_num.png" />
51-
<None Remove="Resources\ToolBarIcons\inc_dec_num.png" />
52-
<None Remove="Resources\ToolBarIcons\item_down.png" />
53-
<None Remove="Resources\ToolBarIcons\item_sort.png" />
54-
<None Remove="Resources\ToolBarIcons\item_up.png" />
55-
<None Remove="Resources\ToolBarIcons\match_num_count.png" />
56-
<None Remove="Resources\ToolBarIcons\open.png" />
57-
<None Remove="Resources\ToolBarIcons\redo.png" />
58-
<None Remove="Resources\ToolBarIcons\replace_ext.png" />
59-
<None Remove="Resources\ToolBarIcons\replace_text.png" />
60-
<None Remove="Resources\ToolBarIcons\substring.png" />
61-
<None Remove="Resources\ToolBarIcons\trim_text.png" />
62-
<None Remove="Resources\ToolBarIcons\undo.png" />
63-
<None Include="..\LICENSE.md">
64-
<Pack>True</Pack>
65-
<PackagePath></PackagePath>
66-
</None>
67-
<None Include="Resources\Icon.jpg">
68-
<Pack>True</Pack>
69-
<PackagePath></PackagePath>
70-
</None>
71-
</ItemGroup>
73+
<ItemGroup>
74+
<EmbeddedResource Include="..\LICENSE.md" Link="Resources\LICENSE.md" />
75+
<Resource Include="Resources\Icon.jpg" />
76+
<Resource Include="Resources\ToolBarIcons\add_date.png" />
77+
<Resource Include="Resources\ToolBarIcons\add_ext.png" />
78+
<Resource Include="Resources\ToolBarIcons\add_index.png" />
79+
<Resource Include="Resources\ToolBarIcons\apply.png" />
80+
<Resource Include="Resources\ToolBarIcons\casecast_ext.png" />
81+
<Resource Include="Resources\ToolBarIcons\casecast_text.png" />
82+
<Resource Include="Resources\ToolBarIcons\clear.png" />
83+
<Resource Include="Resources\ToolBarIcons\concat_text.png" />
84+
<Resource Include="Resources\ToolBarIcons\delete_block.png" />
85+
<Resource Include="Resources\ToolBarIcons\delete_ext.png" />
86+
<Resource Include="Resources\ToolBarIcons\delete_text.png" />
87+
<Resource Include="Resources\ToolBarIcons\del_without_num.png" />
88+
<Resource Include="Resources\ToolBarIcons\inc_dec_num.png" />
89+
<Resource Include="Resources\ToolBarIcons\item_down.png" />
90+
<Resource Include="Resources\ToolBarIcons\item_sort.png" />
91+
<Resource Include="Resources\ToolBarIcons\item_up.png" />
92+
<Resource Include="Resources\ToolBarIcons\match_num_count.png" />
93+
<Resource Include="Resources\ToolBarIcons\open.png" />
94+
<Resource Include="Resources\ToolBarIcons\redo.png" />
95+
<Resource Include="Resources\ToolBarIcons\replace_ext.png" />
96+
<Resource Include="Resources\ToolBarIcons\replace_text.png" />
97+
<Resource Include="Resources\ToolBarIcons\substring.png" />
98+
<Resource Include="Resources\ToolBarIcons\trim_text.png" />
99+
<Resource Include="Resources\ToolBarIcons\undo.png" />
100+
</ItemGroup>
72101

73-
<ItemGroup>
74-
<ProjectReference Include="..\DaramRenamer.Commands\DaramRenamer.Commands.csproj" />
75-
</ItemGroup>
102+
<Import Project="..\DaramRenamer.Shared\DaramRenamer.Shared.projitems" Label="Shared" />
76103

77-
<ItemGroup>
78-
<EmbeddedResource Include="..\LICENSE.md" Link="Resources\LICENSE.md" />
79-
<Resource Include="Resources\Icon.jpg" />
80-
<Resource Include="Resources\ToolBarIcons\add_date.png" />
81-
<Resource Include="Resources\ToolBarIcons\add_ext.png" />
82-
<Resource Include="Resources\ToolBarIcons\add_index.png" />
83-
<Resource Include="Resources\ToolBarIcons\apply.png" />
84-
<Resource Include="Resources\ToolBarIcons\casecast_ext.png" />
85-
<Resource Include="Resources\ToolBarIcons\casecast_text.png" />
86-
<Resource Include="Resources\ToolBarIcons\clear.png" />
87-
<Resource Include="Resources\ToolBarIcons\concat_text.png" />
88-
<Resource Include="Resources\ToolBarIcons\delete_block.png" />
89-
<Resource Include="Resources\ToolBarIcons\delete_ext.png" />
90-
<Resource Include="Resources\ToolBarIcons\delete_text.png" />
91-
<Resource Include="Resources\ToolBarIcons\del_without_num.png" />
92-
<Resource Include="Resources\ToolBarIcons\inc_dec_num.png" />
93-
<Resource Include="Resources\ToolBarIcons\item_down.png" />
94-
<Resource Include="Resources\ToolBarIcons\item_sort.png" />
95-
<Resource Include="Resources\ToolBarIcons\item_up.png" />
96-
<Resource Include="Resources\ToolBarIcons\match_num_count.png" />
97-
<Resource Include="Resources\ToolBarIcons\open.png" />
98-
<Resource Include="Resources\ToolBarIcons\redo.png" />
99-
<Resource Include="Resources\ToolBarIcons\replace_ext.png" />
100-
<Resource Include="Resources\ToolBarIcons\replace_text.png" />
101-
<Resource Include="Resources\ToolBarIcons\substring.png" />
102-
<Resource Include="Resources\ToolBarIcons\trim_text.png" />
103-
<Resource Include="Resources\ToolBarIcons\undo.png" />
104-
</ItemGroup>
104+
<Import Project="..\Modules\Winston\Daramee.Winston.Shared\Daramee.Winston.Shared.projitems" Label="Shared" />
105105

106-
<Import Project="..\DaramRenamer.Shared\DaramRenamer.Shared.projitems" Label="Shared" />
107-
108-
<Import Project="..\Modules\Winston\Daramee.Winston.Shared\Daramee.Winston.Shared.projitems" Label="Shared" />
109-
110-
<Import Project="..\Modules\Blockar\Blockar.Shared\Blockar.Shared.projitems" Label="Shared" />
106+
<Import Project="..\Modules\Blockar\Blockar.Shared\Blockar.Shared.projitems" Label="Shared" />
111107

112108
</Project>

0 commit comments

Comments
 (0)