Skip to content
This repository has been archived by the owner on Mar 23, 2024. It is now read-only.

なろうのリファクタリング #49

Closed
wants to merge 56 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
b7f4e7a
#1-1 フォルダ分けを変更
miyaji255 Mar 1, 2024
4577f45
#1-1 インデントを削減
miyaji255 Mar 1, 2024
c9dbc54
Merge pull request #2 from OUCC/feat/#1-1
miyaji255 Mar 1, 2024
7a30467
#1-2 ScraperSelectorを追加
miyaji255 Mar 1, 2024
7a0fb10
#1-2 Ensure◯◯を移動
miyaji255 Mar 1, 2024
7320070
#1 セレクターを変更
miyaji255 Mar 2, 2024
d2b3d40
Merge pull request #3 from OUCC/feat/#1-2
miyaji255 Mar 2, 2024
ad94645
SplitBraceの先頭(入力が1文字の時)の条件式を修正。
TakenPt Mar 3, 2024
dba4de3
フォーマットの修正
TakenPt Mar 3, 2024
ac4a234
テストの修正
TakenPt Mar 3, 2024
58a8b15
テストの追加
TakenPt Mar 3, 2024
9a717b9
テストの追加
TakenPt Mar 3, 2024
680a905
テストの修正
TakenPt Mar 3, 2024
c41e4af
テストケースの追加
TakenPt Mar 3, 2024
73f9424
ScrapingHelperの条件式の修正
TakenPt Mar 3, 2024
8da4ce7
TryCreateEpubAsyncをサービスとして切り出す
aiueo-1234 Mar 3, 2024
00ed0be
名称変更とDI登録
aiueo-1234 Mar 3, 2024
326914a
SplitBraceの修正
TakenPt Mar 3, 2024
1307ed9
brackets.Length を text.Length に変更
TakenPt Mar 3, 2024
c5d4802
Merge pull request #10 from OUCC/feat/#4
TakenPt Mar 3, 2024
f7e8ce1
#5-1 EpubDocumentのテストを作成中
miyaji255 Mar 2, 2024
2171f64
#5-1 IVTを追加
miyaji255 Mar 3, 2024
fb8d6bc
fmt
miyaji255 Mar 3, 2024
3864450
#5-1 PrivateProxyを削除
miyaji255 Mar 4, 2024
8af4b2d
Merge pull request #9 from OUCC/feat/#5-1
miyaji255 Mar 4, 2024
f3652d0
wip
TakenPt Mar 5, 2024
93f8df6
Merge branch 'main' into feat/#12
TakenPt Mar 5, 2024
16a7f93
会話文の開始、終了記号に『及び』を認めるよう変更
TakenPt Mar 6, 2024
c6f8911
EpubDocument内の.epub生成に関するコードを移動
aiueo-1234 Mar 6, 2024
718b8fd
著者名がaタグでなくても著者名を取得できるよう修正
TakenPt Mar 6, 2024
f91fbf6
不要な行(処理)を削除
TakenPt Mar 7, 2024
f7135a4
フォーマット
TakenPt Mar 8, 2024
b281676
セクション部分を作成するコードを移動
aiueo-1234 Mar 10, 2024
4a7ea0f
StringBuilderの一本化
aiueo-1234 Mar 10, 2024
26f5f82
Merge branch 'main' into feat/#8
aiueo-1234 Mar 10, 2024
8ad8c91
Merge pull request #14 from OUCC/feat/#12
TakenPt Mar 10, 2024
aaf47f2
Merge branch 'main' into feat/#8
aiueo-1234 Mar 10, 2024
409d868
CreateContainerXmlの変更
aiueo-1234 Mar 10, 2024
abd0a66
revert StringBuilderの一本化
aiueo-1234 Mar 10, 2024
d0303d8
Merge pull request #11 from OUCC/feat/#8
miyaji255 Mar 10, 2024
a56c8bb
#15 プロジェクトの依存関係を変更
miyaji255 Mar 11, 2024
e3a124c
Merge pull request #16 from OUCC/feat/#15-change-dependency
miyaji255 Mar 13, 2024
67e01a1
#17-1 CoreのプロジェクトをEpubソリューションに追加
aiueo-1234 Mar 15, 2024
bca75d9
#17-1 Epub作成部分のException調整
aiueo-1234 Mar 15, 2024
8f2900e
フォーマット
aiueo-1234 Mar 15, 2024
fa3f28c
#17-1 DI追加&throw exceptionに変更
aiueo-1234 Mar 15, 2024
29394aa
#17-1 EpubDocumentExceptionの削除
aiueo-1234 Mar 15, 2024
7ff9bd3
#17-1 エラーメッセージの日本語化
aiueo-1234 Mar 15, 2024
3adc1d4
#17-1 エラーメッセージの変更
aiueo-1234 Mar 16, 2024
059eaf5
Merge pull request #18 from OUCC/feat/#17-1
aiueo-1234 Mar 16, 2024
d9e347d
#19 スクレイピング用クライアントを作成
miyaji255 Mar 15, 2024
0441c1d
#19 不要な変更を削除
miyaji255 Mar 15, 2024
119de8e
#19 Queue-Consumer方式に変更
miyaji255 Mar 15, 2024
d63ea33
#19 lock文の箇所を調整
miyaji255 Mar 16, 2024
e93ac8e
#19 コンストラクタでのWorkerの起動を削除
miyaji255 Mar 16, 2024
f1579e5
#1-2 なろうAPIを叩く部分の修正
miyaji255 Mar 16, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 50 additions & 1 deletion Epub/KoeBook.Epub.sln
Original file line number Diff line number Diff line change
@@ -1,25 +1,74 @@
Microsoft Visual Studio Solution File, Format Version 12.00

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.10.34607.79
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KoeBook.Epub", "KoeBook.Epub\KoeBook.Epub.csproj", "{E8E224F2-D1E9-437E-8222-FF2F33DB3FCD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EpubConsoleApp", "EpubConsoleApp\EpubConsoleApp.csproj", "{DE1F3CE9-4F3B-4428-9293-D18446F333D8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KoeBook.Core", "..\KoeBook.Core\KoeBook.Core.csproj", "{9F11B1EF-8330-400E-A60C-CFC98E827AA7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|arm64 = Debug|arm64
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|arm64 = Release|arm64
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{E8E224F2-D1E9-437E-8222-FF2F33DB3FCD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E8E224F2-D1E9-437E-8222-FF2F33DB3FCD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E8E224F2-D1E9-437E-8222-FF2F33DB3FCD}.Debug|arm64.ActiveCfg = Debug|Any CPU
{E8E224F2-D1E9-437E-8222-FF2F33DB3FCD}.Debug|arm64.Build.0 = Debug|Any CPU
{E8E224F2-D1E9-437E-8222-FF2F33DB3FCD}.Debug|x64.ActiveCfg = Debug|Any CPU
{E8E224F2-D1E9-437E-8222-FF2F33DB3FCD}.Debug|x64.Build.0 = Debug|Any CPU
{E8E224F2-D1E9-437E-8222-FF2F33DB3FCD}.Debug|x86.ActiveCfg = Debug|Any CPU
{E8E224F2-D1E9-437E-8222-FF2F33DB3FCD}.Debug|x86.Build.0 = Debug|Any CPU
{E8E224F2-D1E9-437E-8222-FF2F33DB3FCD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E8E224F2-D1E9-437E-8222-FF2F33DB3FCD}.Release|Any CPU.Build.0 = Release|Any CPU
{E8E224F2-D1E9-437E-8222-FF2F33DB3FCD}.Release|arm64.ActiveCfg = Release|Any CPU
{E8E224F2-D1E9-437E-8222-FF2F33DB3FCD}.Release|arm64.Build.0 = Release|Any CPU
{E8E224F2-D1E9-437E-8222-FF2F33DB3FCD}.Release|x64.ActiveCfg = Release|Any CPU
{E8E224F2-D1E9-437E-8222-FF2F33DB3FCD}.Release|x64.Build.0 = Release|Any CPU
{E8E224F2-D1E9-437E-8222-FF2F33DB3FCD}.Release|x86.ActiveCfg = Release|Any CPU
{E8E224F2-D1E9-437E-8222-FF2F33DB3FCD}.Release|x86.Build.0 = Release|Any CPU
{DE1F3CE9-4F3B-4428-9293-D18446F333D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DE1F3CE9-4F3B-4428-9293-D18446F333D8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DE1F3CE9-4F3B-4428-9293-D18446F333D8}.Debug|arm64.ActiveCfg = Debug|Any CPU
{DE1F3CE9-4F3B-4428-9293-D18446F333D8}.Debug|arm64.Build.0 = Debug|Any CPU
{DE1F3CE9-4F3B-4428-9293-D18446F333D8}.Debug|x64.ActiveCfg = Debug|Any CPU
{DE1F3CE9-4F3B-4428-9293-D18446F333D8}.Debug|x64.Build.0 = Debug|Any CPU
{DE1F3CE9-4F3B-4428-9293-D18446F333D8}.Debug|x86.ActiveCfg = Debug|Any CPU
{DE1F3CE9-4F3B-4428-9293-D18446F333D8}.Debug|x86.Build.0 = Debug|Any CPU
{DE1F3CE9-4F3B-4428-9293-D18446F333D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DE1F3CE9-4F3B-4428-9293-D18446F333D8}.Release|Any CPU.Build.0 = Release|Any CPU
{DE1F3CE9-4F3B-4428-9293-D18446F333D8}.Release|arm64.ActiveCfg = Release|Any CPU
{DE1F3CE9-4F3B-4428-9293-D18446F333D8}.Release|arm64.Build.0 = Release|Any CPU
{DE1F3CE9-4F3B-4428-9293-D18446F333D8}.Release|x64.ActiveCfg = Release|Any CPU
{DE1F3CE9-4F3B-4428-9293-D18446F333D8}.Release|x64.Build.0 = Release|Any CPU
{DE1F3CE9-4F3B-4428-9293-D18446F333D8}.Release|x86.ActiveCfg = Release|Any CPU
{DE1F3CE9-4F3B-4428-9293-D18446F333D8}.Release|x86.Build.0 = Release|Any CPU
{9F11B1EF-8330-400E-A60C-CFC98E827AA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9F11B1EF-8330-400E-A60C-CFC98E827AA7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9F11B1EF-8330-400E-A60C-CFC98E827AA7}.Debug|arm64.ActiveCfg = Debug|arm64
{9F11B1EF-8330-400E-A60C-CFC98E827AA7}.Debug|arm64.Build.0 = Debug|arm64
{9F11B1EF-8330-400E-A60C-CFC98E827AA7}.Debug|x64.ActiveCfg = Debug|x64
{9F11B1EF-8330-400E-A60C-CFC98E827AA7}.Debug|x64.Build.0 = Debug|x64
{9F11B1EF-8330-400E-A60C-CFC98E827AA7}.Debug|x86.ActiveCfg = Debug|x86
{9F11B1EF-8330-400E-A60C-CFC98E827AA7}.Debug|x86.Build.0 = Debug|x86
{9F11B1EF-8330-400E-A60C-CFC98E827AA7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9F11B1EF-8330-400E-A60C-CFC98E827AA7}.Release|Any CPU.Build.0 = Release|Any CPU
{9F11B1EF-8330-400E-A60C-CFC98E827AA7}.Release|arm64.ActiveCfg = Release|arm64
{9F11B1EF-8330-400E-A60C-CFC98E827AA7}.Release|arm64.Build.0 = Release|arm64
{9F11B1EF-8330-400E-A60C-CFC98E827AA7}.Release|x64.ActiveCfg = Release|x64
{9F11B1EF-8330-400E-A60C-CFC98E827AA7}.Release|x64.Build.0 = Release|x64
{9F11B1EF-8330-400E-A60C-CFC98E827AA7}.Release|x86.ActiveCfg = Release|x86
{9F11B1EF-8330-400E-A60C-CFC98E827AA7}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
7 changes: 0 additions & 7 deletions Epub/KoeBook.Epub/Chapter.cs

This file was deleted.

8 changes: 8 additions & 0 deletions Epub/KoeBook.Epub/Contracts/Services/IEpubCreateService.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
using KoeBook.Epub.Models;

namespace KoeBook.Epub.Contracts.Services;

public interface IEpubCreateService
{
ValueTask<bool> TryCreateEpubAsync(EpubDocument epubDocument, string tmpDirectory, CancellationToken ct);
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using KoeBook.Epub;
using KoeBook.Epub.Models;

namespace KoeBook.Core.Contracts.Services;
namespace KoeBook.Epub.Contracts.Services;

public interface IEpubDocumentStoreService
{
Expand Down
6 changes: 6 additions & 0 deletions Epub/KoeBook.Epub/Contracts/Services/IFileExtensionService.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
namespace KoeBook.Epub.Contracts.Services;

public interface IFileExtensionService
{
public string GetImagesMediaType(string fileName);
}
11 changes: 11 additions & 0 deletions Epub/KoeBook.Epub/Contracts/Services/IScraperSelectorService.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
using KoeBook.Epub.Models;

namespace KoeBook.Epub.Contracts.Services;

/// <summary>
/// スクレイピングを行い、EpubDocumentを作成します。
/// </summary>
public interface IScraperSelectorService
{
public ValueTask<EpubDocument> ScrapingAsync(string url, string coverFillePath, string tempDirectory, Guid id, CancellationToken ct);
}
18 changes: 18 additions & 0 deletions Epub/KoeBook.Epub/Contracts/Services/IScrapingClientService.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
using System.Net.Http.Headers;

namespace KoeBook.Epub.Contracts.Services;

public interface IScrapingClientService
{
/// <summary>
/// スクレイピングでGETする用
/// APIを叩く際は不要
/// </summary>
Task<string> GetAsStringAsync(string url, CancellationToken ct);

/// <summary>
/// スクレイピングでGETする用
/// APIを叩く際は不要
/// </summary>
Task<ContentDispositionHeaderValue?> GetAsStreamAsync(string url, Stream destination, CancellationToken ct);
}
8 changes: 8 additions & 0 deletions Epub/KoeBook.Epub/Contracts/Services/IScrapingService.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
using KoeBook.Epub.Models;

namespace KoeBook.Epub.Contracts.Services;

public interface IScrapingService : IScraperSelectorService
{
public bool IsMatchSite(Uri url);
}
17 changes: 0 additions & 17 deletions Epub/KoeBook.Epub/EpubCreateHelper.cs

This file was deleted.

13 changes: 0 additions & 13 deletions Epub/KoeBook.Epub/EpubDocumentException.cs

This file was deleted.

6 changes: 5 additions & 1 deletion Epub/KoeBook.Epub/KoeBook.Epub.csproj
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
Expand All @@ -11,5 +11,9 @@
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.0" />
<PackageReference Include="NAudio" Version="2.2.1" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\KoeBook.Core\KoeBook.Core.csproj" />
</ItemGroup>

</Project>
7 changes: 7 additions & 0 deletions Epub/KoeBook.Epub/Models/Chapter.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
namespace KoeBook.Epub.Models;

public class Chapter
{
public List<Section> Sections { get; } = [];
public string? Title { get; set; }
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
namespace KoeBook.Epub;
namespace KoeBook.Epub.Models;

public record CssClass(string Name, string Text);
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace KoeBook.Epub;
namespace KoeBook.Epub.Models;

public abstract class Element
{
Expand Down
57 changes: 57 additions & 0 deletions Epub/KoeBook.Epub/Models/EpubDocument.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
using System.Globalization;
using System.IO.Compression;
using System.Text;

namespace KoeBook.Epub.Models;

public class EpubDocument(string title, string author, string coverFilePath, Guid id)
{
public string Title { get; set; } = title;
public string Author { get; set; } = author;

public string CoverFilePath { get; set; } = coverFilePath;

public Guid Id { get; } = id;

public List<CssClass> CssClasses { get; set; } = [
new CssClass("-epub-media-overlay-active", """
.-epub-media-overlay-active *{
background-color: yellow;
color: black !important;
}
"""),
new CssClass("-epub-media-overlay-unactive", """
.-epub-media-overlay-unactive * {
color: gray;
}
"""),
];
public List<Chapter> Chapters { get; set; } = [];

internal void EnsureChapter()
{
if (Chapters.Count == 0)
Chapters.Add(new Chapter() { Title = null });
}

internal void EnsureSection(int chapterIndex)
{
EnsureChapter();

if (Chapters[chapterIndex].Sections.Count == 0)
{
if (Chapters[chapterIndex].Title != null)
Chapters[chapterIndex].Sections.Add(new Section(Chapters[chapterIndex].Title!));
else
Chapters[chapterIndex].Sections.Add(new Section(Title));
}
}

internal void EnsureParagraph(int chapterIndex, int sectionIndex)
{
EnsureSection(chapterIndex);

if (Chapters[chapterIndex].Sections[sectionIndex].Elements.Count == 0)
Chapters[chapterIndex].Sections[sectionIndex].Elements.Add(new Paragraph());
}
}
10 changes: 10 additions & 0 deletions Epub/KoeBook.Epub/Models/Paragraph.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
using KoeBook.Core.Models;

namespace KoeBook.Epub.Models;

public sealed class Paragraph : Element
{
public ScriptLine? ScriptLine { get; set; }
public Audio? Audio => ScriptLine?.Audio;
public string? Text { get; set; }
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace KoeBook.Epub;
namespace KoeBook.Epub.Models;

public class Picture(string path) : Element
{
Expand Down
23 changes: 23 additions & 0 deletions Epub/KoeBook.Epub/Models/Section.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
using System.Text;

namespace KoeBook.Epub.Models;

public sealed class Section(string title)
{
public string Id { get; } = Guid.NewGuid().ToString();
public string Title { get; set; } = title;
public List<Element> Elements { get; set; } = [];

public TimeSpan GetTotalTime()
{
var time = TimeSpan.Zero;
foreach (var element in Elements)
{
if (element is Paragraph para && para.Audio != null)
{
time += para.Audio.TotalTime;
}
}
return time;
}
}
7 changes: 0 additions & 7 deletions Epub/KoeBook.Epub/Paragraph.cs

This file was deleted.

4 changes: 4 additions & 0 deletions Epub/KoeBook.Epub/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
using System.Runtime.CompilerServices;

// PrivateProxyが外部プロジェクトに対応していないため
[assembly: InternalsVisibleTo("KoeBook.Test")]
Loading
Loading