diff --git a/app/shared/app-data/src/commonMain/kotlin/data/models/preference/MediaSelectionSeetings.kt b/app/shared/app-data/src/commonMain/kotlin/data/models/preference/MediaSelectionSeetings.kt
index 13d343c2e..c9795f4c2 100644
--- a/app/shared/app-data/src/commonMain/kotlin/data/models/preference/MediaSelectionSeetings.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/data/models/preference/MediaSelectionSeetings.kt
@@ -18,7 +18,7 @@ import kotlin.time.Duration
import kotlin.time.Duration.Companion.seconds
/**
- * 数据源选择器 (播放页面点击 "数据源" 按钮弹出的) 的设置
+ * 数据源选择器 (播放页面点击 "數據源" 按钮弹出的) 的设置
* @see MediaPreference
*/
@Serializable
diff --git a/app/shared/app-data/src/commonMain/kotlin/data/models/subject/RelatedPersonInfo.kt b/app/shared/app-data/src/commonMain/kotlin/data/models/subject/RelatedPersonInfo.kt
index f94c1deb1..87503d27a 100644
--- a/app/shared/app-data/src/commonMain/kotlin/data/models/subject/RelatedPersonInfo.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/data/models/subject/RelatedPersonInfo.kt
@@ -542,7 +542,7 @@ private val nameCnMap by lazy(LazyThreadSafetyMode.PUBLICATION) {
put(PersonPosition.CastingDirector.id, "演員監督")
put(PersonPosition.ChiefProducer.id, "總製片")
put(PersonPosition.CoProducer.id, "聯合製片人")
- put(PersonPosition.DialogueEditing.id, "台詞編輯")
+ put(PersonPosition.DialogueEditing.id, "臺詞編輯")
put(PersonPosition.PostProductionAssistant.id, "後期製片協調")
put(PersonPosition.ProductionAssistant.id, "製作助手")
put(PersonPosition.ProductionCoordination.id, "製作協調")
diff --git a/app/shared/app-data/src/commonMain/kotlin/data/models/subject/RelatedSubjectInfo.kt b/app/shared/app-data/src/commonMain/kotlin/data/models/subject/RelatedSubjectInfo.kt
index 6c57dbab9..8e452260e 100644
--- a/app/shared/app-data/src/commonMain/kotlin/data/models/subject/RelatedSubjectInfo.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/data/models/subject/RelatedSubjectInfo.kt
@@ -32,12 +32,12 @@ class RelatedSubjectInfo(
enum class SubjectRelation {
/**
- * 对应 Bangumi "续集", 包括第二季, 外传
+ * 对应 Bangumi "續集", 包括第二季, 外传
*/
SEQUEL,
/**
- * 对应 Bangumi "前传"
+ * 对应 Bangumi "前傳"
*/
PREQUEL,
diff --git a/app/shared/app-data/src/commonMain/kotlin/data/models/subject/SubjectCollectionInfo.kt b/app/shared/app-data/src/commonMain/kotlin/data/models/subject/SubjectCollectionInfo.kt
index 9b42db479..2fff6b6c4 100644
--- a/app/shared/app-data/src/commonMain/kotlin/data/models/subject/SubjectCollectionInfo.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/data/models/subject/SubjectCollectionInfo.kt
@@ -192,7 +192,7 @@ fun createTestSubjectCollection(
): SubjectCollectionInfo {
val subjectInfo = SubjectInfo.Empty.copy(
subjectId = id,
- nameCn = "中文条目名称",
+ nameCn = "中文條目名稱",
name = "Subject Name",
nsfw = Random.nextBoolean(),
)
diff --git a/app/shared/app-data/src/commonMain/kotlin/data/models/subject/Tag.kt b/app/shared/app-data/src/commonMain/kotlin/data/models/subject/Tag.kt
index 4f7a53f72..c5d09591b 100644
--- a/app/shared/app-data/src/commonMain/kotlin/data/models/subject/Tag.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/data/models/subject/Tag.kt
@@ -52,7 +52,7 @@ sealed class CanonicalTagKind(val values: List) {
*/
@Immutable
data object Category : CanonicalTagKind(
- listOf("短片", "剧场版", "TV", "OVA", "MV", "CM", "WEB", "PV", "动态漫画"),
+ listOf("短片", "劇場版", "TV", "OVA", "MV", "CM", "WEB", "PV", "動態漫畫"),
)
/**
@@ -60,7 +60,7 @@ sealed class CanonicalTagKind(val values: List) {
*/
@Immutable
data object Source : CanonicalTagKind(
- listOf("原创", "漫画改", "游戏改", "小说改"),
+ listOf("原創", "漫畫改", "遊戲改", "小說改"),
)
/**
@@ -69,9 +69,9 @@ sealed class CanonicalTagKind(val values: List) {
@Immutable
data object Genre : CanonicalTagKind(
listOf(
- "科幻", "喜剧", "百合", "校园", "惊悚", "后宫", "机战", "悬疑", "恋爱", "奇幻",
- "推理", "运动", "耽美", "音乐", "战斗", "冒险", "萌系", "穿越", "玄幻", "乙女",
- "恐怖", "历史", "日常", "剧情", "武侠", "美食", "职场",
+ "科幻", "喜劇", "百合", "校園", "驚悚", "後宮", "機戰", "懸疑", "戀愛", "奇幻",
+ "推理", "運動", "耽美", "音樂", "戰鬥", "冒險", "萌系", "穿越", "玄幻", "乙女",
+ "恐怖", "歷史", "日常", "劇情", "武俠", "美食", "職場",
),
)
@@ -81,8 +81,8 @@ sealed class CanonicalTagKind(val values: List) {
@Immutable
data object Region : CanonicalTagKind(
listOf(
- "欧美", "日本", "美国", "中国", "法国", "韩国", "俄罗斯", "英国",
- "苏联", "香港", "捷克", "台湾",
+ "歐美", "日本", "美國", "中國", "法國", "韓國", "俄羅斯", "英國",
+ "蘇聯", "香港", "捷克", "臺灣",
),
)
@@ -108,8 +108,8 @@ sealed class CanonicalTagKind(val values: List) {
@Immutable
data object Setting : CanonicalTagKind(
listOf(
- "魔法少女", "超能力", "偶像", "网游", "末世", "乐队",
- "赛博朋克", "宫廷", "都市", "异世界", "性转", "龙傲天", "凤傲天",
+ "魔法少女", "超能力", "偶像", "網遊", "末世", "樂隊",
+ "賽博朋克", "宮廷", "都市", "異世界", "性轉", "龍傲天", "鳳傲天",
),
)
@@ -119,8 +119,8 @@ sealed class CanonicalTagKind(val values: List) {
@Immutable
data object Character : CanonicalTagKind(
listOf(
- "制服", "兽耳", "伪娘", "吸血鬼", "妹控", "萝莉", "傲娇", "女仆", "巨乳", "电波",
- "动物", "正太", "兄控", "僵尸", "群像", "美少女", "美少年",
+ "制服", "獸耳", "僞娘", "吸血鬼", "妹控", "蘿莉", "傲嬌", "女僕", "巨乳", "電波",
+ "動物", "正太", "兄控", "殭屍", "羣像", "美少女", "美少年",
),
)
@@ -129,7 +129,7 @@ sealed class CanonicalTagKind(val values: List) {
*/
@Immutable
data object Emotion : CanonicalTagKind(
- listOf("热血", "治愈", "温情", "催泪", "纯爱", "友情", "致郁"),
+ listOf("熱血", "治癒", "溫情", "催淚", "純愛", "友情", "致鬱"),
)
/**
@@ -137,7 +137,7 @@ sealed class CanonicalTagKind(val values: List) {
*/
@Immutable
data object Technology : CanonicalTagKind(
- listOf("黑白", "3D", "水墨", "定格", "粘土", "剪纸", "转描", "三渲二"),
+ listOf("黑白", "3D", "水墨", "定格", "粘土", "剪紙", "轉描", "三渲二"),
)
/**
@@ -146,8 +146,8 @@ sealed class CanonicalTagKind(val values: List) {
@Immutable
data object Series : CanonicalTagKind(
listOf(
- "高达", "东方", "Fate", "空之境界", "柯南", "光之美少女", "哆啦A梦",
- "物语系列", "刀剑神域", "进击的巨人",
+ "高達", "東方", "Fate", "空之境界", "柯南", "光之美少女", "哆啦A夢",
+ "物語系列", "刀劍神域", "進擊的巨人",
),
)
diff --git a/app/shared/app-data/src/commonMain/kotlin/data/network/BangumiSubjectGraphQLParser.kt b/app/shared/app-data/src/commonMain/kotlin/data/network/BangumiSubjectGraphQLParser.kt
index a51f9c0f9..8e9a0af69 100644
--- a/app/shared/app-data/src/commonMain/kotlin/data/network/BangumiSubjectGraphQLParser.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/data/network/BangumiSubjectGraphQLParser.kt
@@ -93,7 +93,7 @@ object BangumiSubjectGraphQLParser {
character = CharacterInfo(
id = characterId,
name = character.getStringOrFail("name"),
- nameCn = character.infobox("简体中文名").firstOrNull() ?: "",
+ nameCn = character.infobox("簡體中文名").firstOrNull() ?: "",
actors = getActors(characterId),
imageMedium = character.getOrFail("images").jsonObjectOrNull?.getStringOrFail("medium") ?: "",
imageLarge = character.getOrFail("images").jsonObjectOrNull?.getStringOrFail("large") ?: "",
@@ -126,7 +126,7 @@ object BangumiSubjectGraphQLParser {
}
private fun JsonObject.toBatchSubjectDetails(): BatchSubjectDetails {
- val completionDate = (this.infobox("播放结束") + this.infobox("放送结束"))
+ val completionDate = (this.infobox("播放結束") + this.infobox("放送結束"))
.firstOrNull()
?.let {
PackedDate.parseFromDate(
@@ -155,7 +155,7 @@ object BangumiSubjectGraphQLParser {
LightRelatedCharacterInfo(
id = characterId,
name = character.getStringOrFail("name"),
- nameCn = character.infobox("简体中文名").firstOrNull() ?: "",
+ nameCn = character.infobox("簡體中文名").firstOrNull() ?: "",
role = role,
)
}
@@ -190,7 +190,7 @@ object BangumiSubjectGraphQLParser {
obj.getIntOrFail("count"),
)
},
- aliases = infobox("别名").filter { it.isNotEmpty() }.toList(),
+ aliases = infobox("別名").filter { it.isNotEmpty() }.toList(),
ratingInfo = getOrFail("rating").jsonObject.let { rating ->
RatingInfo(
rank = rating.getIntOrFail("rank"),
@@ -253,13 +253,13 @@ object BangumiSubjectGraphQLParser {
id = person.getIntOrFail("id"),
name = person.getStringOrFail("name"),
type = PersonType.fromId(person.getIntOrFail("type")),
- // careers = person.infobox("职业").map { PersonCareer.valueOf(it) }.toList(),
+ // careers = person.infobox("職業").map { PersonCareer.valueOf(it) }.toList(),
careers = emptyList(),
imageLarge = person["images"]?.jsonObjectOrNull?.getStringOrFail("large") ?: "",
imageMedium = person["images"]?.jsonObjectOrNull?.getStringOrFail("medium") ?: "",
summary = person.getString("summary") ?: "",
locked = person.getIntOrFail("lock") == 1,
- nameCn = person.infobox("简体中文名").firstOrNull() ?: "",
+ nameCn = person.infobox("簡體中文名").firstOrNull() ?: "",
)
inline fun forEachCharacter(
diff --git a/app/shared/app-data/src/commonMain/kotlin/data/network/BangumiSubjectSearchService.kt b/app/shared/app-data/src/commonMain/kotlin/data/network/BangumiSubjectSearchService.kt
index 8b8bdf814..40e458597 100644
--- a/app/shared/app-data/src/commonMain/kotlin/data/network/BangumiSubjectSearchService.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/data/network/BangumiSubjectSearchService.kt
@@ -27,7 +27,7 @@ import me.him188.ani.utils.platform.collections.mapToIntList
import kotlin.coroutines.CoroutineContext
data class BangumiSearchFilters(
- val tags: List? = null, // "童年", "原创"
+ val tags: List? = null, // "童年", "原創"
val airDates: List? = null, // YYYY-MM-DD
val ratings: List? = null, // ">=6", "<8"
val ranks: List? = null,
diff --git a/app/shared/app-data/src/commonMain/kotlin/data/repository/subject/FollowedSubjectsRepository.kt b/app/shared/app-data/src/commonMain/kotlin/data/repository/subject/FollowedSubjectsRepository.kt
index b91bba0d6..2a6c82ed7 100644
--- a/app/shared/app-data/src/commonMain/kotlin/data/repository/subject/FollowedSubjectsRepository.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/data/repository/subject/FollowedSubjectsRepository.kt
@@ -77,7 +77,7 @@ class FollowedSubjectsRepository(
else -> e
}
- logger.error(displayE) { """Failed to update recently updated subject collections due to ${e}, ignoring. 这只会导致探索页的继续观看栏目可能显示旧结果. """ }
+ logger.error(displayE) { """Failed to update recently updated subject collections due to ${e}, ignoring. 這隻會導致探索頁的繼續觀看欄目可能顯示舊結果. """ }
}
// 先查询完成 (插入数据库) 再返回 flow 去查数据库. 前端会展示 placeholder 所以延迟没问题.
diff --git a/app/shared/app-data/src/commonMain/kotlin/data/repository/subject/SubjectCollectionRepository.kt b/app/shared/app-data/src/commonMain/kotlin/data/repository/subject/SubjectCollectionRepository.kt
index c7eb7e243..cc6640f4c 100644
--- a/app/shared/app-data/src/commonMain/kotlin/data/repository/subject/SubjectCollectionRepository.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/data/repository/subject/SubjectCollectionRepository.kt
@@ -404,7 +404,7 @@ class SubjectCollectionRepositoryImpl(
try {
withContext(defaultDispatcher) {
// 只允许同时一个请求. 防止多个请求浪费带宽.
- // 一般来说不会有多个请求. 最常见的并行请求可能是用户刚刚打开 APP 进入探索页自动刷新"继续观看"栏目, 在刷新还在进行时切换到收藏页触发自动刷新.
+ // 一般来说不会有多个请求. 最常见的并行请求可能是用户刚刚打开 APP 进入探索页自动刷新"繼續觀看"栏目, 在刷新还在进行时切换到收藏页触发自动刷新.
updateRecentlyUpdatedSubjectCollectionsMutex.withLock {
fetchAndSaveSubjectCollectionsWithEpisodes(type, limit, offset)
}
diff --git a/app/shared/app-data/src/commonMain/kotlin/data/repository/subject/SubjectSearchRepository.kt b/app/shared/app-data/src/commonMain/kotlin/data/repository/subject/SubjectSearchRepository.kt
index 46d58d2af..4ff1017e9 100644
--- a/app/shared/app-data/src/commonMain/kotlin/data/repository/subject/SubjectSearchRepository.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/data/repository/subject/SubjectSearchRepository.kt
@@ -201,7 +201,7 @@ class SubjectSearchRepository(
// }
//
// /*
-// (findInfoboxValue("播放结束") ?: findInfoboxValue("放送结束"))
+// (findInfoboxValue("播放結束") ?: findInfoboxValue("放送結束"))
// ?.let {
// PackedDate.parseFromDate(
// it.replace('年', '-')
diff --git a/app/shared/app-data/src/commonMain/kotlin/domain/episode/CreateMediaFetchSelectBundleFlowUseCase.kt b/app/shared/app-data/src/commonMain/kotlin/domain/episode/CreateMediaFetchSelectBundleFlowUseCase.kt
index e87c3b635..31e8b8eda 100644
--- a/app/shared/app-data/src/commonMain/kotlin/domain/episode/CreateMediaFetchSelectBundleFlowUseCase.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/domain/episode/CreateMediaFetchSelectBundleFlowUseCase.kt
@@ -98,7 +98,7 @@ class CreateMediaFetchSelectBundleFlowUseCaseImpl(
val fetchRequestFlow: Flow = bundleDistinct
// 为什么要 `filterNotNull`:
// 如果本地有缓存, 我们会优先读取缓存, bundle 会不是 null. 如果缓存有过期, 此时会同时发起网络查询.
- // 如果加载发生网络错误, 然后用户点击 "重试", bundle 会变为 `null`.
+ // 如果加载发生网络错误, 然后用户点击 "重試", bundle 会变为 `null`.
// 然而即使进行了网络查询, 新的数据很有可能跟旧的数据是一样的, 就没有必要重新查询.
// 所以我们总是等待一个 not null SubjectEpisodeInfoBundle 比较.
.filterNotNull()
diff --git a/app/shared/app-data/src/commonMain/kotlin/domain/media/cache/engine/HttpMediaCacheEngine.kt b/app/shared/app-data/src/commonMain/kotlin/domain/media/cache/engine/HttpMediaCacheEngine.kt
index d4a384238..1802b700a 100644
--- a/app/shared/app-data/src/commonMain/kotlin/domain/media/cache/engine/HttpMediaCacheEngine.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/domain/media/cache/engine/HttpMediaCacheEngine.kt
@@ -190,7 +190,7 @@ class HttpMediaCacheEngine(
if (allowedAbsolute.none {
myPath.startsWith(it)
}) {
- logger.warn { "本地 WEB 缓存文件未找到匹配的 MediaCache, 已释放 ${save.inSystem.actualSize().bytes}: ${save.inSystem.absolutePath}" }
+ logger.warn { "本地 WEB 緩存文件未找到匹配的 MediaCache, 已釋放 ${save.inSystem.actualSize().bytes}: ${save.inSystem.absolutePath}" }
SystemFileSystem.deleteRecursively(save)
}
}
diff --git a/app/shared/app-data/src/commonMain/kotlin/domain/media/cache/engine/MediaCacheEngine.kt b/app/shared/app-data/src/commonMain/kotlin/domain/media/cache/engine/MediaCacheEngine.kt
index 631b838e1..79eaec716 100644
--- a/app/shared/app-data/src/commonMain/kotlin/domain/media/cache/engine/MediaCacheEngine.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/domain/media/cache/engine/MediaCacheEngine.kt
@@ -60,7 +60,7 @@ interface MediaCacheEngine {
fun supports(media: Media): Boolean
/**
- * "挂载" 到 composable 中, 以便进行需要虚拟 UI 的操作, 例如 WebView
+ * "掛載" 到 composable 中, 以便进行需要虚拟 UI 的操作, 例如 WebView
*/
@Composable
fun ComposeContent() {
diff --git a/app/shared/app-data/src/commonMain/kotlin/domain/media/cache/engine/TorrentEngineAccess.kt b/app/shared/app-data/src/commonMain/kotlin/domain/media/cache/engine/TorrentEngineAccess.kt
index cffd3583b..39b2a8b76 100644
--- a/app/shared/app-data/src/commonMain/kotlin/domain/media/cache/engine/TorrentEngineAccess.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/domain/media/cache/engine/TorrentEngineAccess.kt
@@ -95,21 +95,21 @@ object AlwaysUseTorrentEngineAccess : TorrentEngineAccess {
}
@RequiresOptIn(
- message = "若在 block 中调用了需要 TorrentEngine 长期可用的方法, " +
- "请确保在此函数返回后 TorrentEngine 一定可用 " +
- "(例如在其中一个实现 TorrentServiceConnectionManager 中, " +
- "使 checkIfAllTorrentMediaCacheCompleted 为 false, 也就是创建了 BT 媒体缓存), " +
- "否则会导致错误的 useEngine 状态被 emit. " +
- "调用此函数需要有明确的注释来说明必须调用此函数的原因和合理性, 方便后人理解这里的逻辑",
+ message = "若在 block 中調用了需要 TorrentEngine 長期可用的方法, " +
+ "請確保在此函數返回後 TorrentEngine 一定可用 " +
+ "(例如在其中一個實現 TorrentServiceConnectionManager 中, " +
+ "使 checkIfAllTorrentMediaCacheCompleted 爲 false, 也就是創建了 BT 媒體緩存), " +
+ "否則會導致錯誤的 useEngine 狀態被 emit. " +
+ "調用此函數需要有明確的註釋來說明必須調用此函數的原因和合理性, 方便後人理解這裏的邏輯",
level = RequiresOptIn.Level.ERROR,
)
annotation class EnsureTorrentEngineIsAccessible
@RequiresOptIn(
- message = "请总是使用 TorrentEngineAccess.withEngineAccessible 来使 TorrentEngine 可用, " +
- "除非你能确保请求 TorrentEngine 可用后有对应的 `requestUseEngine(false)` 来释放 TorrentEngine 可用状态. " +
- "调用此函数需要有明确的注释来说明必须调用此函数的原因和合理性, 方便后人理解这里的逻辑",
+ message = "請總是使用 TorrentEngineAccess.withEngineAccessible 來使 TorrentEngine 可用, " +
+ "除非你能確保請求 TorrentEngine 可用後有對應的 `requestUseEngine(false)` 來釋放 TorrentEngine 可用狀態. " +
+ "調用此函數需要有明確的註釋來說明必須調用此函數的原因和合理性, 方便後人理解這裏的邏輯",
level = RequiresOptIn.Level.ERROR,
)
annotation class UnsafeTorrentEngineAccessApi
diff --git a/app/shared/app-data/src/commonMain/kotlin/domain/media/cache/engine/TorrentMediaCacheEngine.kt b/app/shared/app-data/src/commonMain/kotlin/domain/media/cache/engine/TorrentMediaCacheEngine.kt
index 4fc9ebc83..f12d52a3f 100644
--- a/app/shared/app-data/src/commonMain/kotlin/domain/media/cache/engine/TorrentMediaCacheEngine.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/domain/media/cache/engine/TorrentMediaCacheEngine.kt
@@ -565,7 +565,7 @@ class TorrentMediaCacheEngine(
val saves = downloader.listSaves()
for (save in saves) {
if (save.absolutePath !in allowedAbsolute) {
- logger.warn { "本地种子缓存文件未找到匹配的 MediaCache, 已释放 ${save.actualSize().bytes}: ${save.absolutePath}" }
+ logger.warn { "本地種子緩存文件未找到匹配的 MediaCache, 已釋放 ${save.actualSize().bytes}: ${save.absolutePath}" }
save.deleteRecursively()
}
}
diff --git a/app/shared/app-data/src/commonMain/kotlin/domain/media/resolver/MediaResolver.kt b/app/shared/app-data/src/commonMain/kotlin/domain/media/resolver/MediaResolver.kt
index 67c95027c..a4d2d45b5 100644
--- a/app/shared/app-data/src/commonMain/kotlin/domain/media/resolver/MediaResolver.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/domain/media/resolver/MediaResolver.kt
@@ -34,7 +34,7 @@ interface MediaResolver {
fun supports(media: Media): Boolean
/**
- * "挂载" 到 composable 中, 以便进行需要虚拟 UI 的操作, 例如 WebView
+ * "掛載" 到 composable 中, 以便进行需要虚拟 UI 的操作, 例如 WebView
*/
@Composable
fun ComposeContent() {
diff --git a/app/shared/app-data/src/commonMain/kotlin/domain/media/selector/MediaSelector.kt b/app/shared/app-data/src/commonMain/kotlin/domain/media/selector/MediaSelector.kt
index 804a959cd..bc0977e95 100644
--- a/app/shared/app-data/src/commonMain/kotlin/domain/media/selector/MediaSelector.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/domain/media/selector/MediaSelector.kt
@@ -90,18 +90,18 @@ import kotlin.coroutines.CoroutineContext
* suspend fun usageExample(mediaSelector: MediaSelector) {
* // 观察过滤后但包含排除原因的候选
* mediaSelector.filteredCandidates.collect { allCandidates ->
- * println("所有候选资源(含排除原因): $allCandidates")
+ * println("所有候選資源(含排除原因): $allCandidates")
* }
*
* // 观察过滤后可用的字幕组选项
* mediaSelector.alliance.available.collect { alliances ->
- * println("可选的字幕组列表: $alliances")
+ * println("可選的字幕組列表: $alliances")
* }
*
* // 如果尚未选择任何资源,尝试自动选择一个符合当前偏好的资源
* val autoSelected = mediaSelector.trySelectDefault()
* if (autoSelected != null) {
- * println("已自动选择: ${autoSelected.mediaId}")
+ * println("已自動選擇: ${autoSelected.mediaId}")
* }
*
* // 用户在 UI 中手动指定某个资源
@@ -109,7 +109,7 @@ import kotlin.coroutines.CoroutineContext
* mediaSelector.select(userChosenMedia)
*
* // 最终获取当前选中的资源
- * println("当前选中的资源: ${mediaSelector.selected.value}")
+ * println("當前選中的資源: ${mediaSelector.selected.value}")
* }
* ```
*
@@ -258,7 +258,7 @@ interface MediaPreferenceItem {
/**
* [userSelected] 与 [defaultSelected] 合并考虑的选择. 不必是 [available] 里面的选项.
*/
- val finalSelected: Flow // 注意, autoEnableLastSelected 依赖 "不必是 [available] 里面的选项" 这个性质.
+ val finalSelected: Flow // 注意, autoEnableLastSelected 依赖 "不必是 [available] 裏面的選項" 这个性质.
/**
* 用户选择
diff --git a/app/shared/app-data/src/commonMain/kotlin/domain/media/selector/MediaSelectorAutoSelect.kt b/app/shared/app-data/src/commonMain/kotlin/domain/media/selector/MediaSelectorAutoSelect.kt
index 9afb7a1d4..f16cf64f9 100644
--- a/app/shared/app-data/src/commonMain/kotlin/domain/media/selector/MediaSelectorAutoSelect.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/domain/media/selector/MediaSelectorAutoSelect.kt
@@ -49,7 +49,7 @@ inline val MediaSelector.autoSelect get() = MediaSelectorAutoSelect(this)
/**
* [MediaSelector] 自动选择功能.
*
- * 有关数据源选择算法, 参阅 [MediaSelector], 尤其是 "快速选择的情况" 部分.
+ * 有关数据源选择算法, 参阅 [MediaSelector], 尤其是 "快速選擇的情況" 部分.
*/
class MediaSelectorAutoSelect(
private val mediaSelector: MediaSelector,
diff --git a/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/MediaListFilters.kt b/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/MediaListFilters.kt
index 35084863d..737c448a4 100644
--- a/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/MediaListFilters.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/MediaListFilters.kt
@@ -130,7 +130,7 @@ object MediaListFilters {
* 我们定义几类特殊字符(串):
*
* 1. 无条件保留的特殊字符. [keepWords] 中的词总是会被保留.
- * 2. 无条件删除的特殊字符. 例如 "电影", "剧场版" 等, 这些字符总是会被删除.
+ * 2. 无条件删除的特殊字符. 例如 "電影", "劇場版" 等, 这些字符总是会被删除.
*
* 基于经过上面两类处理后的字符串, 我们会进一步处理:
* 1. 条件删除 ([charsToDelete]) 和替换为空格 ([charsToReplaceWithWhitespace]).
@@ -141,7 +141,7 @@ object MediaListFilters {
*
* @param removeWhitespace 如果为 true, 则会删除所有空格(包括通过 replaceWithWhitespace 替换出来的空格)
* @param replaceNumbers 如果为 true, 则会将中文数字替换成阿拉伯数字 (例如 “三” -> “3”)
- * @param removeMarkers 如果为 true, 则会删除 "电影", "剧场版", "OVA" 等仅有标记作用的词. 注意, 不能在搜索到之后做匹配的时候使用. 详见 #1794
+ * @param removeMarkers 如果为 true, 则会删除 "電影", "劇場版", "OVA" 等仅有标记作用的词. 注意, 不能在搜索到之后做匹配的时候使用. 详见 #1794
*/
fun removeSpecials(
string: String,
@@ -154,17 +154,17 @@ object MediaListFilters {
acc.replace(keepWord.originalWord, keepWord.mask)
}
- // 2. 无条件删除 "电影", "剧场版", "OVA" 等
+ // 2. 无条件删除 "電影", "劇場版", "OVA" 等
val sb = StringBuilder(result).apply {
if (removeMarkers) {
- deletePrefix("电影")
- deleteInfix("电影")
- deletePrefix("剧场版")
- deleteInfix("剧场版")
+ deletePrefix("電影")
+ deleteInfix("電影")
+ deletePrefix("劇場版")
+ deleteInfix("劇場版")
deletePrefix("OVA")
deleteInfix("OVA")
deleteInfix("OAD")
- deleteInfix("总集篇")
+ deleteInfix("總集篇")
}
}
diff --git a/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/MediaSourceEngineHelpers.kt b/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/MediaSourceEngineHelpers.kt
index 2f1fed420..0c799986a 100644
--- a/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/MediaSourceEngineHelpers.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/MediaSourceEngineHelpers.kt
@@ -22,7 +22,7 @@ object MediaSourceEngineHelpers {
subjectName,
removeWhitespace = false,
replaceNumbers = false,
- removeMarkers = true, // Note: 删除 "剧场版" 等标记, 否则 "剧场版 命运石之门" 会变为 "剧场版"
+ removeMarkers = true, // Note: 删除 "劇場版" 等标记, 否则 "劇場版 命運石之門" 会变为 "劇場版"
) // keep whitespace for getFirstWord
} else {
subjectName
diff --git a/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/codec/MediaSourceArguments.kt b/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/codec/MediaSourceArguments.kt
index 22bd0268a..894b64ef3 100644
--- a/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/codec/MediaSourceArguments.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/codec/MediaSourceArguments.kt
@@ -30,7 +30,7 @@ interface MediaSourceArguments {
val tier: MediaSourceTier
}
-@RequiresOptIn("实现新的 MediaSourceArgument 时, 还需要在 MediaSourceCodecManager 注册此 Argument 类型的 codec")
+@RequiresOptIn("實現新的 MediaSourceArgument 時, 還需要在 MediaSourceCodecManager 註冊此 Argument 類型的 codec")
annotation class DontForgetToRegisterCodec
typealias MediaSourceTier = me.him188.ani.datasources.api.source.MediaSourceTier
diff --git a/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/rss/RssMediaSource.kt b/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/rss/RssMediaSource.kt
index 9dc7988dc..b26ebe34d 100644
--- a/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/rss/RssMediaSource.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/rss/RssMediaSource.kt
@@ -142,7 +142,7 @@ class RssMediaSource(
iconUrl = arguments.iconUrl,
)
- // https://garden.breadio.wiki/feed.xml?filter=[{"search":["樱trick"]}]
+ // https://garden.breadio.wiki/feed.xml?filter=[{"search":["櫻trick"]}]
// https://acg.rip/page/2.xml?term=%E9%AD%94%E6%B3%95%E5%B0%91%E5%A5%B3
private fun startSearch(query: RssSearchQuery): SizedSource {
return PageBasedPagedSource { page ->
diff --git a/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/rss/RssMediaSourceEngine.kt b/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/rss/RssMediaSourceEngine.kt
index a650d1599..99286a6dc 100644
--- a/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/rss/RssMediaSourceEngine.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/rss/RssMediaSourceEngine.kt
@@ -208,7 +208,7 @@ class DefaultRssMediaSourceEngine(
)
}
if (e.response.status == HttpStatusCode.BadRequest) {
- // io.ktor.client.plugins.ClientRequestException: Client request(GET https://garden.breadio.wiki/feed.xml?filter=[{"type":"动画","search":["Bocchi%20the%20%22Guitar%20Hero%22%20Rock%20Story"]}]) invalid: 400 . Text: "{"status":400,"detail":{"url":"https://garden.breadio.wiki/feed.xml?filter=[{%22type%22:%22%E5%8A%A8%E7%94%BB%22,%22search%22:[%22Bocchi%20the%20%22Guitar%20Hero%22%20Rock%20Story%22]}]","filter":"[{\"type\":\"动画\",\"search\":[\"Bocchi the \"Guitar Hero\" Rock Story\"]}]","message":"Expected ',' or ']' after array element in JSON at position 37"}}"
+ // io.ktor.client.plugins.ClientRequestException: Client request(GET https://garden.breadio.wiki/feed.xml?filter=[{"type":"動畫","search":["Bocchi%20the%20%22Guitar%20Hero%22%20Rock%20Story"]}]) invalid: 400 . Text: "{"status":400,"detail":{"url":"https://garden.breadio.wiki/feed.xml?filter=[{%22type%22:%22%E5%8A%A8%E7%94%BB%22,%22search%22:[%22Bocchi%20the%20%22Guitar%20Hero%22%20Rock%20Story%22]}]","filter":"[{\"type\":\"動畫\",\"search\":[\"Bocchi the \"Guitar Hero\" Rock Story\"]}]","message":"Expected ',' or ']' after array element in JSON at position 37"}}"
return Result(
finalUrl,
query,
diff --git a/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/test/web/SelectorMediaSourceTester.kt b/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/test/web/SelectorMediaSourceTester.kt
index 5679803ab..7820afac7 100644
--- a/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/test/web/SelectorMediaSourceTester.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/test/web/SelectorMediaSourceTester.kt
@@ -26,7 +26,7 @@ import kotlin.coroutines.CoroutineContext
import kotlin.coroutines.cancellation.CancellationException
/**
- * 交互式的 [SelectorMediaSourceEngine]. 用于 UI 的 "测试数据源" 功能.
+ * 交互式的 [SelectorMediaSourceEngine]. 用于 UI 的 "測試數據源" 功能.
*/
class SelectorMediaSourceTester(
private val engine: SelectorMediaSourceEngine,
diff --git a/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/web/SelectorMediaSourceEngine.kt b/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/web/SelectorMediaSourceEngine.kt
index 9336546b0..682cac350 100644
--- a/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/web/SelectorMediaSourceEngine.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/web/SelectorMediaSourceEngine.kt
@@ -269,7 +269,7 @@ abstract class SelectorMediaSourceEngine {
}
/**
- * 有的 channel 会叫 "简中" 和 "繁中"
+ * 有的 channel 会叫 "簡中" 和 "繁中"
*/
private fun guessSubtitleLanguages(
info: WebSearchEpisodeInfo,
diff --git a/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/web/SelectorSearchConfig.kt b/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/web/SelectorSearchConfig.kt
index 7d79a5c97..02abdffec 100644
--- a/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/web/SelectorSearchConfig.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/web/SelectorSearchConfig.kt
@@ -72,7 +72,7 @@ data class SelectorSearchConfig(
// * - ``: channel name
// * - ``: episode name
// *
-// * E.g. 用于匹配 "线路1 第1集":
+// * E.g. 用于匹配 "線路1 第1集":
// * ```regex
// * (?.+)\s*第(?\d+)集
// * ```
diff --git a/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/web/format/SelectorChannelFormat.kt b/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/web/format/SelectorChannelFormat.kt
index 9d2b81f8f..880128a90 100644
--- a/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/web/format/SelectorChannelFormat.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/domain/mediasource/web/format/SelectorChannelFormat.kt
@@ -45,7 +45,7 @@ sealed class SelectorChannelFormat(override va
}
@Language("regexp")
- const val DEFAULT_MATCH_EPISODE_SORT_FROM_NAME = """第\s*(?.+)\s*[话集]"""
+ const val DEFAULT_MATCH_EPISODE_SORT_FROM_NAME = """第\s*(?.+)\s*[話集]"""
private fun isPossiblyMovie(title: String): Boolean {
// https://github.com/open-ani/animeko/pull/1171#issuecomment-2466115293
diff --git a/app/shared/app-data/src/commonMain/kotlin/domain/player/extension/MarkAsWatchedExtension.kt b/app/shared/app-data/src/commonMain/kotlin/domain/player/extension/MarkAsWatchedExtension.kt
index 544a6f104..6ea925013 100644
--- a/app/shared/app-data/src/commonMain/kotlin/domain/player/extension/MarkAsWatchedExtension.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/domain/player/extension/MarkAsWatchedExtension.kt
@@ -104,7 +104,7 @@ class MarkAsWatchedExtension(
videoLength - 100.seconds.inWholeMilliseconds,
)
) {
- logger.info { "观看到 90%, 标记看过" }
+ logger.info { "觀看到 90%, 標記看過" }
try {
setEpisodeCollectionTypeUseCase(subjectId, episodeId, UnifiedCollectionType.DONE)
} catch (e: ClientRequestException) {
diff --git a/app/shared/app-data/src/commonMain/kotlin/domain/player/extension/SwitchNextEpisodeExtension.kt b/app/shared/app-data/src/commonMain/kotlin/domain/player/extension/SwitchNextEpisodeExtension.kt
index e90c730c4..1075d93f0 100644
--- a/app/shared/app-data/src/commonMain/kotlin/domain/player/extension/SwitchNextEpisodeExtension.kt
+++ b/app/shared/app-data/src/commonMain/kotlin/domain/player/extension/SwitchNextEpisodeExtension.kt
@@ -57,7 +57,7 @@ class SwitchNextEpisodeExtension(
if (playback == PlaybackState.FINISHED && closeToEnd) {
val nextEpisode = getNextEpisode(session.episodeId)
- logger.info("播放完毕,切换下一集 $nextEpisode")
+ logger.info("播放完畢,切換下一集 $nextEpisode")
context.switchEpisode(nextEpisode ?: return@collect)
}
}
diff --git a/app/shared/app-data/src/commonTest/kotlin/data/network/BangumiSubjectSearchServiceTest.kt b/app/shared/app-data/src/commonTest/kotlin/data/network/BangumiSubjectSearchServiceTest.kt
index 26fbe0c3d..e6f14c83e 100644
--- a/app/shared/app-data/src/commonTest/kotlin/data/network/BangumiSubjectSearchServiceTest.kt
+++ b/app/shared/app-data/src/commonTest/kotlin/data/network/BangumiSubjectSearchServiceTest.kt
@@ -15,7 +15,7 @@ import kotlin.test.assertEquals
class BangumiSubjectSearchServiceTest {
@Test
fun `test sanitizeKeyword`() {
- assertEquals("测试 ", BangumiSubjectSearchService.sanitizeKeyword("测试!"))
- assertEquals("测 试", BangumiSubjectSearchService.sanitizeKeyword("测/试"))
+ assertEquals("測試 ", BangumiSubjectSearchService.sanitizeKeyword("測試!"))
+ assertEquals("測 試", BangumiSubjectSearchService.sanitizeKeyword("測/試"))
}
}
\ No newline at end of file
diff --git a/app/shared/app-data/src/commonTest/kotlin/domain/comment/PostCommentUseCaseTest.kt b/app/shared/app-data/src/commonTest/kotlin/domain/comment/PostCommentUseCaseTest.kt
index 166c1a1f5..e0600725b 100644
--- a/app/shared/app-data/src/commonTest/kotlin/domain/comment/PostCommentUseCaseTest.kt
+++ b/app/shared/app-data/src/commonTest/kotlin/domain/comment/PostCommentUseCaseTest.kt
@@ -177,7 +177,7 @@ class PostCommentUseCaseTest {
private companion object {
private const val TURNSTILE_TOKEN = "test-cf-turnstile-token-114514"
private val commentContext = CommentContext.Episode(1, 2)
- private const val COMMENT_CONTENT = "小祈好可爱我要死了(bgm38)"
+ private const val COMMENT_CONTENT = "小祈好可愛我要死了(bgm38)"
private const val TURNSTILE_ERROR_CODE = 114514
}
}
\ No newline at end of file
diff --git a/app/shared/app-data/src/commonTest/kotlin/domain/media/cache/requester/EpisodeCacheRequesterTest.kt b/app/shared/app-data/src/commonTest/kotlin/domain/media/cache/requester/EpisodeCacheRequesterTest.kt
index 5121dae3c..56df76e7e 100644
--- a/app/shared/app-data/src/commonTest/kotlin/domain/media/cache/requester/EpisodeCacheRequesterTest.kt
+++ b/app/shared/app-data/src/commonTest/kotlin/domain/media/cache/requester/EpisodeCacheRequesterTest.kt
@@ -214,7 +214,7 @@ class EpisodeCacheRequesterTest {
fun `done has correct metadata`() = runTest {
val request = createRequest().run {
copy(
- subjectInfo.copy(subjectId = 12, name = "ひ", nameCn = "孤独摇滚"),
+ subjectInfo.copy(subjectId = 12, name = "ひ", nameCn = "孤獨搖滾"),
episodeInfo.copy(sort = EpisodeSort(2), name = "第二集"), // 2 in 12
)
}
@@ -231,8 +231,8 @@ class EpisodeCacheRequesterTest {
MediaCacheMetadata(
subjectId = "12",
episodeId = "0",
- subjectNameCN = "孤独摇滚",
- subjectNames = listOf("孤独摇滚", "ひ"),
+ subjectNameCN = "孤獨搖滾",
+ subjectNames = listOf("孤獨搖滾", "ひ"),
episodeSort = EpisodeSort(2), // using new
episodeEp = null,
episodeName = "第二集",
@@ -298,7 +298,7 @@ class EpisodeCacheRequesterTest {
val originalMedia = createTestDefaultMedia(
mediaId = "$SOURCE_DMHY.1",
mediaSourceId = SOURCE_DMHY,
- originalTitle = "[桜都字幕组] 孤独摇滚 ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC",
+ originalTitle = "[桜都字幕組] 孤獨搖滾 ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC",
download = ResourceLocation.MagnetLink("magnet:?xt=urn:btih:1"),
originalUrl = "https://example.com/1",
publishedTime = 1,
@@ -306,7 +306,7 @@ class EpisodeCacheRequesterTest {
properties = createTestMediaProperties(
subtitleLanguageIds = listOf(ChineseSimplified, ChineseTraditional).map { it.id },
resolution = "1080P",
- alliance = "桜都字幕组",
+ alliance = "桜都字幕組",
size = 122.megaBytes,
subtitleKind = null,
),
@@ -323,8 +323,8 @@ class EpisodeCacheRequesterTest {
MediaCacheMetadata(
subjectId = "1",
episodeId = "1",
- subjectNameCN = "孤独摇滚",
- subjectNames = listOf("孤独摇滚"),
+ subjectNameCN = "孤獨搖滾",
+ subjectNames = listOf("孤獨搖滾"),
episodeSort = EpisodeSort(1),
episodeEp = EpisodeSort(1),
episodeName = "test",
@@ -347,7 +347,7 @@ class EpisodeCacheRequesterTest {
val originalMedia = createTestDefaultMedia(
mediaId = "$SOURCE_DMHY.1",
mediaSourceId = SOURCE_DMHY,
- originalTitle = "[桜都字幕组] 孤独摇滚 ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC",
+ originalTitle = "[桜都字幕組] 孤獨搖滾 ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC",
download = ResourceLocation.MagnetLink("magnet:?xt=urn:btih:1"),
originalUrl = "https://example.com/1",
publishedTime = 1,
@@ -355,7 +355,7 @@ class EpisodeCacheRequesterTest {
properties = createTestMediaProperties(
subtitleLanguageIds = listOf(ChineseSimplified, ChineseTraditional).map { it.id },
resolution = "1080P",
- alliance = "桜都字幕组",
+ alliance = "桜都字幕組",
size = 122.megaBytes,
subtitleKind = null,
),
@@ -372,8 +372,8 @@ class EpisodeCacheRequesterTest {
MediaCacheMetadata(
subjectId = "1",
episodeId = "1",
- subjectNameCN = "孤独摇滚",
- subjectNames = listOf("孤独摇滚"),
+ subjectNameCN = "孤獨搖滾",
+ subjectNames = listOf("孤獨搖滾"),
episodeSort = EpisodeSort(1),
episodeEp = EpisodeSort(1),
episodeName = "test",
@@ -396,7 +396,7 @@ class EpisodeCacheRequesterTest {
return createTestDefaultMedia(
mediaId = id,
mediaSourceId = SOURCE_DMHY,
- originalTitle = "[桜都字幕组] 孤独摇滚 ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC",
+ originalTitle = "[桜都字幕組] 孤獨搖滾 ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC",
download = ResourceLocation.MagnetLink("magnet:?xt=urn:btih:1"),
originalUrl = "https://example.com/1",
publishedTime = 1,
@@ -404,7 +404,7 @@ class EpisodeCacheRequesterTest {
properties = createTestMediaProperties(
subtitleLanguageIds = listOf(ChineseSimplified, ChineseTraditional).map { it.id },
resolution = "1080P",
- alliance = "桜都字幕组",
+ alliance = "桜都字幕組",
size = 122.megaBytes,
subtitleKind = null,
),
@@ -428,8 +428,8 @@ class EpisodeCacheRequesterTest {
MediaCacheMetadata(
subjectId = "1",
episodeId = "1",
- subjectNameCN = "孤独摇滚",
- subjectNames = listOf("孤独摇滚"),
+ subjectNameCN = "孤獨搖滾",
+ subjectNames = listOf("孤獨搖滾"),
episodeSort = episodeSort,
episodeEp = episodeEp,
episodeName = "test",
@@ -443,7 +443,7 @@ class EpisodeCacheRequesterTest {
val request = createRequest().run {
copy(
- subjectInfo.copy(subjectId = 12, name = "ひ", nameCn = "孤独摇滚"),
+ subjectInfo.copy(subjectId = 12, name = "ひ", nameCn = "孤獨搖滾"),
episodeInfo.copy(sort = EpisodeSort(2), name = "第二集"), // 2 in 12
)
}
@@ -464,8 +464,8 @@ class EpisodeCacheRequesterTest {
MediaCacheMetadata(
subjectId = "12",
episodeId = "0",
- subjectNameCN = "孤独摇滚",
- subjectNames = listOf("孤独摇滚", "ひ"),
+ subjectNameCN = "孤獨搖滾",
+ subjectNames = listOf("孤獨搖滾", "ひ"),
episodeSort = EpisodeSort(2), // using new
episodeEp = null,
episodeName = "第二集",
@@ -485,7 +485,7 @@ class EpisodeCacheRequesterTest {
val request = createRequest().run {
copy(
- subjectInfo.copy(subjectId = 12, name = "ひ", nameCn = "孤独摇滚"),
+ subjectInfo.copy(subjectId = 12, name = "ひ", nameCn = "孤獨搖滾"),
episodeInfo.copy(sort = EpisodeSort(2), name = "第二集"), // 2 in 12
)
}
@@ -501,8 +501,8 @@ class EpisodeCacheRequesterTest {
MediaCacheMetadata(
subjectId = "12",
episodeId = "0",
- subjectNameCN = "孤独摇滚",
- subjectNames = listOf("孤独摇滚", "ひ"),
+ subjectNameCN = "孤獨搖滾",
+ subjectNames = listOf("孤獨搖滾", "ひ"),
episodeSort = EpisodeSort(2), // using new
episodeEp = null,
episodeName = "第二集",
diff --git a/app/shared/app-data/src/commonTest/kotlin/domain/media/fetch/MediaFetcherTest.kt b/app/shared/app-data/src/commonTest/kotlin/domain/media/fetch/MediaFetcherTest.kt
index 5fe68034e..4dbe2b506 100644
--- a/app/shared/app-data/src/commonTest/kotlin/domain/media/fetch/MediaFetcherTest.kt
+++ b/app/shared/app-data/src/commonTest/kotlin/domain/media/fetch/MediaFetcherTest.kt
@@ -49,9 +49,9 @@ class MediaFetcherTest {
private val request1 = MediaFetchRequest(
subjectId = "123123",
episodeId = "1231231",
- subjectNames = listOf("夜晚的水母不会游泳"),
+ subjectNames = listOf("夜晚的水母不會游泳"),
episodeSort = EpisodeSort("03"),
- episodeName = "测试剧集2",
+ episodeName = "測試劇集2",
)
///////////////////////////////////////////////////////////////////////////
diff --git a/app/shared/app-data/src/commonTest/kotlin/domain/media/resolver/SelectVideoFileAnitorrentEntryTest.kt b/app/shared/app-data/src/commonTest/kotlin/domain/media/resolver/SelectVideoFileAnitorrentEntryTest.kt
index bbd56af47..5c30dd3e2 100644
--- a/app/shared/app-data/src/commonTest/kotlin/domain/media/resolver/SelectVideoFileAnitorrentEntryTest.kt
+++ b/app/shared/app-data/src/commonTest/kotlin/domain/media/resolver/SelectVideoFileAnitorrentEntryTest.kt
@@ -30,7 +30,7 @@ class SelectVideoFileAnitorrentEntryTest {
val selected = TorrentMediaResolver.selectVideoFileEntry(
listOf("[Nekomoe kissaten&LoliHouse] Shuumatsu Train Doko e Iku - 04 [WebRip 1080p HEVC-10bit AAC ASSx2].mkv"),
{ this },
- episodeTitles = listOf("终末列车去往何方?"),
+ episodeTitles = listOf("終末列車去往何方?"),
episodeSort = EpisodeSort(4),
episodeEp = null,
)
@@ -71,7 +71,7 @@ class SelectVideoFileAnitorrentEntryTest {
""".trimIndent(),
),
{ this },
- episodeTitles = listOf("终末列车去往何方?"),
+ episodeTitles = listOf("終末列車去往何方?"),
episodeSort = EpisodeSort(4),
episodeEp = null,
)
@@ -96,7 +96,7 @@ class SelectVideoFileAnitorrentEntryTest {
""".trimIndent(),
),
{ this },
- episodeTitles = listOf("终末列车去往何方?"),
+ episodeTitles = listOf("終末列車去往何方?"),
episodeSort = EpisodeSort(26),
episodeEp = EpisodeSort(4),
)
@@ -121,7 +121,7 @@ class SelectVideoFileAnitorrentEntryTest {
""".trimIndent(),
),
{ this },
- episodeTitles = listOf("终末列车去往何方?"),
+ episodeTitles = listOf("終末列車去往何方?"),
episodeSort = EpisodeSort(4),
episodeEp = EpisodeSort(2),
)
@@ -159,20 +159,20 @@ class SelectVideoFileAnitorrentEntryTest {
@TestFactory
fun `select normal over PV`() = runDynamicTests(
listOf(
- "[DBD-Raws][未来日记][01][1080P][BDRip][HEVC-10bit][FLACx2].mkv",
- "[DBD-Raws][未来日记] PV [01][1080P][BDRip][HEVC-10bit][FLAC].mkv",
- "[DBD-Raws][未来日记] PV01 [1080P][BDRip][HEVC-10bit][FLAC].mkv",
+ "[DBD-Raws][未來日記][01][1080P][BDRip][HEVC-10bit][FLACx2].mkv",
+ "[DBD-Raws][未來日記] PV [01][1080P][BDRip][HEVC-10bit][FLAC].mkv",
+ "[DBD-Raws][未來日記] PV01 [1080P][BDRip][HEVC-10bit][FLAC].mkv",
).permuted().mapIndexed { index, list ->
dynamicTest(index.toString()) {
val selected = TorrentMediaResolver.selectVideoFileEntry(
list,
{ this },
- episodeTitles = listOf("未来日记"),
+ episodeTitles = listOf("未來日記"),
episodeSort = EpisodeSort(1),
episodeEp = null,
)
assertEquals(
- "[DBD-Raws][未来日记][01][1080P][BDRip][HEVC-10bit][FLACx2].mkv",
+ "[DBD-Raws][未來日記][01][1080P][BDRip][HEVC-10bit][FLACx2].mkv",
selected,
message = list.toString(),
)
@@ -183,21 +183,21 @@ class SelectVideoFileAnitorrentEntryTest {
@TestFactory
fun `select SP over PV`() = runDynamicTests(
listOf(
- "[DBD-Raws][未来日记][01][1080P][BDRip][HEVC-10bit][FLACx2].mkv",
- "[DBD-Raws][未来日记][PV][01][1080P][BDRip][HEVC-10bit][FLAC].mkv",
- "[DBD-Raws][未来日记][SP][1080P][BDRip][HEVC-10bit][FLAC].mkv",
- "[DBD-Raws][未来日记][NCOP1][1080P][BDRip][HEVC-10bit][FLAC].mkv",
+ "[DBD-Raws][未來日記][01][1080P][BDRip][HEVC-10bit][FLACx2].mkv",
+ "[DBD-Raws][未來日記][PV][01][1080P][BDRip][HEVC-10bit][FLAC].mkv",
+ "[DBD-Raws][未來日記][SP][1080P][BDRip][HEVC-10bit][FLAC].mkv",
+ "[DBD-Raws][未來日記][NCOP1][1080P][BDRip][HEVC-10bit][FLAC].mkv",
).permuted().mapIndexed { index, list ->
dynamicTest(index.toString()) {
val selected = TorrentMediaResolver.selectVideoFileEntry(
list,
{ this },
- episodeTitles = listOf("未来日记"),
+ episodeTitles = listOf("未來日記"),
episodeSort = EpisodeSort("SP"),
episodeEp = null,
)
assertEquals(
- "[DBD-Raws][未来日记][SP][1080P][BDRip][HEVC-10bit][FLAC].mkv",
+ "[DBD-Raws][未來日記][SP][1080P][BDRip][HEVC-10bit][FLAC].mkv",
selected,
message = list.toString(),
)
@@ -217,7 +217,7 @@ class SelectVideoFileAnitorrentEntryTest {
val selected = TorrentMediaResolver.selectVideoFileEntry(
list,
{ this },
- episodeTitles = listOf("梦想成为魔法少女"),
+ episodeTitles = listOf("夢想成爲魔法少女"),
episodeSort = EpisodeSort("01"),
episodeEp = null,
)
@@ -242,7 +242,7 @@ class SelectVideoFileAnitorrentEntryTest {
val selected = TorrentMediaResolver.selectVideoFileEntry(
list,
{ this },
- episodeTitles = listOf("梦想成为魔法少女"),
+ episodeTitles = listOf("夢想成爲魔法少女"),
episodeSort = EpisodeSort("02"),
episodeEp = null,
)
@@ -258,21 +258,21 @@ class SelectVideoFileAnitorrentEntryTest {
@TestFactory
fun `select SP 01 over PV`() = runDynamicTests(
listOf(
- "[DBD-Raws][未来日记][01][1080P][BDRip][HEVC-10bit][FLACx2].mkv",
- "[DBD-Raws][未来日记][PV][01][1080P][BDRip][HEVC-10bit][FLAC].mkv",
- "[DBD-Raws][未来日记][SP][01][1080P][BDRip][HEVC-10bit][FLAC].mkv",
- "[DBD-Raws][未来日记][NCOP1][1080P][BDRip][HEVC-10bit][FLAC].mkv",
+ "[DBD-Raws][未來日記][01][1080P][BDRip][HEVC-10bit][FLACx2].mkv",
+ "[DBD-Raws][未來日記][PV][01][1080P][BDRip][HEVC-10bit][FLAC].mkv",
+ "[DBD-Raws][未來日記][SP][01][1080P][BDRip][HEVC-10bit][FLAC].mkv",
+ "[DBD-Raws][未來日記][NCOP1][1080P][BDRip][HEVC-10bit][FLAC].mkv",
).permuted().mapIndexed { index, list ->
dynamicTest(index.toString()) {
val selected = TorrentMediaResolver.selectVideoFileEntry(
list,
{ this },
- episodeTitles = listOf("未来日记"),
+ episodeTitles = listOf("未來日記"),
episodeSort = EpisodeSort("SP"),
episodeEp = null,
)
assertEquals(
- "[DBD-Raws][未来日记][SP][01][1080P][BDRip][HEVC-10bit][FLAC].mkv",
+ "[DBD-Raws][未來日記][SP][01][1080P][BDRip][HEVC-10bit][FLAC].mkv",
selected,
message = list.toString(),
)
@@ -283,21 +283,21 @@ class SelectVideoFileAnitorrentEntryTest {
@TestFactory
fun `select OVA over PV`() = runDynamicTests(
listOf(
- "[DBD-Raws][未来日记][01][1080P][BDRip][HEVC-10bit][FLACx2].mkv",
- "[DBD-Raws][未来日记][PV][01][1080P][BDRip][HEVC-10bit][FLAC].mkv",
- "[DBD-Raws][未来日记][OVA][1080P][BDRip][HEVC-10bit][FLAC].mkv",
- "[DBD-Raws][未来日记][NCOP1][1080P][BDRip][HEVC-10bit][FLAC].mkv",
+ "[DBD-Raws][未來日記][01][1080P][BDRip][HEVC-10bit][FLACx2].mkv",
+ "[DBD-Raws][未來日記][PV][01][1080P][BDRip][HEVC-10bit][FLAC].mkv",
+ "[DBD-Raws][未來日記][OVA][1080P][BDRip][HEVC-10bit][FLAC].mkv",
+ "[DBD-Raws][未來日記][NCOP1][1080P][BDRip][HEVC-10bit][FLAC].mkv",
).permuted().mapIndexed { index, list ->
dynamicTest(index.toString()) {
val selected = TorrentMediaResolver.selectVideoFileEntry(
list,
{ this },
- episodeTitles = listOf("未来日记"),
+ episodeTitles = listOf("未來日記"),
episodeSort = EpisodeSort("OVA"),
episodeEp = null,
)
assertEquals(
- "[DBD-Raws][未来日记][OVA][1080P][BDRip][HEVC-10bit][FLAC].mkv",
+ "[DBD-Raws][未來日記][OVA][1080P][BDRip][HEVC-10bit][FLAC].mkv",
selected,
message = list.toString(),
)
@@ -308,21 +308,21 @@ class SelectVideoFileAnitorrentEntryTest {
@TestFactory
fun `select OVA12 over PV`() = runDynamicTests(
listOf(
- "[DBD-Raws][未来日记][01][1080P][BDRip][HEVC-10bit][FLACx2].mkv",
- "[DBD-Raws][未来日记][PV][01][1080P][BDRip][HEVC-10bit][FLAC].mkv",
- "[DBD-Raws][未来日记][OVA12][1080P][BDRip][HEVC-10bit][FLAC].mkv",
- "[DBD-Raws][未来日记][NCOP1][1080P][BDRip][HEVC-10bit][FLAC].mkv",
+ "[DBD-Raws][未來日記][01][1080P][BDRip][HEVC-10bit][FLACx2].mkv",
+ "[DBD-Raws][未來日記][PV][01][1080P][BDRip][HEVC-10bit][FLAC].mkv",
+ "[DBD-Raws][未來日記][OVA12][1080P][BDRip][HEVC-10bit][FLAC].mkv",
+ "[DBD-Raws][未來日記][NCOP1][1080P][BDRip][HEVC-10bit][FLAC].mkv",
).permuted().mapIndexed { index, list ->
dynamicTest(index.toString()) {
val selected = TorrentMediaResolver.selectVideoFileEntry(
list,
{ this },
- episodeTitles = listOf("未来日记"),
+ episodeTitles = listOf("未來日記"),
episodeSort = EpisodeSort("OVA"),
episodeEp = null,
)
assertEquals(
- "[DBD-Raws][未来日记][OVA12][1080P][BDRip][HEVC-10bit][FLAC].mkv",
+ "[DBD-Raws][未來日記][OVA12][1080P][BDRip][HEVC-10bit][FLAC].mkv",
selected,
message = list.toString(),
)
@@ -333,21 +333,21 @@ class SelectVideoFileAnitorrentEntryTest {
@TestFactory
fun `select normal 01 over PV if no match`() = runDynamicTests(
listOf(
- "[DBD-Raws][未来日记][01][1080P][BDRip][HEVC-10bit][FLACx2].mkv",
- "[DBD-Raws][未来日记][PV][01][1080P][BDRip][HEVC-10bit][FLAC].mkv",
- "[DBD-Raws][未来日记][SP][01][1080P][BDRip][HEVC-10bit][FLAC].mkv",
- "[DBD-Raws][未来日记][NCOP1][1080P][BDRip][HEVC-10bit][FLAC].mkv",
+ "[DBD-Raws][未來日記][01][1080P][BDRip][HEVC-10bit][FLACx2].mkv",
+ "[DBD-Raws][未來日記][PV][01][1080P][BDRip][HEVC-10bit][FLAC].mkv",
+ "[DBD-Raws][未來日記][SP][01][1080P][BDRip][HEVC-10bit][FLAC].mkv",
+ "[DBD-Raws][未來日記][NCOP1][1080P][BDRip][HEVC-10bit][FLAC].mkv",
).permuted().mapIndexed { index, list ->
dynamicTest(index.toString()) {
val selected = TorrentMediaResolver.selectVideoFileEntry(
list,
{ this },
- episodeTitles = listOf("未来日记"),
+ episodeTitles = listOf("未來日記"),
episodeSort = EpisodeSort("08"),
episodeEp = null,
)
assertEquals(
- "[DBD-Raws][未来日记][01][1080P][BDRip][HEVC-10bit][FLACx2].mkv",
+ "[DBD-Raws][未來日記][01][1080P][BDRip][HEVC-10bit][FLACx2].mkv",
selected,
message = list.toString(),
)
@@ -359,27 +359,27 @@ class SelectVideoFileAnitorrentEntryTest {
fun `select of full path`() {
val selected = TorrentMediaResolver.selectVideoFileEntry(
listOf(
- "[DBD制作组][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][简日双语内嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][01][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
- "[DBD制作组][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][简日双语内嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][02][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
- "[DBD制作组][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][简日双语内嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][04][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
- "[DBD制作组][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][简日双语内嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][05][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
- "[DBD制作组][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][简日双语内嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][06][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
- "[DBD制作组][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][简日双语内嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][07][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
- "[DBD制作组][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][简日双语内嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][08][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
- "[DBD制作组][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][简日双语内嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][09][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
- "[DBD制作组][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][简日双语内嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][10][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
- "[DBD制作组][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][简日双语内嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][11][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
- "[DBD制作组][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][简日双语内嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][12][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
- "[DBD制作组][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][简日双语内嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][13][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
- "[DBD制作组][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][简日双语内嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][Bang Dream! Ave Mujica][03][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
+ "[DBD製作組][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][簡日雙語內嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][01][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
+ "[DBD製作組][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][簡日雙語內嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][02][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
+ "[DBD製作組][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][簡日雙語內嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][04][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
+ "[DBD製作組][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][簡日雙語內嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][05][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
+ "[DBD製作組][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][簡日雙語內嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][06][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
+ "[DBD製作組][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][簡日雙語內嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][07][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
+ "[DBD製作組][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][簡日雙語內嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][08][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
+ "[DBD製作組][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][簡日雙語內嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][09][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
+ "[DBD製作組][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][簡日雙語內嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][10][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
+ "[DBD製作組][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][簡日雙語內嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][11][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
+ "[DBD製作組][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][簡日雙語內嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][12][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
+ "[DBD製作組][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][簡日雙語內嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][13][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
+ "[DBD製作組][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][簡日雙語內嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][Bang Dream! Ave Mujica][03][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
),
{ this },
- episodeTitles = listOf("纵使焚身成灰,我亦要爱你。"),
+ episodeTitles = listOf("縱使焚身成灰,我亦要愛你。"),
episodeSort = EpisodeSort(11),
episodeEp = EpisodeSort(11),
)
assertEquals(
- "[DBD制作组][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][简日双语内嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][11][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
+ "[DBD製作組][4K_HDR][BanG Dream! Ave Mujica][01-13TV全集][2160P][WEB-DL][簡日雙語內嵌][AAC][MKV]$SystemPathSeparator[DBD-SUB][4K_HDR][BanG Dream! Ave Mujica][11][2160P][WEB-DL][H265-10bit][SCJP][AAC].mkv",
selected,
)
}
diff --git a/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/MediaSelectorMatchMetadataTest.kt b/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/MediaSelectorMatchMetadataTest.kt
index e0c72eb96..768c12dc6 100644
--- a/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/MediaSelectorMatchMetadataTest.kt
+++ b/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/MediaSelectorMatchMetadataTest.kt
@@ -113,26 +113,26 @@ class MediaSelectorMatchMetadataTest {
addSimpleMediaSelectorTest(
"subject and episode combined test",
{
- initSubject("进击的巨人") {
+ initSubject("進擊的巨人") {
episodeSort = EpisodeSort(2)
}
},
) {
checkMatchMetadata {
expect(
- mediaSubjectName = "进击的巨人",
+ mediaSubjectName = "進擊的巨人",
episodeRange = EpisodeRange.single(EpisodeSort(2)),
subjectMatchKind = SubjectMatchKind.EXACT,
episodeMatchKind = EpisodeMatchKind.SORT,
)
expect(
- mediaSubjectName = "进击的巨人 第二季",
+ mediaSubjectName = "進擊的巨人 第二季",
episodeRange = EpisodeRange.single(EpisodeSort(2)),
subjectMatchKind = SubjectMatchKind.FUZZY,
episodeMatchKind = EpisodeMatchKind.SORT,
)
expect(
- mediaSubjectName = "进击的巨人",
+ mediaSubjectName = "進擊的巨人",
episodeRange = EpisodeRange.single(EpisodeSort(3)),
subjectMatchKind = SubjectMatchKind.EXACT,
episodeMatchKind = EpisodeMatchKind.NONE,
diff --git a/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/MediaSelectorMovieTest.kt b/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/MediaSelectorMovieTest.kt
index 3ff6646a8..e1ece9d2c 100644
--- a/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/MediaSelectorMovieTest.kt
+++ b/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/MediaSelectorMovieTest.kt
@@ -25,9 +25,9 @@ class MediaSelectorMovieTest {
@TestFactory
fun `exclude movie when playing main subject`() = runDynamicTests {
addSimpleMediaSelectorTest(
- "玉子市场",
+ "玉子市場",
{
- initSubject("玉子市场") {
+ initSubject("玉子市場") {
aliases(
"Tamako Market",
"たまこまーけっと",
@@ -35,8 +35,8 @@ class MediaSelectorMovieTest {
seriesInfo(seasonSort = 1) {
series(
// 剧场版:
- "玉子市场 剧场版",
- "玉子爱情故事",
+ "玉子市場 劇場版",
+ "玉子愛情故事",
"Tamako Love Story",
"たまこラブストーリー",
)
@@ -46,9 +46,9 @@ class MediaSelectorMovieTest {
) {
checkSubjectExclusion {
expect(
- "玉子市场" to null,
- "玉子市场 剧场版" to FromSeriesSeason,
- "玉子爱情故事" to FromSeriesSeason,
+ "玉子市場" to null,
+ "玉子市場 劇場版" to FromSeriesSeason,
+ "玉子愛情故事" to FromSeriesSeason,
"Tamako Market" to null,
"Tamako Love Story" to FromSeriesSeason,
"たまこまーけっと" to null,
@@ -61,18 +61,18 @@ class MediaSelectorMovieTest {
@TestFactory
fun `exclude main subject when playing movie`() = runDynamicTests {
addSimpleMediaSelectorTest(
- "玉子市场剧场版",
+ "玉子市場劇場版",
{
- initSubject("玉子市场 剧场版") {
+ initSubject("玉子市場 劇場版") {
aliases(
- "玉子爱情故事",
+ "玉子愛情故事",
"Tamako Love Story",
"たまこラブストーリー",
)
seriesInfo(seasonSort = 1) {
series(
// 主番:
- "玉子市场",
+ "玉子市場",
"Tamako Market",
"たまこまーけっと",
)
@@ -82,9 +82,9 @@ class MediaSelectorMovieTest {
) {
checkSubjectExclusion {
expect(
- "玉子市场" to FromSeriesSeason,
- "玉子市场 剧场版" to null,
- "玉子爱情故事" to null,
+ "玉子市場" to FromSeriesSeason,
+ "玉子市場 劇場版" to null,
+ "玉子愛情故事" to null,
"Tamako Market" to FromSeriesSeason,
"Tamako Love Story" to null,
"たまこまーけっと" to FromSeriesSeason,
diff --git a/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/MediaSelectorSpTest.kt b/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/MediaSelectorSpTest.kt
index ff2fe69ed..d84988dbf 100644
--- a/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/MediaSelectorSpTest.kt
+++ b/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/MediaSelectorSpTest.kt
@@ -45,12 +45,12 @@ class MediaSelectorSpTest {
@Test
fun `when watching SP23 - match main 23`() = runSimpleMediaSelectorTestSuite(
buildTest = {
- initSubject("玉子市场") {
+ initSubject("玉子市場") {
episodeSort = EpisodeSort(23, EpisodeType.SP)
episodeEp = EpisodeSort(0) // This is a normal scenario!
}
mediaApi.addSimpleWebMedia(
- subjectName = "玉子市场",
+ subjectName = "玉子市場",
episodeSort = EpisodeSort(23, EpisodeType.MainStory),
)
},
@@ -63,16 +63,16 @@ class MediaSelectorSpTest {
@Test
fun `when watching SP23 - match both SP23 and main 23`() = runSimpleMediaSelectorTestSuite(
buildTest = {
- initSubject("玉子市场") {
+ initSubject("玉子市場") {
episodeSort = EpisodeSort(23, EpisodeType.SP)
episodeEp = EpisodeSort(0) // This is a normal scenario!
}
mediaApi.addSimpleWebMedia(
- subjectName = "玉子市场",
+ subjectName = "玉子市場",
episodeSort = EpisodeSort(23, EpisodeType.SP),
)
mediaApi.addSimpleWebMedia(
- subjectName = "玉子市场",
+ subjectName = "玉子市場",
episodeSort = EpisodeSort(23, EpisodeType.MainStory),
)
},
diff --git a/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/MediaSelectorSubjectSeriesTest.kt b/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/MediaSelectorSubjectSeriesTest.kt
index ca6c45410..846d76c56 100644
--- a/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/MediaSelectorSubjectSeriesTest.kt
+++ b/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/MediaSelectorSubjectSeriesTest.kt
@@ -33,10 +33,10 @@ class MediaSelectorSubjectSeriesTest {
addSimpleMediaSelectorTest(
"香格里拉第二季",
{
- initSubject("香格里拉边境 第二季") {
+ initSubject("香格里拉邊境 第二季") {
aliases(
- "香格里拉边境~粪作猎人向神作游戏发起挑战~ 第二季",
- "香格里拉・开拓异境~粪作猎手挑战神作~ 第二季",
+ "香格里拉邊境~糞作獵人向神作遊戲發起挑戰~ 第二季",
+ "香格里拉・開拓異境~糞作獵手挑戰神作~ 第二季",
"Shangri-La Frontier: Kusoge Hunter, Kamige ni Idoman to su 2nd Season",
"Shangri-La Frontier Season 2",
"シャングリラ・フロンティア~クソゲーハンター、神ゲーに挑まんとす~ 2nd season",
@@ -44,8 +44,8 @@ class MediaSelectorSubjectSeriesTest {
seriesInfo(seasonSort = 1) {
series(
// 第一季:
- "香格里拉边境~粪作猎人向神作游戏发起挑战~",
- "香格里拉・开拓异境~粪作猎手挑战神作~",
+ "香格里拉邊境~糞作獵人向神作遊戲發起挑戰~",
+ "香格里拉・開拓異境~糞作獵手挑戰神作~",
"香格里拉・開拓異境~糞作獵手挑戰神作~",
)
}
@@ -54,37 +54,37 @@ class MediaSelectorSubjectSeriesTest {
) {
checkSubjectExclusion {
expect(
- "香格里拉·弗陇提亚~屎作猎人向神作发起挑战~ 第二季" to tentatively(
+ "香格里拉·弗隴提亞~屎作獵人向神作發起挑戰~ 第二季" to tentatively(
SubjectNameMismatch,
null,
),
- "香格里拉·开拓异境~粪作猎手挑战神作~ 第二季" to null,
- "香格里拉·开拓异境~粪作猎手挑战神作~第二季" to null,
- "香格里拉·弗陇提亚~屎作猎人向神作发起挑战~第二季" to tentatively(
+ "香格里拉·開拓異境~糞作獵手挑戰神作~ 第二季" to null,
+ "香格里拉·開拓異境~糞作獵手挑戰神作~第二季" to null,
+ "香格里拉·弗隴提亞~屎作獵人向神作發起挑戰~第二季" to tentatively(
SubjectNameMismatch,
null,
),
- "香格里拉·开拓异境~粪作猎手挑战神作~" to FromSeriesSeason,
- "香格里拉·开拓异境~粪作猎手挑战神作~ 2nd season" to tentatively(
+ "香格里拉·開拓異境~糞作獵手挑戰神作~" to FromSeriesSeason,
+ "香格里拉·開拓異境~糞作獵手挑戰神作~ 2nd season" to tentatively(
SubjectNameMismatch,
null,
),
"香格里拉" to SubjectNameMismatch, // 这确实是另一个番
- "香格里拉·弗陇提亚~屎作猎人向神作发起挑战~" to tentatively(
+ "香格里拉·弗隴提亞~屎作獵人向神作發起挑戰~" to tentatively(
SubjectNameMismatch,
FromSeriesSeason,
),
- "香格里拉·弗陇提亚~屎作猎人向神作发起挑战~" to tentatively(
+ "香格里拉·弗隴提亞~屎作獵人向神作發起挑戰~" to tentatively(
SubjectNameMismatch,
FromSeriesSeason,
),
- "香格里拉边境" to tentatively(
+ "香格里拉邊境" to tentatively(
SubjectNameMismatch,
FromSeriesSeason,
),
"香格里拉2009" to SubjectNameMismatch, // 这确实是另一个番
- "香格里拉·开拓异境~粪作猎手挑战神作" to FromSeriesSeason,
- "这儿是香格里拉" to SubjectNameMismatch,
+ "香格里拉·開拓異境~糞作獵手挑戰神作" to FromSeriesSeason,
+ "這兒是香格里拉" to SubjectNameMismatch,
)
}
}
@@ -95,17 +95,17 @@ class MediaSelectorSubjectSeriesTest {
addSimpleMediaSelectorTest(
"香格里拉第一季",
{
- initSubject("香格里拉边境~粪作猎人向神作游戏发起挑战~") {
+ initSubject("香格里拉邊境~糞作獵人向神作遊戲發起挑戰~") {
aliases(
- "香格里拉・开拓异境~粪作猎手挑战神作~",
+ "香格里拉・開拓異境~糞作獵手挑戰神作~",
"香格里拉・開拓異境~糞作獵手挑戰神作~",
"Shangri-La Frontier: Kusogee Hunter, Kamige ni Idoman to Su",
"シャングリラ・フロンティア~クソゲーハンター、神ゲーに挑まんとす~",
)
seriesInfo(seasonSort = 1) {
series(
- "香格里拉边境~粪作猎人向神作游戏发起挑战~ 第二季",
- "香格里拉・开拓异境~粪作猎手挑战神作~ 第二季",
+ "香格里拉邊境~糞作獵人向神作遊戲發起挑戰~ 第二季",
+ "香格里拉・開拓異境~糞作獵手挑戰神作~ 第二季",
"Shangri-La Frontier: Kusoge Hunter, Kamige ni Idoman to su 2nd Season",
"Shangri-La Frontier Season 2",
"シャングリラ・フロンティア~クソゲーハンター、神ゲーに挑まんとす~ 2nd season",
@@ -116,37 +116,37 @@ class MediaSelectorSubjectSeriesTest {
) {
checkSubjectExclusion {
expect(
- "香格里拉·弗陇提亚~屎作猎人向神作发起挑战~ 第二季" to tentatively(
+ "香格里拉·弗隴提亞~屎作獵人向神作發起挑戰~ 第二季" to tentatively(
SubjectNameMismatch,
FromSeriesSeason,
),
- "香格里拉·开拓异境~粪作猎手挑战神作~ 第二季" to FromSeriesSeason,
- "香格里拉·开拓异境~粪作猎手挑战神作~第二季" to FromSeriesSeason,
- "香格里拉·弗陇提亚~屎作猎人向神作发起挑战~第二季" to tentatively(
+ "香格里拉·開拓異境~糞作獵手挑戰神作~ 第二季" to FromSeriesSeason,
+ "香格里拉·開拓異境~糞作獵手挑戰神作~第二季" to FromSeriesSeason,
+ "香格里拉·弗隴提亞~屎作獵人向神作發起挑戰~第二季" to tentatively(
SubjectNameMismatch,
FromSeriesSeason,
),
- "香格里拉·开拓异境~粪作猎手挑战神作~" to null,
- "香格里拉·开拓异境~粪作猎手挑战神作~ 2nd season" to tentatively(
+ "香格里拉·開拓異境~糞作獵手挑戰神作~" to null,
+ "香格里拉·開拓異境~糞作獵手挑戰神作~ 2nd season" to tentatively(
null,
SubjectNameMismatch,
),
"香格里拉" to SubjectNameMismatch, // 这确实是另一个番
- "香格里拉·弗陇提亚~屎作猎人向神作发起挑战~" to tentatively(
+ "香格里拉·弗隴提亞~屎作獵人向神作發起挑戰~" to tentatively(
SubjectNameMismatch,
FromSeriesSeason,
),
- "香格里拉·弗陇提亚~屎作猎人向神作发起挑战~" to tentatively(
+ "香格里拉·弗隴提亞~屎作獵人向神作發起挑戰~" to tentatively(
SubjectNameMismatch,
FromSeriesSeason,
),
- "香格里拉边境" to tentatively(
+ "香格里拉邊境" to tentatively(
SubjectNameMismatch,
null,
),
"香格里拉2009" to SubjectNameMismatch, // 这确实是另一个番
- "香格里拉·开拓异境~粪作猎手挑战神作" to null,
- "这儿是香格里拉" to SubjectNameMismatch,
+ "香格里拉·開拓異境~糞作獵手挑戰神作" to null,
+ "這兒是香格里拉" to SubjectNameMismatch,
)
}
}
@@ -155,13 +155,13 @@ class MediaSelectorSubjectSeriesTest {
@TestFactory
fun `sequel name specially matches subject name`() = runDynamicTests {
addSimpleMediaSelectorTest(
- "轻音少女",
+ "輕音少女",
{
- initSubject("轻音少女") {
+ initSubject("輕音少女") {
seriesInfo(seasonSort = 1) {
sequel(
- "轻音少女 第二季",
- "轻音少女~",
+ "輕音少女 第二季",
+ "輕音少女~",
)
}
}
@@ -169,8 +169,8 @@ class MediaSelectorSubjectSeriesTest {
) {
checkSubjectExclusion {
expect(
- "轻音少女" to null,
- "轻音少女 第二季" to FromSequelSeason,
+ "輕音少女" to null,
+ "輕音少女 第二季" to FromSequelSeason,
)
}
}
@@ -179,15 +179,15 @@ class MediaSelectorSubjectSeriesTest {
@TestFactory
fun `series name specially matches subject name`() = runDynamicTests {
addSimpleMediaSelectorTest(
- "轻音少女",
+ "輕音少女",
{
- initSubject("轻音少女") {
+ initSubject("輕音少女") {
seriesInfo(seasonSort = 1) {
series(
- "轻音少女~",
+ "輕音少女~",
)
sequel(
- "轻音少女 第二季",
+ "輕音少女 第二季",
)
}
}
@@ -195,8 +195,8 @@ class MediaSelectorSubjectSeriesTest {
) {
checkSubjectExclusion {
expect(
- "轻音少女" to null,
- "轻音少女 第二季" to FromSequelSeason,
+ "輕音少女" to null,
+ "輕音少女 第二季" to FromSequelSeason,
)
}
}
diff --git a/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/AbstractDefaultMediaSelectorTest.kt b/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/AbstractDefaultMediaSelectorTest.kt
index 521c3971e..e14d5b59a 100644
--- a/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/AbstractDefaultMediaSelectorTest.kt
+++ b/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/AbstractDefaultMediaSelectorTest.kt
@@ -145,7 +145,7 @@ abstract class AbstractDefaultMediaSelectorTest {
fun media(
sourceId: String = SOURCE_DMHY,
resolution: String = "1080P",
- alliance: String = "字幕组",
+ alliance: String = "字幕組",
size: FileSize = 1.megaBytes,
publishedTime: Long = 0,
subtitleLanguages: List = listOf(
@@ -158,7 +158,7 @@ abstract class AbstractDefaultMediaSelectorTest {
subtitleKind: SubtitleKind? = null,
extraFiles: MediaExtraFiles = MediaExtraFiles.Companion.EMPTY,
id: Int = mediaIdCounter++,
- originalTitle: String = "[字幕组] 孤独摇滚 $id",
+ originalTitle: String = "[字幕組] 孤獨搖滾 $id",
subjectName: String? = null,
episodeName: String? = null,
mediaId: String = "$sourceId.$id",
diff --git a/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/DefaultMediaSelectorSortingTest.kt b/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/DefaultMediaSelectorSortingTest.kt
index dfc4a25cd..eae726036 100644
--- a/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/DefaultMediaSelectorSortingTest.kt
+++ b/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/DefaultMediaSelectorSortingTest.kt
@@ -36,12 +36,12 @@ class DefaultMediaSelectorSortingTest : AbstractDefaultMediaSelectorTest() {
fun `sort by subjectName similarity`() = runTest {
preferAnyMedia()
val expectedSort = listOf(
- media(subjectName = "孤独摇滚", kind = MediaSourceKind.WEB),
+ media(subjectName = "孤獨搖滾", kind = MediaSourceKind.WEB),
media(subjectName = "Bocchi The Rock!", kind = MediaSourceKind.WEB),
- media(subjectName = "孤独摇滚!", kind = MediaSourceKind.WEB),
- media(subjectName = "孤独摇滚 第二季", kind = MediaSourceKind.WEB),
- media(subjectName = "孤单摇滚", kind = MediaSourceKind.WEB),
- media(subjectName = "孤单摇滚 第二季", kind = MediaSourceKind.WEB),
+ media(subjectName = "孤獨搖滾!", kind = MediaSourceKind.WEB),
+ media(subjectName = "孤獨搖滾 第二季", kind = MediaSourceKind.WEB),
+ media(subjectName = "孤單搖滾", kind = MediaSourceKind.WEB),
+ media(subjectName = "孤單搖滾 第二季", kind = MediaSourceKind.WEB),
)
addMedia(*expectedSort.toTypedArray().apply { shuffle(Random(10000)) })
assertEquals(
@@ -186,7 +186,7 @@ class DefaultMediaSelectorSortingTest : AbstractDefaultMediaSelectorTest() {
private fun preferAnyMedia() {
mediaSelectorContext.value = createMediaSelectorContextFromEmpty(
- subjectInfo = SubjectInfo.Companion.Empty.copy(nameCn = "孤独摇滚", name = "Bocchi The Rock!"),
+ subjectInfo = SubjectInfo.Companion.Empty.copy(nameCn = "孤獨搖滾", name = "Bocchi The Rock!"),
episodeInfo = EpisodeInfo.Companion.Empty.copy(sort = EpisodeSort(1)),
)
savedDefaultPreference.value = MediaPreference.Companion.Any
diff --git a/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/DefaultMediaSelectorSubjectNameMismatchTest.kt b/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/DefaultMediaSelectorSubjectNameMismatchTest.kt
index 93e17072a..5d35515d5 100644
--- a/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/DefaultMediaSelectorSubjectNameMismatchTest.kt
+++ b/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/DefaultMediaSelectorSubjectNameMismatchTest.kt
@@ -37,7 +37,7 @@ class DefaultMediaSelectorSubjectNameMismatchTest : AbstractDefaultMediaSelector
mediaSelectorContext.value = createMediaSelectorContextFromEmpty(
true,
subjectInfo = SubjectInfo.Companion.Empty.copy(
- nameCn = "条目名称",
+ nameCn = "條目名稱",
),
episodeInfo = EpisodeInfo.Companion.Empty.copy(sort = EpisodeSort(1)),
)
@@ -47,15 +47,15 @@ class DefaultMediaSelectorSubjectNameMismatchTest : AbstractDefaultMediaSelector
addMedia(
media(
// kept
- alliance = "字幕组1",
+ alliance = "字幕組1",
episodeRange = EpisodeRange.Companion.single("1"), kind = MediaSourceKind.WEB,
- subjectName = "条目名称I",
+ subjectName = "條目名稱I",
originalTitle = "random value",
subtitleLanguages = listOf(SubtitleLanguage.ChineseSimplified.id),
).also { target = it },
media(
// excluded
- alliance = "字幕组2",
+ alliance = "字幕組2",
episodeRange = EpisodeRange.Companion.single("1"), kind = MediaSourceKind.WEB,
subjectName = "a",
originalTitle = "random value 2",
@@ -76,7 +76,7 @@ class DefaultMediaSelectorSubjectNameMismatchTest : AbstractDefaultMediaSelector
mediaSelectorContext.value = createMediaSelectorContextFromEmpty(
true,
subjectInfo = SubjectInfo.Companion.Empty.copy(
- nameCn = "条目名称",
+ nameCn = "條目名稱",
),
episodeInfo = EpisodeInfo.Companion.Empty.copy(sort = EpisodeSort(1)),
)
@@ -86,18 +86,18 @@ class DefaultMediaSelectorSubjectNameMismatchTest : AbstractDefaultMediaSelector
addMedia(
media(
// kept
- alliance = "字幕组1",
+ alliance = "字幕組1",
episodeRange = EpisodeRange.Companion.single("1"), kind = MediaSourceKind.WEB,
subjectName = null,
- originalTitle = "条目名称I 第1话",
+ originalTitle = "條目名稱I 第1話",
subtitleLanguages = listOf(SubtitleLanguage.ChineseSimplified.id),
).also { target = it },
media(
// excluded
- alliance = "字幕组2",
+ alliance = "字幕組2",
episodeRange = EpisodeRange.Companion.single("1"), kind = MediaSourceKind.WEB,
subjectName = null,
- originalTitle = "ab 第2话",
+ originalTitle = "ab 第2話",
subtitleLanguages = listOf(SubtitleLanguage.ChineseTraditional.id),
),
)
@@ -115,7 +115,7 @@ class DefaultMediaSelectorSubjectNameMismatchTest : AbstractDefaultMediaSelector
mediaSelectorContext.value = createMediaSelectorContextFromEmpty(
true,
subjectInfo = SubjectInfo.Companion.Empty.copy(
- nameCn = "条目名称",
+ nameCn = "條目名稱",
),
episodeInfo = EpisodeInfo.Companion.Empty,
)
@@ -125,15 +125,15 @@ class DefaultMediaSelectorSubjectNameMismatchTest : AbstractDefaultMediaSelector
addMedia(
media(
// kept
- alliance = "字幕组1",
+ alliance = "字幕組1",
episodeRange = EpisodeRange.Companion.single("1"), kind = MediaSourceKind.WEB,
- subjectName = "条目名称I",
- originalTitle = "条目名称I",
+ subjectName = "條目名稱I",
+ originalTitle = "條目名稱I",
subtitleLanguages = listOf(SubtitleLanguage.ChineseSimplified.id),
).also { target = it },
media(
// excluded
- alliance = "字幕组2",
+ alliance = "字幕組2",
episodeRange = EpisodeRange.Companion.single("1"), kind = MediaSourceKind.WEB,
subjectName = "a",
originalTitle = "a",
@@ -164,15 +164,15 @@ class DefaultMediaSelectorSubjectNameMismatchTest : AbstractDefaultMediaSelector
addMedia(
media(
// kept
- alliance = "字幕组1",
+ alliance = "字幕組1",
episodeRange = EpisodeRange.Companion.single("1"), kind = MediaSourceKind.WEB,
- subjectName = "条目名称I",
- originalTitle = "条目名称I",
+ subjectName = "條目名稱I",
+ originalTitle = "條目名稱I",
subtitleLanguages = listOf(SubtitleLanguage.ChineseSimplified.id),
).also { target = it },
media(
// excluded
- alliance = "字幕组2",
+ alliance = "字幕組2",
episodeRange = EpisodeRange.Companion.single("1"), kind = MediaSourceKind.WEB,
subjectName = "a",
originalTitle = "a",
@@ -201,15 +201,15 @@ class DefaultMediaSelectorSubjectNameMismatchTest : AbstractDefaultMediaSelector
addMedia(
media(
// kept
- alliance = "字幕组1",
+ alliance = "字幕組1",
episodeRange = EpisodeRange.Companion.single("1"), kind = MediaSourceKind.WEB,
- subjectName = "条目名称I",
- originalTitle = "条目名称I",
+ subjectName = "條目名稱I",
+ originalTitle = "條目名稱I",
subtitleLanguages = listOf(SubtitleLanguage.ChineseSimplified.id),
).also { target = it },
media(
// excluded
- alliance = "字幕组2",
+ alliance = "字幕組2",
episodeRange = EpisodeRange.Companion.single("1"), kind = MediaSourceKind.WEB,
subjectName = "a",
originalTitle = "a",
diff --git a/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/DefaultMediaSelectorSubtitleKindTest.kt b/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/DefaultMediaSelectorSubtitleKindTest.kt
index b33632528..62f019e34 100644
--- a/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/DefaultMediaSelectorSubtitleKindTest.kt
+++ b/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/DefaultMediaSelectorSubtitleKindTest.kt
@@ -34,11 +34,11 @@ class DefaultMediaSelectorSubtitleKindTest : AbstractDefaultMediaSelectorTest()
setSubtitlePreferences(MediaSelectorSubtitlePreferences.Companion.AllNormal)
val target: DefaultMedia
addMedia(
- media(alliance = "字幕组1").also { target = it },
- media(alliance = "字幕组2"),
- media(alliance = "字幕组3"),
- media(alliance = "字幕组4"),
- media(alliance = "字幕组5"),
+ media(alliance = "字幕組1").also { target = it },
+ media(alliance = "字幕組2"),
+ media(alliance = "字幕組3"),
+ media(alliance = "字幕組4"),
+ media(alliance = "字幕組5"),
)
savedDefaultPreference.value = DEFAULT_PREFERENCE
assertEquals(target, selector.trySelectDefault())
@@ -49,11 +49,11 @@ class DefaultMediaSelectorSubtitleKindTest : AbstractDefaultMediaSelectorTest()
setSubtitlePreference(SubtitleKind.CLOSED, SubtitleKindPreference.HIDE)
val target: DefaultMedia
addMedia(
- media(alliance = "字幕组1", subtitleKind = SubtitleKind.CLOSED),
- media(alliance = "字幕组2").also { target = it },
- media(alliance = "字幕组3"),
- media(alliance = "字幕组4"),
- media(alliance = "字幕组5"),
+ media(alliance = "字幕組1", subtitleKind = SubtitleKind.CLOSED),
+ media(alliance = "字幕組2").also { target = it },
+ media(alliance = "字幕組3"),
+ media(alliance = "字幕組4"),
+ media(alliance = "字幕組5"),
)
savedDefaultPreference.value = DEFAULT_PREFERENCE
assertEquals(target, selector.trySelectDefault())
@@ -64,11 +64,11 @@ class DefaultMediaSelectorSubtitleKindTest : AbstractDefaultMediaSelectorTest()
setSubtitlePreference(SubtitleKind.CLOSED, SubtitleKindPreference.LOW_PRIORITY)
val target: DefaultMedia
addMedia(
- media(alliance = "字幕组1", subtitleKind = SubtitleKind.CLOSED),
- media(alliance = "字幕组2").also { target = it },
- media(alliance = "字幕组3"),
- media(alliance = "字幕组4"),
- media(alliance = "字幕组5"),
+ media(alliance = "字幕組1", subtitleKind = SubtitleKind.CLOSED),
+ media(alliance = "字幕組2").also { target = it },
+ media(alliance = "字幕組3"),
+ media(alliance = "字幕組4"),
+ media(alliance = "字幕組5"),
)
savedDefaultPreference.value = DEFAULT_PREFERENCE
assertEquals(target, selector.trySelectDefault())
@@ -78,11 +78,11 @@ class DefaultMediaSelectorSubtitleKindTest : AbstractDefaultMediaSelectorTest()
fun `hidden items are not in mediaList`() = runTest {
setSubtitlePreference(SubtitleKind.CLOSED, SubtitleKindPreference.HIDE)
addMedia(
- media(alliance = "字幕组1", subtitleKind = SubtitleKind.CLOSED),
- media(alliance = "字幕组2"),
- media(alliance = "字幕组3"),
- media(alliance = "字幕组4"),
- media(alliance = "字幕组5"),
+ media(alliance = "字幕組1", subtitleKind = SubtitleKind.CLOSED),
+ media(alliance = "字幕組2"),
+ media(alliance = "字幕組3"),
+ media(alliance = "字幕組4"),
+ media(alliance = "字幕組5"),
)
selector.filteredCandidates.first().run {
assertEquals(5, size)
@@ -95,11 +95,11 @@ class DefaultMediaSelectorSubtitleKindTest : AbstractDefaultMediaSelectorTest()
fun `hidden items are not in filteredCandidates`() = runTest {
setSubtitlePreference(SubtitleKind.CLOSED, SubtitleKindPreference.HIDE)
addMedia(
- media(alliance = "字幕组1", subtitleKind = SubtitleKind.CLOSED),
- media(alliance = "字幕组2"),
- media(alliance = "字幕组3"),
- media(alliance = "字幕组4"),
- media(alliance = "字幕组5"),
+ media(alliance = "字幕組1", subtitleKind = SubtitleKind.CLOSED),
+ media(alliance = "字幕組2"),
+ media(alliance = "字幕組3"),
+ media(alliance = "字幕組4"),
+ media(alliance = "字幕組5"),
)
assertEquals(4, selector.preferredCandidatesMedia.first().size)
}
@@ -119,11 +119,11 @@ sealed class DefaultMediaSelectorSubtitleKindPlatformTest(
fun `does not select CLOSED_OR_EXTERNAL_DISCOVER`() = runTest {
val target: DefaultMedia
addMedia(
- media(alliance = "字幕组1", subtitleKind = SubtitleKind.CLOSED_OR_EXTERNAL_DISCOVER),
- media(alliance = "字幕组2").also { target = it },
- media(alliance = "字幕组3"),
- media(alliance = "字幕组4"),
- media(alliance = "字幕组5"),
+ media(alliance = "字幕組1", subtitleKind = SubtitleKind.CLOSED_OR_EXTERNAL_DISCOVER),
+ media(alliance = "字幕組2").also { target = it },
+ media(alliance = "字幕組3"),
+ media(alliance = "字幕組4"),
+ media(alliance = "字幕組5"),
)
savedDefaultPreference.value = DEFAULT_PREFERENCE
assertEquals(target, selector.trySelectDefault())
@@ -133,11 +133,11 @@ sealed class DefaultMediaSelectorSubtitleKindPlatformTest(
fun `does not select CLOSED`() = runTest {
val target: DefaultMedia
addMedia(
- media(alliance = "字幕组1", subtitleKind = SubtitleKind.CLOSED),
- media(alliance = "字幕组2").also { target = it },
- media(alliance = "字幕组3"),
- media(alliance = "字幕组4"),
- media(alliance = "字幕组5"),
+ media(alliance = "字幕組1", subtitleKind = SubtitleKind.CLOSED),
+ media(alliance = "字幕組2").also { target = it },
+ media(alliance = "字幕組3"),
+ media(alliance = "字幕組4"),
+ media(alliance = "字幕組5"),
)
savedDefaultPreference.value = DEFAULT_PREFERENCE
assertEquals(target, selector.trySelectDefault())
@@ -150,8 +150,8 @@ sealed class DefaultMediaSelectorSubtitleKindPlatformTest(
fun `CLOSED is low priority`() = runTest {
val target: DefaultMedia
addMedia(
- media(alliance = "字幕组1", subtitleKind = SubtitleKind.CLOSED),
- media(alliance = "字幕组2").also { target = it },
+ media(alliance = "字幕組1", subtitleKind = SubtitleKind.CLOSED),
+ media(alliance = "字幕組2").also { target = it },
)
savedDefaultPreference.value = DEFAULT_PREFERENCE
assertEquals(target, selector.trySelectDefault())
@@ -168,11 +168,11 @@ sealed class DefaultMediaSelectorSubtitleKindPlatformTest(
fun `does not select EXTERNAL_DISCOVER`() = runTest {
val target: DefaultMedia
addMedia(
- media(alliance = "字幕组1", subtitleKind = SubtitleKind.EXTERNAL_DISCOVER),
- media(alliance = "字幕组2").also { target = it },
- media(alliance = "字幕组3"),
- media(alliance = "字幕组4"),
- media(alliance = "字幕组5"),
+ media(alliance = "字幕組1", subtitleKind = SubtitleKind.EXTERNAL_DISCOVER),
+ media(alliance = "字幕組2").also { target = it },
+ media(alliance = "字幕組3"),
+ media(alliance = "字幕組4"),
+ media(alliance = "字幕組5"),
)
savedDefaultPreference.value = DEFAULT_PREFERENCE
assertEquals(target, selector.trySelectDefault())
diff --git a/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/DefaultMediaSelectorTest.kt b/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/DefaultMediaSelectorTest.kt
index a4d942bfe..245686f08 100644
--- a/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/DefaultMediaSelectorTest.kt
+++ b/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/DefaultMediaSelectorTest.kt
@@ -54,11 +54,11 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
fun `select two times returns false`() = runTest {
val target: DefaultMedia
addMedia(
- media(alliance = "字幕组1", subtitleLanguages = listOf("CHS")),
- media(alliance = "字幕组2", resolution = "Special").also { target = it },
- media(alliance = "字幕组3", subtitleLanguages = listOf("CHS", "CHT")),
- media(alliance = "字幕组4", subtitleLanguages = listOf("CHS", "CHT", "R")),
- media(alliance = "字幕组5", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組1", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組2", resolution = "Special").also { target = it },
+ media(alliance = "字幕組3", subtitleLanguages = listOf("CHS", "CHT")),
+ media(alliance = "字幕組4", subtitleLanguages = listOf("CHS", "CHT", "R")),
+ media(alliance = "字幕組5", subtitleLanguages = listOf("CHS")),
)
assertTrue { selector.select(target) }
assertFalse { selector.select(target) }
@@ -77,7 +77,7 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
@Test
fun `initial empty preferences when list is not empty`() = runTest {
- addMedia(media(alliance = "字幕组"))
+ addMedia(media(alliance = "字幕組"))
assertEquals(null, selector.alliance.defaultSelected.first())
assertEquals(null, selector.alliance.userSelected.first().preferredValueOrNull)
assertEquals(null, selector.alliance.finalSelected.first())
@@ -85,36 +85,36 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
@Test
fun `prefer alliance`() = runTest {
- addMedia(media(alliance = "字幕组"))
- selector.alliance.prefer("字幕组")
+ addMedia(media(alliance = "字幕組"))
+ selector.alliance.prefer("字幕組")
assertEquals(null, selector.alliance.defaultSelected.first())
- assertEquals("字幕组", selector.alliance.userSelected.first().preferredValueOrNull)
- assertEquals("字幕组", selector.alliance.finalSelected.first())
+ assertEquals("字幕組", selector.alliance.userSelected.first().preferredValueOrNull)
+ assertEquals("字幕組", selector.alliance.finalSelected.first())
}
@Test
fun `default prefer alliance`() = runTest {
- addMedia(media(alliance = "字幕组"))
- savedDefaultPreference.value = DEFAULT_PREFERENCE.copy(alliance = "字幕组")
- assertEquals("字幕组", selector.alliance.defaultSelected.first())
+ addMedia(media(alliance = "字幕組"))
+ savedDefaultPreference.value = DEFAULT_PREFERENCE.copy(alliance = "字幕組")
+ assertEquals("字幕組", selector.alliance.defaultSelected.first())
assertEquals(null, selector.alliance.userSelected.first().preferredValueOrNull)
- assertEquals("字幕组", selector.alliance.finalSelected.first())
+ assertEquals("字幕組", selector.alliance.finalSelected.first())
}
@Test
fun `user override alliance`() = runTest {
- addMedia(media(alliance = "字幕组"))
- savedDefaultPreference.value = DEFAULT_PREFERENCE.copy(alliance = "字幕组")
- assertEquals("字幕组", selector.alliance.defaultSelected.first())
+ addMedia(media(alliance = "字幕組"))
+ savedDefaultPreference.value = DEFAULT_PREFERENCE.copy(alliance = "字幕組")
+ assertEquals("字幕組", selector.alliance.defaultSelected.first())
assertEquals(null, selector.alliance.userSelected.first().preferredValueOrNull)
- assertEquals("字幕组", selector.alliance.finalSelected.first())
+ assertEquals("字幕組", selector.alliance.finalSelected.first())
}
@Test
fun `user override no preference`() = runTest {
- addMedia(media(alliance = "字幕组"))
- savedDefaultPreference.value = DEFAULT_PREFERENCE.copy(alliance = "字幕组")
- assertEquals("字幕组", selector.alliance.defaultSelected.first())
+ addMedia(media(alliance = "字幕組"))
+ savedDefaultPreference.value = DEFAULT_PREFERENCE.copy(alliance = "字幕組")
+ assertEquals("字幕組", selector.alliance.defaultSelected.first())
assertEquals(false, selector.alliance.userSelected.first().isPreferNoValue)
assertNotEquals(null, selector.alliance.finalSelected.first())
selector.alliance.removePreference()
@@ -128,45 +128,45 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
@Test
fun `empty preferences select all`() = runTest {
- addMedia(media(alliance = "字幕组"), media(alliance = "字幕组2"))
+ addMedia(media(alliance = "字幕組"), media(alliance = "字幕組2"))
assertEquals(mediaList.value, selector.preferredCandidatesMedia.first())
}
@Test
fun `select by user alliance`() = runTest {
- val media = media(alliance = "字幕组")
- addMedia(media, media(alliance = "字幕组2"))
- savedUserPreference.value = DEFAULT_PREFERENCE.copy(alliance = "字幕组")
+ val media = media(alliance = "字幕組")
+ addMedia(media, media(alliance = "字幕組2"))
+ savedUserPreference.value = DEFAULT_PREFERENCE.copy(alliance = "字幕組")
assertEquals(media, selector.preferredCandidatesMedia.first().single())
}
@Test
fun `select by default alliance`() = runTest {
- val media = media(alliance = "字幕组")
- addMedia(media, media(alliance = "字幕组2"))
- savedDefaultPreference.value = DEFAULT_PREFERENCE.copy(alliance = "字幕组")
+ val media = media(alliance = "字幕組")
+ addMedia(media, media(alliance = "字幕組2"))
+ savedDefaultPreference.value = DEFAULT_PREFERENCE.copy(alliance = "字幕組")
assertEquals(media, selector.preferredCandidatesMedia.first().single())
}
@Test
fun `select by user resolution`() = runTest {
- val media = media(resolution = "字幕组")
- addMedia(media, media(resolution = "字幕组2"))
- savedUserPreference.value = DEFAULT_PREFERENCE.copy(resolution = "字幕组")
+ val media = media(resolution = "字幕組")
+ addMedia(media, media(resolution = "字幕組2"))
+ savedUserPreference.value = DEFAULT_PREFERENCE.copy(resolution = "字幕組")
assertEquals(media, selector.preferredCandidatesMedia.first().single())
}
@Test
fun `select by default resolution`() = runTest {
- val media = media(resolution = "字幕组")
- addMedia(media, media(resolution = "字幕组2"))
- savedDefaultPreference.value = DEFAULT_PREFERENCE.copy(resolution = "字幕组")
+ val media = media(resolution = "字幕組")
+ addMedia(media, media(resolution = "字幕組2"))
+ savedDefaultPreference.value = DEFAULT_PREFERENCE.copy(resolution = "字幕組")
assertEquals(media, selector.preferredCandidatesMedia.first().single())
}
@Test
fun `select by user subtitle one of`() = runTest {
- val media = media(subtitleLanguages = listOf("字幕组", "a"))
+ val media = media(subtitleLanguages = listOf("字幕組", "a"))
addMedia(media, media(subtitleLanguages = listOf("b")))
savedUserPreference.value = DEFAULT_PREFERENCE.copy(subtitleLanguageId = "a")
assertEquals(media, selector.preferredCandidatesMedia.first().single())
@@ -174,7 +174,7 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
@Test
fun `select by default subtitle one of`() = runTest {
- val media = media(subtitleLanguages = listOf("字幕组", "a"))
+ val media = media(subtitleLanguages = listOf("字幕組", "a"))
addMedia(media, media(subtitleLanguages = listOf("b")))
savedDefaultPreference.value = DEFAULT_PREFERENCE.copy(subtitleLanguageId = "a")
assertEquals("a", selector.subtitleLanguageId.finalSelected.first())
@@ -183,15 +183,15 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
@Test
fun `select none because pref not match`() = runTest {
- addMedia(media(alliance = "字幕组"), media(alliance = "字幕组"))
+ addMedia(media(alliance = "字幕組"), media(alliance = "字幕組"))
savedDefaultPreference.value = DEFAULT_PREFERENCE.copy(alliance = "a")
assertEquals(0, selector.preferredCandidatesMedia.first().size)
}
@Test
fun `select with user override no preference`() = runTest {
- addMedia(media(alliance = "字幕组"))
- savedDefaultPreference.value = DEFAULT_PREFERENCE.copy(alliance = "组")
+ addMedia(media(alliance = "字幕組"))
+ savedDefaultPreference.value = DEFAULT_PREFERENCE.copy(alliance = "組")
assertEquals(0, selector.preferredCandidatesMedia.first().size)
selector.alliance.removePreference()
assertEquals(1, selector.preferredCandidatesMedia.first().size)
@@ -199,12 +199,12 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
@Test
fun `select with user override no preference then prefer`() = runTest {
- addMedia(media(alliance = "字幕组"), media(alliance = "字幕组2"))
- savedDefaultPreference.value = DEFAULT_PREFERENCE.copy(alliance = "组")
+ addMedia(media(alliance = "字幕組"), media(alliance = "字幕組2"))
+ savedDefaultPreference.value = DEFAULT_PREFERENCE.copy(alliance = "組")
assertEquals(0, selector.preferredCandidatesMedia.first().size)
selector.alliance.removePreference()
assertEquals(2, selector.preferredCandidatesMedia.first().size)
- selector.alliance.prefer("字幕组")
+ selector.alliance.prefer("字幕組")
assertEquals(1, selector.preferredCandidatesMedia.first().size)
}
@@ -214,26 +214,26 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
@Test
fun `select default first with no preference`() = runTest {
- val target = media(alliance = "字幕组", subtitleLanguages = listOf("CHS"))
+ val target = media(alliance = "字幕組", subtitleLanguages = listOf("CHS"))
addMedia(
target,
- media(alliance = "字幕组2", subtitleLanguages = listOf("CHT")),
- media(alliance = "字幕组3", subtitleLanguages = listOf("CHS", "CHT")),
- media(alliance = "字幕组2", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組2", subtitleLanguages = listOf("CHT")),
+ media(alliance = "字幕組3", subtitleLanguages = listOf("CHS", "CHT")),
+ media(alliance = "字幕組2", subtitleLanguages = listOf("CHS")),
)
assertEquals(target, selector.trySelectDefault())
}
@Test
fun `select default by alliance`() = runTest {
- val target = media(alliance = "字幕组", subtitleLanguages = listOf("CHS"))
+ val target = media(alliance = "字幕組", subtitleLanguages = listOf("CHS"))
addMedia(
- media(alliance = "字幕组2", subtitleLanguages = listOf("CHT")),
- media(alliance = "字幕组3", subtitleLanguages = listOf("CHS", "CHT")),
+ media(alliance = "字幕組2", subtitleLanguages = listOf("CHT")),
+ media(alliance = "字幕組3", subtitleLanguages = listOf("CHS", "CHT")),
target,
- media(alliance = "字幕组2", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組2", subtitleLanguages = listOf("CHS")),
)
- selector.alliance.prefer("字幕组")
+ selector.alliance.prefer("字幕組")
assertEquals(target, selector.trySelectDefault())
}
@@ -241,11 +241,11 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
fun `select default by alliance regex`() = runTest {
val target: DefaultMedia
addMedia(
- media(alliance = "字幕组1", subtitleLanguages = listOf("CHS")),
- media(alliance = "字幕组2", subtitleLanguages = listOf("CHT")),
- media(alliance = "字幕组3", subtitleLanguages = listOf("CHS", "CHT")),
- media(alliance = "字幕组4", subtitleLanguages = listOf("CHS", "CHT")).also { target = it },
- media(alliance = "字幕组5", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組1", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組2", subtitleLanguages = listOf("CHT")),
+ media(alliance = "字幕組3", subtitleLanguages = listOf("CHS", "CHT")),
+ media(alliance = "字幕組4", subtitleLanguages = listOf("CHS", "CHT")).also { target = it },
+ media(alliance = "字幕組5", subtitleLanguages = listOf("CHS")),
)
savedDefaultPreference.value = DEFAULT_PREFERENCE.copy(alliancePatterns = listOf("4"))
assertEquals(target, selector.trySelectDefault())
@@ -255,11 +255,11 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
fun `select default by subtitle language`() = runTest {
val target: DefaultMedia
addMedia(
- media(alliance = "字幕组1", subtitleLanguages = listOf("CHS")),
- media(alliance = "字幕组2", subtitleLanguages = listOf("CHT")),
- media(alliance = "字幕组3", subtitleLanguages = listOf("CHS", "CHT")),
- media(alliance = "字幕组4", subtitleLanguages = listOf("CHS", "CHT", "R")).also { target = it },
- media(alliance = "字幕组5", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組1", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組2", subtitleLanguages = listOf("CHT")),
+ media(alliance = "字幕組3", subtitleLanguages = listOf("CHS", "CHT")),
+ media(alliance = "字幕組4", subtitleLanguages = listOf("CHS", "CHT", "R")).also { target = it },
+ media(alliance = "字幕組5", subtitleLanguages = listOf("CHS")),
)
savedDefaultPreference.value = DEFAULT_PREFERENCE.copy(subtitleLanguageId = "R")
assertEquals(target, selector.trySelectDefault())
@@ -269,11 +269,11 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
fun `select default by first fallback subtitle language`() = runTest {
val target: DefaultMedia
addMedia(
- media(alliance = "字幕组1", subtitleLanguages = listOf("CHS")),
- media(alliance = "字幕组2", subtitleLanguages = listOf("CHT")),
- media(alliance = "字幕组3", subtitleLanguages = listOf("CHS", "CHT")),
- media(alliance = "字幕组4", subtitleLanguages = listOf("CHS", "CHT", "R")).also { target = it },
- media(alliance = "字幕组5", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組1", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組2", subtitleLanguages = listOf("CHT")),
+ media(alliance = "字幕組3", subtitleLanguages = listOf("CHS", "CHT")),
+ media(alliance = "字幕組4", subtitleLanguages = listOf("CHS", "CHT", "R")).also { target = it },
+ media(alliance = "字幕組5", subtitleLanguages = listOf("CHS")),
)
savedDefaultPreference.value = DEFAULT_PREFERENCE.copy(fallbackSubtitleLanguageIds = listOf("R", "CHS"))
assertEquals(target, selector.trySelectDefault())
@@ -283,11 +283,11 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
fun `select default by resolution`() = runTest {
val target: DefaultMedia
addMedia(
- media(alliance = "字幕组1", subtitleLanguages = listOf("CHS")),
- media(alliance = "字幕组2", resolution = "Special").also { target = it },
- media(alliance = "字幕组3", subtitleLanguages = listOf("CHS", "CHT")),
- media(alliance = "字幕组4", subtitleLanguages = listOf("CHS", "CHT", "R")),
- media(alliance = "字幕组5", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組1", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組2", resolution = "Special").also { target = it },
+ media(alliance = "字幕組3", subtitleLanguages = listOf("CHS", "CHT")),
+ media(alliance = "字幕組4", subtitleLanguages = listOf("CHS", "CHT", "R")),
+ media(alliance = "字幕組5", subtitleLanguages = listOf("CHS")),
)
savedDefaultPreference.value = DEFAULT_PREFERENCE.copy(resolution = "Special")
assertEquals(target, selector.trySelectDefault())
@@ -297,11 +297,11 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
fun `select default by first fallback resolution`() = runTest {
val target: DefaultMedia
addMedia(
- media(alliance = "字幕组1", subtitleLanguages = listOf("CHS")),
- media(alliance = "字幕组2", resolution = "Special").also { target = it },
- media(alliance = "字幕组3", subtitleLanguages = listOf("CHS", "CHT")),
- media(alliance = "字幕组4", subtitleLanguages = listOf("CHS", "CHT", "R")),
- media(alliance = "字幕组5", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組1", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組2", resolution = "Special").also { target = it },
+ media(alliance = "字幕組3", subtitleLanguages = listOf("CHS", "CHT")),
+ media(alliance = "字幕組4", subtitleLanguages = listOf("CHS", "CHT", "R")),
+ media(alliance = "字幕組5", subtitleLanguages = listOf("CHS")),
)
savedDefaultPreference.value = DEFAULT_PREFERENCE.copy(fallbackResolutions = listOf("Special", "1080P"))
assertEquals(target, selector.trySelectDefault())
@@ -311,11 +311,11 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
fun `do not select default when user already selected`() = runTest {
val target: DefaultMedia
addMedia(
- media(alliance = "字幕组1", subtitleLanguages = listOf("CHS")),
- media(alliance = "字幕组2", resolution = "Special").also { target = it },
- media(alliance = "字幕组3", subtitleLanguages = listOf("CHS", "CHT")),
- media(alliance = "字幕组4", subtitleLanguages = listOf("CHS", "CHT", "R")),
- media(alliance = "字幕组5", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組1", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組2", resolution = "Special").also { target = it },
+ media(alliance = "字幕組3", subtitleLanguages = listOf("CHS", "CHT")),
+ media(alliance = "字幕組4", subtitleLanguages = listOf("CHS", "CHT", "R")),
+ media(alliance = "字幕組5", subtitleLanguages = listOf("CHS")),
)
selector.select(target)
assertEquals(null, selector.trySelectDefault())
@@ -381,15 +381,15 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
fun `always show cached even if preferences dont match`() = runTest {
val target: DefaultMedia
addMedia(
- media(alliance = "字幕组1", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組1", subtitleLanguages = listOf("CHS")),
media(
- alliance = "字幕组2",
+ alliance = "字幕組2",
subtitleLanguages = listOf("CHS"),
kind = MediaSourceKind.LocalCache,
).also { target = it },
- media(alliance = "字幕组3", subtitleLanguages = listOf("CHS", "CHT")),
- media(alliance = "字幕组4", subtitleLanguages = listOf("CHS", "CHT", "R")),
- media(alliance = "字幕组5", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組3", subtitleLanguages = listOf("CHS", "CHT")),
+ media(alliance = "字幕組4", subtitleLanguages = listOf("CHS", "CHT", "R")),
+ media(alliance = "字幕組5", subtitleLanguages = listOf("CHS")),
)
selector.alliance.prefer("a")
assertEquals(listOf(target), selector.preferredCandidatesMedia.first())
@@ -399,14 +399,14 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
fun `select cached`() = runTest {
val target: DefaultMedia
addMedia(
- media(alliance = "字幕组1", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組1", subtitleLanguages = listOf("CHS")),
media(
- alliance = "字幕组2", resolution = "Special",
+ alliance = "字幕組2", resolution = "Special",
kind = MediaSourceKind.LocalCache,
).also { target = it },
- media(alliance = "字幕组3", subtitleLanguages = listOf("CHS", "CHT")),
- media(alliance = "字幕组4", subtitleLanguages = listOf("CHS", "CHT", "R")),
- media(alliance = "字幕组5", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組3", subtitleLanguages = listOf("CHS", "CHT")),
+ media(alliance = "字幕組4", subtitleLanguages = listOf("CHS", "CHT", "R")),
+ media(alliance = "字幕組5", subtitleLanguages = listOf("CHS")),
)
assertEquals(target, selector.trySelectCached())
}
@@ -419,22 +419,22 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
fun `can hide raw`() = runTest {
val target: DefaultMedia
savedDefaultPreference.value = MediaPreference.Companion.Empty.copy(
- alliance = "字幕组2",
+ alliance = "字幕組2",
showWithoutSubtitle = true,
)
addMedia(
- media(alliance = "字幕组1", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組1", subtitleLanguages = listOf("CHS")),
media(
- alliance = "字幕组2", resolution = "Special",
+ alliance = "字幕組2", resolution = "Special",
subtitleLanguages = listOf(),
).also { target = it },
- media(alliance = "字幕组3", subtitleLanguages = listOf("CHS", "CHT")),
- media(alliance = "字幕组4", subtitleLanguages = listOf("CHS", "CHT", "R")),
- media(alliance = "字幕组5", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組3", subtitleLanguages = listOf("CHS", "CHT")),
+ media(alliance = "字幕組4", subtitleLanguages = listOf("CHS", "CHT", "R")),
+ media(alliance = "字幕組5", subtitleLanguages = listOf("CHS")),
)
assertEquals(target, selector.trySelectDefault())
savedDefaultPreference.value = MediaPreference.Companion.Empty.copy(
- alliance = "字幕组2",
+ alliance = "字幕組2",
showWithoutSubtitle = false,
)
selector.unselect()
@@ -446,23 +446,23 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
fun `do not hide media with extraFiles`() = runTest {
val target: DefaultMedia
savedDefaultPreference.value = MediaPreference.Companion.Empty.copy(
- alliance = "字幕组2",
+ alliance = "字幕組2",
showWithoutSubtitle = true,
)
addMedia(
- media(alliance = "字幕组1", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組1", subtitleLanguages = listOf("CHS")),
media(
- alliance = "字幕组2", resolution = "Special",
+ alliance = "字幕組2", resolution = "Special",
subtitleLanguages = listOf(),
extraFiles = MediaExtraFiles(listOf(Subtitle("dummy"))),
).also { target = it },
- media(alliance = "字幕组3", subtitleLanguages = listOf("CHS", "CHT")),
- media(alliance = "字幕组4", subtitleLanguages = listOf("CHS", "CHT", "R")),
- media(alliance = "字幕组5", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組3", subtitleLanguages = listOf("CHS", "CHT")),
+ media(alliance = "字幕組4", subtitleLanguages = listOf("CHS", "CHT", "R")),
+ media(alliance = "字幕組5", subtitleLanguages = listOf("CHS")),
)
assertEquals(target, selector.trySelectDefault())
savedDefaultPreference.value = MediaPreference.Companion.Empty.copy(
- alliance = "字幕组2",
+ alliance = "字幕組2",
showWithoutSubtitle = false,
)
selector.unselect()
@@ -473,23 +473,23 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
fun `can select cached raw`() = runTest {
val target: DefaultMedia
savedDefaultPreference.value = DEFAULT_PREFERENCE.copy(
- alliance = "字幕组2",
+ alliance = "字幕組2",
showWithoutSubtitle = true,
)
addMedia(
- media(alliance = "字幕组1", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組1", subtitleLanguages = listOf("CHS")),
media(
- alliance = "字幕组2", resolution = "Special",
+ alliance = "字幕組2", resolution = "Special",
subtitleLanguages = listOf(),
kind = MediaSourceKind.LocalCache,
).also { target = it },
- media(alliance = "字幕组3", subtitleLanguages = listOf("CHS", "CHT")),
- media(alliance = "字幕组4", subtitleLanguages = listOf("CHS", "CHT", "R")),
- media(alliance = "字幕组5", subtitleLanguages = listOf("CHS")),
+ media(alliance = "字幕組3", subtitleLanguages = listOf("CHS", "CHT")),
+ media(alliance = "字幕組4", subtitleLanguages = listOf("CHS", "CHT", "R")),
+ media(alliance = "字幕組5", subtitleLanguages = listOf("CHS")),
)
assertEquals(target, selector.trySelectCached())
savedDefaultPreference.value = DEFAULT_PREFERENCE.copy(
- alliance = "字幕组2",
+ alliance = "字幕組2",
showWithoutSubtitle = false,
)
selector.unselect()
@@ -509,16 +509,16 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
preferSeasons = false,
)
addMedia(
- media(alliance = "字幕组1", episodeRange = EpisodeRange.Companion.single("1")),
+ media(alliance = "字幕組1", episodeRange = EpisodeRange.Companion.single("1")),
media(
- alliance = "字幕组2", episodeRange = EpisodeRange.Companion.range(1, 2),
+ alliance = "字幕組2", episodeRange = EpisodeRange.Companion.range(1, 2),
).also { target = it },
media(
- alliance = "字幕组6", episodeRange = EpisodeRange.Companion.season(1),
+ alliance = "字幕組6", episodeRange = EpisodeRange.Companion.season(1),
),
- media(alliance = "字幕组3", episodeRange = EpisodeRange.Companion.single("2")),
- media(alliance = "字幕组4", episodeRange = EpisodeRange.Companion.single("3")),
- media(alliance = "字幕组5", episodeRange = EpisodeRange.Companion.single("4")),
+ media(alliance = "字幕組3", episodeRange = EpisodeRange.Companion.single("2")),
+ media(alliance = "字幕組4", episodeRange = EpisodeRange.Companion.single("3")),
+ media(alliance = "字幕組5", episodeRange = EpisodeRange.Companion.single("4")),
)
assertEquals(2, selector.preferredCandidatesMedia.first().size)
assertEquals(target, selector.preferredCandidatesMedia.first()[0])
@@ -532,12 +532,12 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
preferSeasons = false,
)
addMedia(
- media(alliance = "字幕组1", episodeRange = EpisodeRange.Companion.single("1")),
- media(alliance = "字幕组2", episodeRange = EpisodeRange.Companion.range(1, 2)),
- media(alliance = "字幕组6", episodeRange = EpisodeRange.Companion.season(1)),
- media(alliance = "字幕组3", episodeRange = EpisodeRange.Companion.single("2")),
- media(alliance = "字幕组4", episodeRange = EpisodeRange.Companion.single("3")),
- media(alliance = "字幕组5", episodeRange = EpisodeRange.Companion.single("4")),
+ media(alliance = "字幕組1", episodeRange = EpisodeRange.Companion.single("1")),
+ media(alliance = "字幕組2", episodeRange = EpisodeRange.Companion.range(1, 2)),
+ media(alliance = "字幕組6", episodeRange = EpisodeRange.Companion.season(1)),
+ media(alliance = "字幕組3", episodeRange = EpisodeRange.Companion.single("2")),
+ media(alliance = "字幕組4", episodeRange = EpisodeRange.Companion.single("3")),
+ media(alliance = "字幕組5", episodeRange = EpisodeRange.Companion.single("4")),
)
assertEquals(6, selector.preferredCandidatesMedia.first().size)
}
@@ -557,11 +557,11 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
savedUserPreference.value = DEFAULT_PREFERENCE
savedDefaultPreference.value = DEFAULT_PREFERENCE // 允许选择 1080P 等
addMedia(
- media(alliance = "字幕组1", episodeRange = EpisodeRange.Companion.single("1")),
- media(alliance = "字幕组2", episodeRange = EpisodeRange.Companion.season(1)).also { target = it },
- media(alliance = "字幕组3", episodeRange = EpisodeRange.Companion.single("2")),
- media(alliance = "字幕组4", episodeRange = EpisodeRange.Companion.single("3")),
- media(alliance = "字幕组5", episodeRange = EpisodeRange.Companion.single("4")),
+ media(alliance = "字幕組1", episodeRange = EpisodeRange.Companion.single("1")),
+ media(alliance = "字幕組2", episodeRange = EpisodeRange.Companion.season(1)).also { target = it },
+ media(alliance = "字幕組3", episodeRange = EpisodeRange.Companion.single("2")),
+ media(alliance = "字幕組4", episodeRange = EpisodeRange.Companion.single("3")),
+ media(alliance = "字幕組5", episodeRange = EpisodeRange.Companion.single("4")),
)
assertEquals(5, selector.preferredCandidatesMedia.first().size)
assertEquals(target, selector.trySelectDefault())
@@ -578,11 +578,11 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
savedUserPreference.value = DEFAULT_PREFERENCE
savedDefaultPreference.value = DEFAULT_PREFERENCE
addMedia(
- media(alliance = "字幕组1", episodeRange = EpisodeRange.Companion.single("1")).also { target = it },
- media(alliance = "字幕组2", episodeRange = EpisodeRange.Companion.season(1)),
- media(alliance = "字幕组3", episodeRange = EpisodeRange.Companion.single("2")),
- media(alliance = "字幕组4", episodeRange = EpisodeRange.Companion.single("3")),
- media(alliance = "字幕组5", episodeRange = EpisodeRange.Companion.single("4")),
+ media(alliance = "字幕組1", episodeRange = EpisodeRange.Companion.single("1")).also { target = it },
+ media(alliance = "字幕組2", episodeRange = EpisodeRange.Companion.season(1)),
+ media(alliance = "字幕組3", episodeRange = EpisodeRange.Companion.single("2")),
+ media(alliance = "字幕組4", episodeRange = EpisodeRange.Companion.single("3")),
+ media(alliance = "字幕組5", episodeRange = EpisodeRange.Companion.single("4")),
)
assertEquals(5, selector.preferredCandidatesMedia.first().size)
assertEquals(target, selector.trySelectDefault())
@@ -599,11 +599,11 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
savedUserPreference.value = MediaPreference.Companion.Empty
savedDefaultPreference.value = MediaPreference.Companion.Empty // 啥都不要, 就一定会 fallback 成选第一个
addMedia(
- media(alliance = "字幕组1", episodeRange = EpisodeRange.Companion.single("1")).also { target = it },
- media(alliance = "字幕组2", episodeRange = EpisodeRange.Companion.season(1)),
- media(alliance = "字幕组3", episodeRange = EpisodeRange.Companion.single("2")),
- media(alliance = "字幕组4", episodeRange = EpisodeRange.Companion.single("3")),
- media(alliance = "字幕组5", episodeRange = EpisodeRange.Companion.single("4")),
+ media(alliance = "字幕組1", episodeRange = EpisodeRange.Companion.single("1")).also { target = it },
+ media(alliance = "字幕組2", episodeRange = EpisodeRange.Companion.season(1)),
+ media(alliance = "字幕組3", episodeRange = EpisodeRange.Companion.single("2")),
+ media(alliance = "字幕組4", episodeRange = EpisodeRange.Companion.single("3")),
+ media(alliance = "字幕組5", episodeRange = EpisodeRange.Companion.single("4")),
)
assertEquals(5, selector.preferredCandidatesMedia.first().size)
assertEquals(target, selector.trySelectDefault())
@@ -620,19 +620,19 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
val target: DefaultMedia
mediaSelectorContext.value = createMediaSelectorContextFromEmpty(
true,
- subjectSeriesInfo = SubjectSeriesInfo.Companion.Fallback.copy(seriesSubjectNamesWithoutSelf = setOf("条目名称I")),
+ subjectSeriesInfo = SubjectSeriesInfo.Companion.Fallback.copy(seriesSubjectNamesWithoutSelf = setOf("條目名稱I")),
)
mediaSelectorSettings.value = MediaSelectorSettings.Companion.Default
savedUserPreference.value = DEFAULT_PREFERENCE
savedDefaultPreference.value = DEFAULT_PREFERENCE
addMedia(
media(
- alliance = "字幕组1", episodeRange = EpisodeRange.Companion.single("1"), kind = MediaSourceKind.WEB,
- subjectName = "条目名称", subtitleLanguages = listOf(SubtitleLanguage.ChineseSimplified.id),
+ alliance = "字幕組1", episodeRange = EpisodeRange.Companion.single("1"), kind = MediaSourceKind.WEB,
+ subjectName = "條目名稱", subtitleLanguages = listOf(SubtitleLanguage.ChineseSimplified.id),
).also { target = it },
media(
- alliance = "字幕组2", episodeRange = EpisodeRange.Companion.single("1"), kind = MediaSourceKind.WEB,
- subjectName = "条目名称", subtitleLanguages = listOf(SubtitleLanguage.ChineseTraditional.id),
+ alliance = "字幕組2", episodeRange = EpisodeRange.Companion.single("1"), kind = MediaSourceKind.WEB,
+ subjectName = "條目名稱", subtitleLanguages = listOf(SubtitleLanguage.ChineseTraditional.id),
),
)
assertEquals(2, selector.preferredCandidates.first().size)
@@ -656,21 +656,21 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
subjectSeriesInfo = SubjectSeriesInfo(
seasonSort = 2,
sequelSubjectNames = setOf(
- "暗杀教室 Episode:0 相遇的时间",
- "暗殺教室 Episode:0 出会いの時間",
- "暗杀教室 第0话",
- "暗杀教室 OVA",
- "暗杀教室 第二季",
+ "暗殺教室 Episode:0 相遇的時間",
+ "暗殺教室 Episode:0 出會いの時間",
+ "暗殺教室 第0話",
+ "暗殺教室 OVA",
+ "暗殺教室 第二季",
"暗殺教室 第2期",
- "暗杀教室 第二季 课外授课篇",
+ "暗殺教室 第二季 課外授課篇",
"暗殺教室 第2期 課外授業編",
),
seriesSubjectNamesWithoutSelf = setOf(
- "暗杀教室 第二季",
+ "暗殺教室 第二季",
"暗殺教室 第2期",
),
),
- subjectInfo = SubjectInfo.Companion.Empty.copy(name = "暗杀教室", nameCn = "暗杀教室"),
+ subjectInfo = SubjectInfo.Companion.Empty.copy(name = "暗殺教室", nameCn = "暗殺教室"),
)
mediaSelectorSettings.value = MediaSelectorSettings.Companion.Default
savedUserPreference.value = DEFAULT_PREFERENCE
@@ -679,13 +679,13 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
addMedia(
media(
// kept
- alliance = "咕咕新线(优先使用)",
+ alliance = "咕咕新線(優先使用)",
episodeRange = EpisodeRange.Companion.single("1"),
kind = MediaSourceKind.WEB,
- subjectName = "暗杀教室",
+ subjectName = "暗殺教室",
episodeName = "第01集",
subtitleLanguages = listOf(SubtitleLanguage.ChineseSimplified.id),
- originalTitle = "暗杀教室 第01集",
+ originalTitle = "暗殺教室 第01集",
).also { target = it },
)
@@ -699,7 +699,7 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
val target: DefaultMedia
mediaSelectorContext.value = createMediaSelectorContextFromEmpty(
true,
- subjectSeriesInfo = SubjectSeriesInfo.Companion.Fallback.copy(seriesSubjectNamesWithoutSelf = setOf("条目名称I")),
+ subjectSeriesInfo = SubjectSeriesInfo.Companion.Fallback.copy(seriesSubjectNamesWithoutSelf = setOf("條目名稱I")),
)
mediaSelectorSettings.value = MediaSelectorSettings.Companion.Default
savedUserPreference.value = DEFAULT_PREFERENCE
@@ -707,13 +707,13 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
addMedia(
media(
// filtered out
- alliance = "字幕组1", episodeRange = EpisodeRange.Companion.single("1"), kind = MediaSourceKind.WEB,
- subjectName = "条目名称I", subtitleLanguages = listOf(SubtitleLanguage.ChineseSimplified.id),
+ alliance = "字幕組1", episodeRange = EpisodeRange.Companion.single("1"), kind = MediaSourceKind.WEB,
+ subjectName = "條目名稱I", subtitleLanguages = listOf(SubtitleLanguage.ChineseSimplified.id),
),
media(
// kept
- alliance = "字幕组2", episodeRange = EpisodeRange.Companion.single("1"), kind = MediaSourceKind.WEB,
- subjectName = "条目名称", subtitleLanguages = listOf(SubtitleLanguage.ChineseTraditional.id),
+ alliance = "字幕組2", episodeRange = EpisodeRange.Companion.single("1"), kind = MediaSourceKind.WEB,
+ subjectName = "條目名稱", subtitleLanguages = listOf(SubtitleLanguage.ChineseTraditional.id),
).also { target = it },
)
assertEquals(2, selector.preferredCandidates.first().size)
@@ -732,7 +732,7 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
val target: DefaultMedia
mediaSelectorContext.value = createMediaSelectorContextFromEmpty(
true,
- subjectSeriesInfo = SubjectSeriesInfo.Companion.Fallback.copy(seriesSubjectNamesWithoutSelf = setOf("条目名称I")),
+ subjectSeriesInfo = SubjectSeriesInfo.Companion.Fallback.copy(seriesSubjectNamesWithoutSelf = setOf("條目名稱I")),
)
mediaSelectorSettings.value = MediaSelectorSettings.Companion.Default
savedUserPreference.value = DEFAULT_PREFERENCE
@@ -740,13 +740,13 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
addMedia(
media(
// filtered out
- alliance = "字幕组1", episodeRange = EpisodeRange.Companion.single("1"), kind = MediaSourceKind.WEB,
- subjectName = "条目名称I", subtitleLanguages = listOf(SubtitleLanguage.ChineseSimplified.id),
+ alliance = "字幕組1", episodeRange = EpisodeRange.Companion.single("1"), kind = MediaSourceKind.WEB,
+ subjectName = "條目名稱I", subtitleLanguages = listOf(SubtitleLanguage.ChineseSimplified.id),
),
media(
// kept
- alliance = "字幕组2", episodeRange = EpisodeRange.Companion.single("1"), kind = MediaSourceKind.WEB,
- subjectName = "条目名称III", subtitleLanguages = listOf(SubtitleLanguage.ChineseTraditional.id),
+ alliance = "字幕組2", episodeRange = EpisodeRange.Companion.single("1"), kind = MediaSourceKind.WEB,
+ subjectName = "條目名稱III", subtitleLanguages = listOf(SubtitleLanguage.ChineseTraditional.id),
).also { target = it },
)
assertEquals(2, selector.preferredCandidates.first().size)
@@ -1146,7 +1146,7 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
fun `trySelectFromMediaSources prefers high similarity`() = runTest {
mediaSelectorContext.value = createMediaSelectorContextFromEmpty(
false,
- subjectInfo = SubjectInfo.Companion.Empty.copy(nameCn = "孤独摇滚", name = "Bocchi The Rock!"),
+ subjectInfo = SubjectInfo.Companion.Empty.copy(nameCn = "孤獨搖滾", name = "Bocchi The Rock!"),
episodeInfo = EpisodeInfo.Companion.Empty.copy(sort = EpisodeSort(1)),
)
mediaSelectorSettings.value = MediaSelectorSettings.Companion.Default.copy(preferKind = MediaSourceKind.WEB)
@@ -1154,13 +1154,13 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
savedDefaultPreference.value = MediaPreference.Companion.Any
val media1 = media(
sourceId = "1",
- subjectName = "孤独摇滚 第二季",
+ subjectName = "孤獨搖滾 第二季",
episodeRange = EpisodeRange.Companion.single("1"),
kind = MediaSourceKind.WEB,
)
val media2 = media(
sourceId = "2",
- subjectName = "孤独摇滚",
+ subjectName = "孤獨搖滾",
episodeRange = EpisodeRange.Companion.single("1"),
kind = MediaSourceKind.WEB,
)
@@ -1218,7 +1218,7 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
fun `respect to subjectSequelNames`() = runTest {
mediaSelectorContext.value = createMediaSelectorContextFromEmpty(
false,
- subjectSequelNames = setOf("孤独摇滚 第二季"),
+ subjectSequelNames = setOf("孤獨搖滾 第二季"),
)
mediaSelectorSettings.value = MediaSelectorSettings.Companion.Default.copy()
savedUserPreference.value = MediaPreference.Companion.Any.copy(alliance = "1") // prefer 被过滤掉的那个, 以便测试
@@ -1226,13 +1226,13 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
val target: DefaultMedia
val media1 = media(
sourceId = "1",
- originalTitle = "孤独摇滚 第二季",
+ originalTitle = "孤獨搖滾 第二季",
episodeRange = EpisodeRange.Companion.single("1"),
kind = MediaSourceKind.WEB,
)
val media2 = media(
sourceId = "2",
- originalTitle = "孤独摇滚",
+ originalTitle = "孤獨搖滾",
alliance = "2",
episodeRange = EpisodeRange.Companion.single("2"),
kind = MediaSourceKind.WEB,
@@ -1267,14 +1267,14 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
preferKind = null,
)
addMedia(
- media(alliance = "字幕组1", episodeRange = EpisodeRange.Companion.single("1")).also { target = it },
+ media(alliance = "字幕組1", episodeRange = EpisodeRange.Companion.single("1")).also { target = it },
media(
- alliance = "字幕组2", episodeRange = EpisodeRange.Companion.single("2"), kind = MediaSourceKind.WEB,
+ alliance = "字幕組2", episodeRange = EpisodeRange.Companion.single("2"), kind = MediaSourceKind.WEB,
),
- media(alliance = "字幕组6", episodeRange = EpisodeRange.Companion.single("1")),
- media(alliance = "字幕组3", episodeRange = EpisodeRange.Companion.single("2")),
- media(alliance = "字幕组4", episodeRange = EpisodeRange.Companion.single("3")),
- media(alliance = "字幕组5", episodeRange = EpisodeRange.Companion.single("4")),
+ media(alliance = "字幕組6", episodeRange = EpisodeRange.Companion.single("1")),
+ media(alliance = "字幕組3", episodeRange = EpisodeRange.Companion.single("2")),
+ media(alliance = "字幕組4", episodeRange = EpisodeRange.Companion.single("3")),
+ media(alliance = "字幕組5", episodeRange = EpisodeRange.Companion.single("4")),
)
assertEquals(6, selector.preferredCandidatesMedia.first().size)
assertEquals(target, selector.trySelectDefault())
@@ -1288,14 +1288,14 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
preferKind = MediaSourceKind.BitTorrent,
)
addMedia(
- media(alliance = "字幕组1", episodeRange = EpisodeRange.Companion.single("1"), kind = MediaSourceKind.WEB),
+ media(alliance = "字幕組1", episodeRange = EpisodeRange.Companion.single("1"), kind = MediaSourceKind.WEB),
media(
- alliance = "字幕组2", episodeRange = EpisodeRange.Companion.single("2"), kind = MediaSourceKind.WEB,
+ alliance = "字幕組2", episodeRange = EpisodeRange.Companion.single("2"), kind = MediaSourceKind.WEB,
),
- media(alliance = "字幕组3", episodeRange = EpisodeRange.Companion.single("1")).also { target = it },
- media(alliance = "字幕组4", episodeRange = EpisodeRange.Companion.single("2")),
- media(alliance = "字幕组5", episodeRange = EpisodeRange.Companion.single("3")),
- media(alliance = "字幕组6", episodeRange = EpisodeRange.Companion.single("4")),
+ media(alliance = "字幕組3", episodeRange = EpisodeRange.Companion.single("1")).also { target = it },
+ media(alliance = "字幕組4", episodeRange = EpisodeRange.Companion.single("2")),
+ media(alliance = "字幕組5", episodeRange = EpisodeRange.Companion.single("3")),
+ media(alliance = "字幕組6", episodeRange = EpisodeRange.Companion.single("4")),
)
assertEquals(6, selector.preferredCandidatesMedia.first().size)
assertEquals(target, selector.trySelectDefault())
@@ -1309,14 +1309,14 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
preferKind = MediaSourceKind.WEB,
)
addMedia(
- media(alliance = "字幕组1", episodeRange = EpisodeRange.Companion.single("1")),
+ media(alliance = "字幕組1", episodeRange = EpisodeRange.Companion.single("1")),
media(
- alliance = "字幕组2", episodeRange = EpisodeRange.Companion.single("2"), kind = MediaSourceKind.WEB,
+ alliance = "字幕組2", episodeRange = EpisodeRange.Companion.single("2"), kind = MediaSourceKind.WEB,
).also { target = it },
- media(alliance = "字幕组6", episodeRange = EpisodeRange.Companion.single("1")),
- media(alliance = "字幕组3", episodeRange = EpisodeRange.Companion.single("2")),
- media(alliance = "字幕组4", episodeRange = EpisodeRange.Companion.single("3")),
- media(alliance = "字幕组5", episodeRange = EpisodeRange.Companion.single("4")),
+ media(alliance = "字幕組6", episodeRange = EpisodeRange.Companion.single("1")),
+ media(alliance = "字幕組3", episodeRange = EpisodeRange.Companion.single("2")),
+ media(alliance = "字幕組4", episodeRange = EpisodeRange.Companion.single("3")),
+ media(alliance = "字幕組5", episodeRange = EpisodeRange.Companion.single("4")),
)
assertEquals(6, selector.preferredCandidatesMedia.first().size)
assertEquals(target, selector.trySelectDefault())
@@ -1329,10 +1329,10 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
@Test
fun `sort by date`() = runTest {
// https://github.com/open-ani/ani/issues/445
- val m1 = media(alliance = "字幕组1", publishedTime = 1)
- val m4 = media(alliance = "字幕组2", publishedTime = 4)
- val m3 = media(alliance = "字幕组6", publishedTime = 3)
- val m2 = media(alliance = "字幕组5", publishedTime = 2)
+ val m1 = media(alliance = "字幕組1", publishedTime = 1)
+ val m4 = media(alliance = "字幕組2", publishedTime = 4)
+ val m3 = media(alliance = "字幕組6", publishedTime = 3)
+ val m2 = media(alliance = "字幕組5", publishedTime = 2)
addMedia(m1, m4, m3, m2)
assertEquals(listOf(m4, m3, m2, m1), selector.filteredCandidatesMedia.first())
assertEquals(listOf(m4, m3, m2, m1), selector.preferredCandidatesMedia.first())
@@ -1346,7 +1346,7 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
fun `do not save subtitle language when it is ambiguous`() = runTest {
savedUserPreference.value = MediaPreference.Companion.Empty
savedDefaultPreference.value = MediaPreference.Companion.Empty // 方便后面比较
- val target = media(alliance = "字幕组", subtitleLanguages = listOf("CHS", "CHT"))
+ val target = media(alliance = "字幕組", subtitleLanguages = listOf("CHS", "CHT"))
addMedia(target)
runCollectEvents {
selector.select(target)
@@ -1364,7 +1364,7 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
assertEquals(
//
MediaPreference.Companion.Empty.copy(
- alliance = "字幕组",
+ alliance = "字幕組",
resolution = target.properties.resolution,
mediaSourceId = "dmhy",
),
@@ -1377,7 +1377,7 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
fun `event select`() = runTest {
savedUserPreference.value = MediaPreference.Companion.Empty
savedDefaultPreference.value = MediaPreference.Companion.Empty // 方便后面比较
- val target = media(alliance = "字幕组", subtitleLanguages = listOf("CHS"))
+ val target = media(alliance = "字幕組", subtitleLanguages = listOf("CHS"))
addMedia(target)
runCollectEvents {
selector.select(target)
@@ -1394,7 +1394,7 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
assertEquals(1, onChangePreference.size)
assertEquals(
MediaPreference.Companion.Empty.copy(
- alliance = "字幕组",
+ alliance = "字幕組",
resolution = target.properties.resolution,
subtitleLanguageId = "CHS",
mediaSourceId = "dmhy",
@@ -1445,16 +1445,16 @@ class DefaultMediaSelectorTest : AbstractDefaultMediaSelectorTest() {
fun `event prefer`() = runTest {
savedUserPreference.value = MediaPreference.Companion.Empty
savedDefaultPreference.value = MediaPreference.Companion.Empty // 方便后面比较
- val target = media(alliance = "字幕组")
+ val target = media(alliance = "字幕組")
addMedia(target)
runCollectEvents {
- selector.alliance.prefer("字幕组")
+ selector.alliance.prefer("字幕組")
}.run {
assertEquals(0, onSelect.size)
assertEquals(1, onChangePreference.size)
assertEquals(
MediaPreference.Companion.Empty.copy(
- alliance = "字幕组",
+ alliance = "字幕組",
),
onChangePreference.first(),
)
diff --git a/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/MediaSelectorAutoSelectTest.kt b/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/MediaSelectorAutoSelectTest.kt
index 27774b448..ce2fa71e9 100644
--- a/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/MediaSelectorAutoSelectTest.kt
+++ b/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/MediaSelectorAutoSelectTest.kt
@@ -123,7 +123,7 @@ class MediaSelectorAutoSelectTest {
MediaFetchRequest(
subjectId = "1",
episodeId = "1",
- subjectNames = listOf("孤独摇滚"),
+ subjectNames = listOf("孤獨搖滾"),
episodeSort = EpisodeSort(1),
episodeName = "test",
),
@@ -205,7 +205,7 @@ class MediaSelectorAutoSelectTest {
MediaFetchRequest(
subjectId = "1",
episodeId = "1",
- subjectNames = listOf("孤独摇滚"),
+ subjectNames = listOf("孤獨搖滾"),
episodeSort = EpisodeSort(1),
episodeName = "test",
),
@@ -220,7 +220,7 @@ class MediaSelectorAutoSelectTest {
SubtitleLanguage.ChineseTraditional,
).map { it.id },
resolution: String = "1080P",
- alliance: String = "桜都字幕组",
+ alliance: String = "桜都字幕組",
size: FileSize = 122.megaBytes,
subtitleKind: SubtitleKind? = SubtitleKind.CLOSED,
): MediaProperties = MediaProperties(
@@ -273,7 +273,7 @@ class MediaSelectorAutoSelectTest {
val target = createTestDefaultMedia(
mediaId = "${SOURCE_DMHY}.1",
mediaSourceId = SOURCE_DMHY,
- originalTitle = "[桜都字幕组] 孤独摇滚 ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC",
+ originalTitle = "[桜都字幕組] 孤獨搖滾 ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC",
download = ResourceLocation.MagnetLink("magnet:?xt=urn:btih:1"),
originalUrl = "https://example.com/1",
publishedTime = 1,
@@ -284,7 +284,7 @@ class MediaSelectorAutoSelectTest {
SubtitleLanguage.ChineseTraditional,
).map { it.id },
resolution = "1080P",
- alliance = "桜都字幕组",
+ alliance = "桜都字幕組",
size = 122.megaBytes,
subtitleKind = null,
),
@@ -302,7 +302,7 @@ class MediaSelectorAutoSelectTest {
val target = createTestDefaultMedia(
mediaId = "${SOURCE_DMHY}.1",
mediaSourceId = SOURCE_DMHY,
- originalTitle = "[桜都字幕组] 孤独摇滚 ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC",
+ originalTitle = "[桜都字幕組] 孤獨搖滾 ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC",
download = ResourceLocation.MagnetLink("magnet:?xt=urn:btih:1"),
originalUrl = "https://example.com/1",
publishedTime = 1,
@@ -313,7 +313,7 @@ class MediaSelectorAutoSelectTest {
SubtitleLanguage.ChineseTraditional,
).map { it.id },
resolution = "1080P",
- alliance = "桜都字幕组",
+ alliance = "桜都字幕組",
size = 122.megaBytes,
subtitleKind = null,
),
diff --git a/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/MediaSelectorTestBuilder.kt b/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/MediaSelectorTestBuilder.kt
index cc12b6e32..fec04d53c 100644
--- a/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/MediaSelectorTestBuilder.kt
+++ b/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/legacy/MediaSelectorTestBuilder.kt
@@ -108,11 +108,11 @@ class MediaSelectorTestBuilder(
fun createMedia(
mediaSourceId: String,
kind: MediaSourceKind = MediaSourceKind.WEB,
- alliance: String = "XX字幕组",
+ alliance: String = "XX字幕組",
): DefaultMedia = createTestDefaultMedia(
mediaId = "$mediaSourceId.1",
mediaSourceId = mediaSourceId,
- originalTitle = "[XX字幕组] 孤独摇滚 ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC",
+ originalTitle = "[XX字幕組] 孤獨搖滾 ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC",
download = ResourceLocation.MagnetLink("magnet:?xt=urn:btih:1"),
originalUrl = "https://example.com/1",
publishedTime = 1,
@@ -141,7 +141,7 @@ class MediaSelectorTestBuilder(
MediaFetchRequest(
subjectId = "1",
episodeId = "1",
- subjectNames = listOf("孤独摇滚"),
+ subjectNames = listOf("孤獨搖滾"),
episodeSort = EpisodeSort(1),
episodeName = "test",
),
diff --git a/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/testFramework/MediaSelectorTestSuite.kt b/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/testFramework/MediaSelectorTestSuite.kt
index b63ca093f..d460352e2 100644
--- a/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/testFramework/MediaSelectorTestSuite.kt
+++ b/app/shared/app-data/src/commonTest/kotlin/domain/media/selector/testFramework/MediaSelectorTestSuite.kt
@@ -172,7 +172,7 @@ sealed class MediaSelectorTestSuite {
fun media(
sourceId: String = SOURCE_DMHY,
resolution: String = "1080P",
- alliance: String = "字幕组",
+ alliance: String = "字幕組",
size: FileSize = 1.megaBytes,
publishedTime: Long = 0,
subtitleLanguages: List = listOf(
@@ -185,7 +185,7 @@ sealed class MediaSelectorTestSuite {
subtitleKind: SubtitleKind? = null,
extraFiles: MediaExtraFiles = MediaExtraFiles.EMPTY,
id: Int = mediaIdCounter++,
- originalTitle: String = "[字幕组] 孤独摇滚 $id",
+ originalTitle: String = "[字幕組] 孤獨搖滾 $id",
subjectName: String? = null,
episodeName: String? = null,
mediaId: String = "$sourceId.$id",
@@ -316,7 +316,7 @@ class SimpleMediaSelectorTestSuite(
addMedia(
media(
// kept
- alliance = "简中",
+ alliance = "簡中",
episodeRange = finalRange, kind = MediaSourceKind.WEB,
subjectName = subjectName,
originalTitle = "$subjectName $finalRange",
diff --git a/app/shared/app-data/src/commonTest/kotlin/domain/mediasource/MediaListFilterEpisodeFilterTest.kt b/app/shared/app-data/src/commonTest/kotlin/domain/mediasource/MediaListFilterEpisodeFilterTest.kt
index 8b1e3cec1..7523d7fab 100644
--- a/app/shared/app-data/src/commonTest/kotlin/domain/mediasource/MediaListFilterEpisodeFilterTest.kt
+++ b/app/shared/app-data/src/commonTest/kotlin/domain/mediasource/MediaListFilterEpisodeFilterTest.kt
@@ -24,35 +24,35 @@ class MediaListFilterEpisodeFilterTest {
fun `base cases`() = runDynamicTests {
case(
"simple sort match",
- subjectName = "来自深渊 烈日的黄金乡",
+ subjectName = "來自深淵 烈日的黃金鄉",
episodeSort = EpisodeSort(1),
- episodeName = "测试",
+ episodeName = "測試",
mediaEpisodeSort = EpisodeSort(1),
expected = true,
)
case(
"simple sort not match",
- subjectName = "来自深渊 烈日的黄金乡",
+ subjectName = "來自深淵 烈日的黃金鄉",
episodeSort = EpisodeSort(1),
- episodeName = "测试",
+ episodeName = "測試",
mediaEpisodeSort = EpisodeSort(2),
expected = false,
)
case(
"simple ep match",
- subjectName = "来自深渊 烈日的黄金乡",
+ subjectName = "來自深淵 烈日的黃金鄉",
episodeSort = EpisodeSort(13),
episodeEp = EpisodeSort(1),
- episodeName = "测试",
+ episodeName = "測試",
mediaEpisodeSort = EpisodeSort(1),
expected = true,
)
case(
"both ep and sort does not match",
- subjectName = "来自深渊 烈日的黄金乡",
+ subjectName = "來自深淵 烈日的黃金鄉",
episodeSort = EpisodeSort(13),
episodeEp = EpisodeSort(1),
- episodeName = "测试",
+ episodeName = "測試",
mediaEpisodeSort = EpisodeSort(2),
expected = false,
)
@@ -61,30 +61,30 @@ class MediaListFilterEpisodeFilterTest {
@TestFactory
fun `match episode name`() = runDynamicTests {
case(
- "match 电影版",
- subjectName = "来自深渊",
- episodeSort = EpisodeSort("电影版"),
- episodeName = "电影版",
+ "match 電影版",
+ subjectName = "來自深淵",
+ episodeSort = EpisodeSort("電影版"),
+ episodeName = "電影版",
mediaEpisodeSort = null,
- mediaTitle = "来自深渊 电影版",
+ mediaTitle = "來自深淵 電影版",
expected = true,
)
case(
"match OVA",
- subjectName = "来自深渊",
+ subjectName = "來自深淵",
episodeSort = EpisodeSort("OVA"),
episodeName = "OVA",
mediaEpisodeSort = null,
- mediaTitle = "来自深渊 OVA",
+ mediaTitle = "來自深淵 OVA",
expected = true,
)
case(
"match episode name - control",
- subjectName = "来自深渊",
+ subjectName = "來自深淵",
episodeSort = EpisodeSort(1),
- episodeName = "电影版",
+ episodeName = "電影版",
mediaEpisodeSort = null,
- mediaTitle = "来自深渊 01",
+ mediaTitle = "來自深淵 01",
expected = false,
)
}
@@ -93,17 +93,17 @@ class MediaListFilterEpisodeFilterTest {
fun `subjectName contains episodeName`() = runDynamicTests {
case(
"true case",
- subjectName = "来自深渊 烈日的黄金乡",
+ subjectName = "來自深淵 烈日的黃金鄉",
episodeSort = EpisodeSort(12), // 在看 12, 所以可以匹配 12
- episodeName = "黄金",
+ episodeName = "黃金",
mediaEpisodeSort = EpisodeSort(12),
expected = true,
)
case(
"fail case",
- subjectName = "来自深渊 烈日的黄金乡",
- episodeSort = EpisodeSort(11), // 在看 11, 但是标题叫"黄金", 不能匹配到
- episodeName = "黄金",
+ subjectName = "來自深淵 烈日的黃金鄉",
+ episodeSort = EpisodeSort(11), // 在看 11, 但是标题叫"黃金", 不能匹配到
+ episodeName = "黃金",
mediaEpisodeSort = EpisodeSort(12),
expected = false,
)
diff --git a/app/shared/app-data/src/commonTest/kotlin/domain/mediasource/MediaListFilterSamples.kt b/app/shared/app-data/src/commonTest/kotlin/domain/mediasource/MediaListFilterSamples.kt
index 8e7262f61..658c3e219 100644
--- a/app/shared/app-data/src/commonTest/kotlin/domain/mediasource/MediaListFilterSamples.kt
+++ b/app/shared/app-data/src/commonTest/kotlin/domain/mediasource/MediaListFilterSamples.kt
@@ -31,7 +31,7 @@ fun applyingFilters(mediaList: List) {
}
val context = MediaListFilterContext(
- setOf("条目名称"), EpisodeSort(1), EpisodeSort(1),
+ setOf("條目名稱"), EpisodeSort(1), EpisodeSort(1),
"第1集",
)
val newList: List = with(context) {
diff --git a/app/shared/app-data/src/commonTest/kotlin/domain/mediasource/MediaListFiltersTest.kt b/app/shared/app-data/src/commonTest/kotlin/domain/mediasource/MediaListFiltersTest.kt
index 6ebb41b29..c4d4b1211 100644
--- a/app/shared/app-data/src/commonTest/kotlin/domain/mediasource/MediaListFiltersTest.kt
+++ b/app/shared/app-data/src/commonTest/kotlin/domain/mediasource/MediaListFiltersTest.kt
@@ -39,28 +39,28 @@ class MediaListFiltersTest {
@TestFactory
fun `removeSpecials numbers`() = runDynamicTests {
- add("超元气三姐妹") {
- assertEquals("超元气三姐妹", removeSpecials("超元气三姐妹"))
+ add("超元氣三姐妹") {
+ assertEquals("超元氣三姐妹", removeSpecials("超元氣三姐妹"))
}
- add("中二病也要谈恋爱") {
- assertEquals("中二病也要谈恋爱", removeSpecials("中二病也要谈恋爱!"))
+ add("中二病也要談戀愛") {
+ assertEquals("中二病也要談戀愛", removeSpecials("中二病也要談戀愛!"))
}
}
@TestFactory
fun `removeSpecials re`() = runDynamicTests {
- add("Re:从零开始的异世界生活") {
- assertEquals("Re:从零开始的异世界生活", removeSpecials("Re:从零开始的异世界生活"))
+ add("Re:從零開始的異世界生活") {
+ assertEquals("Re:從零開始的異世界生活", removeSpecials("Re:從零開始的異世界生活"))
}
- add("Re:从零开始的异世界生活") {
- assertEquals("Re 从零开始的异世界生活", removeSpecials("Re:从零开始的异世界生活"))
+ add("Re:從零開始的異世界生活") {
+ assertEquals("Re 從零開始的異世界生活", removeSpecials("Re:從零開始的異世界生活"))
}
- add("Re: 从零开始的异世界生活") {
+ add("Re: 從零開始的異世界生活") {
assertEquals(
- "Re 从零开始的异世界生活",
- removeSpecials("Re: 从零开始的异世界生活", removeWhitespace = false),
+ "Re 從零開始的異世界生活",
+ removeSpecials("Re: 從零開始的異世界生活", removeWhitespace = false),
)
- assertEquals("Re从零开始的异世界生活", removeSpecials("Re: 从零开始的异世界生活", removeWhitespace = true))
+ assertEquals("Re從零開始的異世界生活", removeSpecials("Re: 從零開始的異世界生活", removeWhitespace = true))
}
add("Re:CREATORS") {
assertEquals("Re:CREATORS", removeSpecials("Re:CREATORS"))
@@ -69,52 +69,52 @@ class MediaListFiltersTest {
@TestFactory
fun `removeSpecials movie`() = runDynamicTests {
- add("剧场版 re0") {
- assertEquals("剧场版 Re:从零开始的异世界生活", removeSpecials("剧场版 Re:从零开始的异世界生活"))
+ add("劇場版 re0") {
+ assertEquals("劇場版 Re:從零開始的異世界生活", removeSpecials("劇場版 Re:從零開始的異世界生活"))
}
- add("剧场版 with special") {
- assertEquals("剧场版 从零开始的异世界生活", removeSpecials("剧场版 从零开始的异世界生活()"))
+ add("劇場版 with special") {
+ assertEquals("劇場版 從零開始的異世界生活", removeSpecials("劇場版 從零開始的異世界生活()"))
}
- add("剧场版 紫罗兰") {
- assertEquals("剧场版 紫罗兰永恒花园", removeSpecials("剧场版 紫罗兰永恒花园"))
+ add("劇場版 紫羅蘭") {
+ assertEquals("劇場版 紫羅蘭永恆花園", removeSpecials("劇場版 紫羅蘭永恆花園"))
}
- add("剧场版 suffix") {
- assertEquals("紫罗兰永恒花园剧场版", removeSpecials("紫罗兰永恒花园剧场版"))
+ add("劇場版 suffix") {
+ assertEquals("紫羅蘭永恆花園劇場版", removeSpecials("紫羅蘭永恆花園劇場版"))
}
- add("剧场版 suffix with space") {
- assertEquals("紫罗兰永恒花园 剧场版", removeSpecials("紫罗兰永恒花园 剧场版"))
+ add("劇場版 suffix with space") {
+ assertEquals("紫羅蘭永恆花園 劇場版", removeSpecials("紫羅蘭永恆花園 劇場版"))
}
}
@TestFactory
fun `removeSpecials period`() = runDynamicTests {
add("with period") {
- assertEquals("紫罗兰永恒花园", removeSpecials("紫罗兰永恒花园。"))
+ assertEquals("紫羅蘭永恆花園", removeSpecials("紫羅蘭永恆花園。"))
}
add("with comma") {
- assertEquals("紫罗兰永恒花园", removeSpecials("紫罗兰永恒花园,"))
+ assertEquals("紫羅蘭永恆花園", removeSpecials("紫羅蘭永恆花園,"))
}
add("with comma and space") {
- assertEquals("紫罗兰永恒花园", removeSpecials("紫罗兰永恒花园, "))
+ assertEquals("紫羅蘭永恆花園", removeSpecials("紫羅蘭永恆花園, "))
}
}
@TestFactory
fun `removeSpecials seasons`() = runDynamicTests {
add("second season") {
- assertEquals("测试 第二季", removeSpecials("测试 第二季"))
+ assertEquals("測試 第二季", removeSpecials("測試 第二季"))
}
}
@TestFactory
fun `removeSpecials leading specials`() = runDynamicTests {
add("remove leading specials regardless of position") {
- assertEquals("测试 第二季", removeSpecials("~~~~~~~~~~!测试 第二季"))
+ assertEquals("測試 第二季", removeSpecials("~~~~~~~~~~!測試 第二季"))
}
add("remove infix specials") {
// 需要两个非特殊字符后才会开始删除
- assertEquals("测!!!试 第二季", removeSpecials("测!!!试!!! 第二季"))
- assertEquals("测试 第二季", removeSpecials("测试!!!!!! 第二季"))
+ assertEquals("測!!!試 第二季", removeSpecials("測!!!試!!! 第二季"))
+ assertEquals("測試 第二季", removeSpecials("測試!!!!!! 第二季"))
}
}
@@ -132,23 +132,23 @@ class MediaListFiltersTest {
}
case(
- "香格里拉 弗陇提亚 屎作猎人向神作发起挑战 第二季",
- "香格里拉·弗陇提亚~屎作猎人向神作发起挑战~ 第二季",
+ "香格里拉 弗隴提亞 屎作獵人向神作發起挑戰 第二季",
+ "香格里拉·弗隴提亞~屎作獵人向神作發起挑戰~ 第二季",
removeWhitespace = false,
)
case(
- "香格里拉弗陇提亚屎作猎人向神作发起挑战第二季",
- "香格里拉·弗陇提亚~屎作猎人向神作发起挑战~ 第二季",
+ "香格里拉弗隴提亞屎作獵人向神作發起挑戰第二季",
+ "香格里拉·弗隴提亞~屎作獵人向神作發起挑戰~ 第二季",
removeWhitespace = true,
)
case(
- "香格里拉开拓异境粪作猎手挑战神作",
- "香格里拉・开拓异境~粪作猎手挑战神作~",
+ "香格里拉開拓異境糞作獵手挑戰神作",
+ "香格里拉・開拓異境~糞作獵手挑戰神作~",
removeWhitespace = true,
)
case(
- "香格里拉 开拓异境 粪作猎手挑战神作",
- "香格里拉・开拓异境~粪作猎手挑战神作~",
+ "香格里拉 開拓異境 糞作獵手挑戰神作",
+ "香格里拉・開拓異境~糞作獵手挑戰神作~",
removeWhitespace = false,
)
case(
@@ -162,28 +162,28 @@ class MediaListFiltersTest {
removeWhitespace = true,
)
case(
- "理科生坠入情网故尝试证明 r=1 sinθ ♡",
- "理科生坠入情网故尝试证明[r=1-sinθ]♡",
+ "理科生墜入情網故嘗試證明 r=1 sinθ ♡",
+ "理科生墜入情網故嘗試證明[r=1-sinθ]♡",
removeWhitespace = false,
)
case(
- "青出于蓝 缘",
- "青出于蓝~缘~",
+ "青出於藍 緣",
+ "青出於藍~緣~",
removeWhitespace = false,
)
case(
- "博人传 火影次世代",
- "博人传-火影次世代-",
+ "博人傳 火影次世代",
+ "博人傳-火影次世代-",
removeWhitespace = false,
)
case(
- "博人传 火影次世代",
- "博人传-火影次世代",
+ "博人傳 火影次世代",
+ "博人傳-火影次世代",
removeWhitespace = false,
)
case(
- "博人传 火影次世代",
- "博人传—火影次世代—",
+ "博人傳 火影次世代",
+ "博人傳—火影次世代—",
removeWhitespace = false,
)
}
@@ -221,12 +221,12 @@ class MediaListFiltersTest {
case(title, this, false)
}
- "哥特萝莉侦探事件簿" matches "哥特萝莉侦探事件簿"
- "哥特萝莉侦探事件薄" matches "哥特萝莉侦探事件簿"
- "败犬女主太多了" matches "败犬女主太多啦"
+ "哥特蘿莉偵探事件簿" matches "哥特蘿莉偵探事件簿"
+ "哥特蘿莉偵探事件薄" matches "哥特蘿莉偵探事件簿"
+ "敗犬女主太多了" matches "敗犬女主太多啦"
- "地狱少女第一季" mismatches "地。 ―关于地球的运动―"
- "地狱少女" mismatches "地。"
+ "地獄少女第一季" mismatches "地。 ―關於地球的運動―"
+ "地獄少女" mismatches "地。"
}
private fun removeSpecials(
diff --git a/app/shared/app-data/src/commonTest/kotlin/domain/mediasource/MediaSourceEngineHelpersTest.kt b/app/shared/app-data/src/commonTest/kotlin/domain/mediasource/MediaSourceEngineHelpersTest.kt
index b6fe212a1..e00d19ca4 100644
--- a/app/shared/app-data/src/commonTest/kotlin/domain/mediasource/MediaSourceEngineHelpersTest.kt
+++ b/app/shared/app-data/src/commonTest/kotlin/domain/mediasource/MediaSourceEngineHelpersTest.kt
@@ -28,20 +28,20 @@ class MediaSourceEngineHelpersTest {
}
}
- case("香格里拉", "香格里拉·弗陇提亚~屎作猎人向神作发起挑战~ 第二季")
- case("异世界魔王与召唤少女的奴隶魔术Ω", "异世界魔王与召唤少女的奴隶魔术Ω")
+ case("香格里拉", "香格里拉·弗隴提亞~屎作獵人向神作發起挑戰~ 第二季")
+ case("異世界魔王與召喚少女的奴隸魔術Ω", "異世界魔王與召喚少女的奴隸魔術Ω")
case("天降之物f", "天降之物f")
case("五等分的新娘*", "五等分的新娘*")
- case("邪神与厨二病少女’", "邪神与厨二病少女’")
+ case("邪神與廚二病少女’", "邪神與廚二病少女’")
case("打工吧", "打工吧!!魔王大人")
- case("理科生坠入情网故尝试证明", "理科生坠入情网故尝试证明[r=1-sinθ]♡")
+ case("理科生墜入情網故嘗試證明", "理科生墜入情網故嘗試證明[r=1-sinθ]♡")
case("new", "new game!")
case("new", "new game!!")
- case("命运石之门", "命运石之门 负荷领域的既视感")
- case("命运石之门", "剧场版 命运石之门 负荷领域的既视感")
- case("OVERLORD", "剧场版总集篇 OVERLORD 漆黑的英雄")
+ case("命運石之門", "命運石之門 負荷領域的既視感")
+ case("命運石之門", "劇場版 命運石之門 負荷領域的既視感")
+ case("OVERLORD", "劇場版總集篇 OVERLORD 漆黑的英雄")
case("Test", "Test OAD")
- case("测试", "测试OAD")
+ case("測試", "測試OAD")
case("Test", "OAD Test")
}
}
\ No newline at end of file
diff --git a/app/shared/app-data/src/commonTest/kotlin/domain/mediasource/StringMatcherTest.kt b/app/shared/app-data/src/commonTest/kotlin/domain/mediasource/StringMatcherTest.kt
index f0c41becd..71dddb0d9 100644
--- a/app/shared/app-data/src/commonTest/kotlin/domain/mediasource/StringMatcherTest.kt
+++ b/app/shared/app-data/src/commonTest/kotlin/domain/mediasource/StringMatcherTest.kt
@@ -76,31 +76,31 @@ class StringMatcherTest {
// 语法: 有错误的名字 matches 正确名称 at 匹配率
// 错了一个字
- "哥特萝莉侦探事件薄" matches "哥特萝莉侦探事件簿" at 88
+ "哥特蘿莉偵探事件薄" matches "哥特蘿莉偵探事件簿" at 88
// 这说明 <80% 可能会匹配到第二季
- "哥特萝莉侦探事件簿" matches "哥特萝莉侦探事件簿第二季" at 75
+ "哥特蘿莉偵探事件簿" matches "哥特蘿莉偵探事件簿第二季" at 75
// #780
- "败犬女主太多了" matches "败犬女主太多啦" at 85
+ "敗犬女主太多了" matches "敗犬女主太多啦" at 85
// 此方法无法识别这种区别
- "别当欧尼酱了" matches "别当哥哥了" at 50
+ "別當歐尼醬了" matches "別當哥哥了" at 50
- "地狱少女第一季" matches "地。 ―关于地球的运动―" at 8
- "地狱少女第一季" matches "地。" at 14
+ "地獄少女第一季" matches "地。 ―關於地球的運動―" at 8
+ "地獄少女第一季" matches "地。" at 14
val chiRemoved = removeSpecials(
- "地。 ―关于地球的运动―",
+ "地。 ―關於地球的運動―",
removeWhitespace = true,
replaceNumbers = true,
)
- "地狱少女第一季" matches chiRemoved at 9
- "地狱少女" matches "地。" at 25
+ "地獄少女第一季" matches chiRemoved at 9
+ "地獄少女" matches "地。" at 25
}
@Test
fun `test GOSICK2`() {
- val result = StringMatcher.calculateMatchRate("哥特萝莉侦探事件簿", "哥特萝莉侦探事件薄")
+ val result = StringMatcher.calculateMatchRate("哥特蘿莉偵探事件簿", "哥特蘿莉偵探事件薄")
// distance is length of "kotlin", i.e., 6
// maxLen = 6 => similarity = 1 - (6/6) = 0 => 0%
assertEquals(88, result)
diff --git a/app/shared/app-data/src/commonTest/kotlin/tools/TimeFormatterTest.kt b/app/shared/app-data/src/commonTest/kotlin/tools/TimeFormatterTest.kt
index 679fb961e..f4bd6821b 100644
--- a/app/shared/app-data/src/commonTest/kotlin/tools/TimeFormatterTest.kt
+++ b/app/shared/app-data/src/commonTest/kotlin/tools/TimeFormatterTest.kt
@@ -42,7 +42,7 @@ class TimeFormatterTest {
@Test
fun testJustNow() {
- assertEquals("刚刚", timeFormatter.format(fixedTime))
+ assertEquals("剛剛", timeFormatter.format(fixedTime))
}
@Test
@@ -54,31 +54,31 @@ class TimeFormatterTest {
@Test
fun testSecondsLater() {
val timestamp = Instant.parse("2020-01-01T10:00:30Z")
- assertEquals("30 秒后", timeFormatter.format(timestamp))
+ assertEquals("30 秒後", timeFormatter.format(timestamp))
}
@Test
fun testMinutesAgo() {
val timestamp = Instant.parse("2020-01-01T09:58:00Z")
- assertEquals("2 分钟前", timeFormatter.format(timestamp))
+ assertEquals("2 分鐘前", timeFormatter.format(timestamp))
}
@Test
fun testMinutesLater() {
val timestamp = Instant.parse("2020-01-01T10:02:00Z")
- assertEquals("2 分钟后", timeFormatter.format(timestamp))
+ assertEquals("2 分鐘後", timeFormatter.format(timestamp))
}
@Test
fun testHoursAgo() {
val timestamp = Instant.parse("2020-01-01T08:00:00Z")
- assertEquals("2 小时前", timeFormatter.format(timestamp))
+ assertEquals("2 小時前", timeFormatter.format(timestamp))
}
@Test
fun testHoursLater() {
val timestamp = Instant.parse("2020-01-01T12:00:00Z")
- assertEquals("2 小时后", timeFormatter.format(timestamp))
+ assertEquals("2 小時後", timeFormatter.format(timestamp))
}
@Test
diff --git a/app/shared/app-data/src/commonTest/kotlin/tools/WeekFormatterTest.kt b/app/shared/app-data/src/commonTest/kotlin/tools/WeekFormatterTest.kt
index acba8fa62..0b429049f 100644
--- a/app/shared/app-data/src/commonTest/kotlin/tools/WeekFormatterTest.kt
+++ b/app/shared/app-data/src/commonTest/kotlin/tools/WeekFormatterTest.kt
@@ -18,7 +18,7 @@ import kotlin.time.Instant
class WeekFormatterTest {
private val fixedInstant = Instant.parse("2024-08-21T12:00:00Z") // 周三
- private val testTimeZone = TimeZone.of("Asia/Shanghai") // 上海时间为 "2024-08-21T20:00:00"
+ private val testTimeZone = TimeZone.of("Asia/Shanghai") // 上海時間爲 "2024-08-21T20:00:00"
// Helper function to create a fixed WeekFormatter for predictable testing
private fun createFormatter(now: Instant): WeekFormatter {
@@ -51,7 +51,7 @@ class WeekFormatterTest {
val formatter = createFormatter(fixedInstant)
val instance = Instant.parse("2024-08-24T12:00:00Z") // 2024-08-24 is Saturday
val result = formatter.format(instance, testTimeZone)
- assertEquals("周六", result)
+ assertEquals("週六", result)
}
@Test
@@ -59,7 +59,7 @@ class WeekFormatterTest {
val formatter = createFormatter(fixedInstant)
val instance = Instant.parse("2024-08-28T12:00:00Z") // 2024-08-28 is next Wednesday
val result = formatter.format(instance, testTimeZone)
- assertEquals("下周三", result)
+ assertEquals("下週三", result)
}
@Test
@@ -99,7 +99,7 @@ class WeekFormatterTest {
val formatter = createFormatter(Instant.parse("2023-12-29T12:00:00Z"))
val instance = Instant.parse("2024-01-03T12:00:00Z") // Date in the first week of the next year
val result = formatter.format(instance, testTimeZone)
- assertEquals("下周三", result)
+ assertEquals("下週三", result)
}
// edge cases
@@ -127,7 +127,7 @@ Test for the Exact Transition Between This Week and Next Week: A date exactly on
val formatter = createFormatter(fixedInstant)
val instance = Instant.parse("2024-08-25T12:00:00Z") // 2024-08-25 is Sunday
val result = formatter.format(instance, testTimeZone)
- assertEquals("周日", result)
+ assertEquals("週日", result)
}
@Test
@@ -135,7 +135,7 @@ Test for the Exact Transition Between This Week and Next Week: A date exactly on
val formatter = createFormatter(fixedInstant)
val instance = Instant.parse("2024-08-26T12:00:00Z") // 2024-08-26 is next Monday
val result = formatter.format(instance, testTimeZone)
- assertEquals("下周一", result)
+ assertEquals("下週一", result)
}
@Test
diff --git a/app/shared/app-data/src/commonTest/kotlin/tools/rss/RssParserTest.kt b/app/shared/app-data/src/commonTest/kotlin/tools/rss/RssParserTest.kt
index bd258de49..d2a29c702 100644
--- a/app/shared/app-data/src/commonTest/kotlin/tools/rss/RssParserTest.kt
+++ b/app/shared/app-data/src/commonTest/kotlin/tools/rss/RssParserTest.kt
@@ -29,12 +29,12 @@ class RssParserTest {
test(
"""
{
- "title": "樱trick",
- "description": "Anime Garden 是動漫花園資源網的第三方镜像站, 動漫花園資訊網是一個動漫愛好者交流的平台,提供最及時,最全面的動畫,漫畫,動漫音樂,動漫下載,BT,ED,動漫遊戲,資訊,分享,交流,讨论.",
+ "title": "櫻trick",
+ "description": "Anime Garden 是動漫花園資源網的第三方鏡像站, 動漫花園資訊網是一個動漫愛好者交流的平臺,提供最及時,最全面的動畫,漫畫,動漫音樂,動漫下載,BT,ED,動漫遊戲,資訊,分享,交流,討論.",
"link": "https://garden.breadio.wiki/resources?page=1&pageSize=100&search=%5B%22%E6%A8%B1trick%22%5D",
"items": [
{
- "title": "[愛戀&漫猫字幕社]櫻Trick Sakura Trick 01-12 avc_flac mkv 繁體內嵌合集(急招時軸)",
+ "title": "[愛戀&漫貓字幕社]櫻Trick Sakura Trick 01-12 avc_flac mkv 繁體內嵌合集(急招時軸)",
"pubDate": "2023-11-18T04:54:02",
"link": "https://garden.breadio.wiki/detail/moe/6558436a88897300074bfd42",
"guid": "https://garden.breadio.wiki/detail/moe/6558436a88897300074bfd42",
@@ -85,7 +85,7 @@ class RssParserTest {
}
},
{
- "title": "[Up to 21°C] 魔法少女与邪恶曾经敌对 / Katsute Mahou Shoujo to Aku wa Tekitai shiteita. - 04 (B-Global 1920x1080 HEVC AAC MKV)",
+ "title": "[Up to 21°C] 魔法少女與邪惡曾經敵對 / Katsute Mahou Shoujo to Aku wa Tekitai shiteita. - 04 (B-Global 1920x1080 HEVC AAC MKV)",
"description": "[h3]Katsute Mahou Shoujo to Aku wa ...",
"pubDate": "2024-07-30T07:46:29",
"link": "https://acg.rip/t/309581",
@@ -150,12 +150,12 @@ class RssParserTest {
"""
{
"title": "動漫花園資源網",
- "description": "動漫花園資訊網是一個動漫愛好者交流的平台,提供最及時,最全面的動畫,漫畫,動漫音樂,動漫下載,BT,ED,動漫遊戲,資訊,分享,交流,讨论.",
+ "description": "動漫花園資訊網是一個動漫愛好者交流的平臺,提供最及時,最全面的動畫,漫畫,動漫音樂,動漫下載,BT,ED,動漫遊戲,資訊,分享,交流,討論.",
"link": "http://share.dmhy.org",
"items": [
{
- "title": "[北宇治字幕组] 曾經、魔法少女和邪惡相互為敵。 / Katsute Mahou Shoujo to Aku wa Tekitai shiteita. [07v2][WebRip][HEVC_AAC][繁日內嵌]",
- "description": "
为了您的播放能正确显示字幕效果,我们推荐您观看内封源使用 MPV 播放器,或者挂载 XySubFilter with libass字幕滤镜。
本组字幕作品基于 CC BY-NC-ND 4.0 协议 进行共享。如有需求,可前往北宇治字幕组的字幕仓库下载往期制作的外挂字幕。
当前招募
翻译 | 日语参考等级n2以上或能够听懂生肉内容并保证正确率,有经验者优先
校对 | 日语参考等级n1,善于发现翻译的错误
美工 | 熟练使用PS/AI等软件,能进行图片设计
时轴 | 熟练使用Aeg打轴/校轴并设置合适的样式、字体或屏幕字
分流 | 电脑/NAS能长时间开机,有足够的空间和上行带宽且至少具备ipv6公网,为组内资源分流
有意者加群:招募群(232487445)交流群(713548082)TG群(@KitaUji)
",
+ "title": "[北宇治字幕組] 曾經、魔法少女和邪惡相互為敵。 / Katsute Mahou Shoujo to Aku wa Tekitai shiteita. [07v2][WebRip][HEVC_AAC][繁日內嵌]",
+ "description": "
爲了您的播放能正確顯示字幕效果,我們推薦您觀看內封源使用 MPV 播放器,或者掛載 XySubFilter with libass字幕濾鏡。
本組字幕作品基於 CC BY-NC-ND 4.0 協議 進行共享。如有需求,可前往北宇治字幕組的字幕倉庫下載往期製作的外掛字幕。
當前招募
翻譯 | 日語參考等級n2以上或能夠聽懂生肉內容並保證正確率,有經驗者優先
校對 | 日語參考等級n1,善於發現翻譯的錯誤
美工 | 熟練使用PS/AI等軟件,能進行圖片設計
時軸 | 熟練使用Aeg打軸/校軸並設置合適的樣式、字體或屏幕字
分流 | 電腦/NAS能長時間開機,有足夠的空間和上行帶寬且至少具備ipv6公網,爲組內資源分流
有意者加羣:招募羣(232487445)交流羣(713548082)TG羣(@KitaUji)
",
"pubDate": "2024-08-22T21:15:43",
"link": "http://share.dmhy.org/topics/view/677458_Katsute_Mahou_Shoujo_to_Aku_wa_Tekitai_shiteita_07v2_WebRip_HEVC_AAC.html",
"guid": "http://share.dmhy.org/topics/view/677458_Katsute_Mahou_Shoujo_to_Aku_wa_Tekitai_shiteita_07v2_WebRip_HEVC_AAC.html",
@@ -166,8 +166,8 @@ class RssParserTest {
}
},
{
- "title": "[北宇治字幕组] 魔法少女与恶曾是敌人。 / Katsute Mahou Shoujo to Aku wa Tekitai shiteita. [07v2][WebRip][HEVC_AAC][简日内嵌]",
- "description": "
为了您的播放能正确显示字幕效果,我们推荐您观看内封源使用 MPV 播放器,或者挂载 XySubFilter with libass字幕滤镜。
本组字幕作品基于 CC BY-NC-ND 4.0 协议 进行共享。如有需求,可前往北宇治字幕组的字幕仓库下载往期制作的外挂字幕。
当前招募
翻译 | 日语参考等级n2以上或能够听懂生肉内容并保证正确率,有经验者优先
校对 | 日语参考等级n1,善于发现翻译的错误
美工 | 熟练使用PS/AI等软件,能进行图片设计
时轴 | 熟练使用Aeg打轴/校轴并设置合适的样式、字体或屏幕字
分流 | 电脑/NAS能长时间开机,有足够的空间和上行带宽且至少具备ipv6公网,为组内资源分流
有意者加群:招募群(232487445)交流群(713548082)TG群(@KitaUji)
",
+ "title": "[北宇治字幕組] 魔法少女與惡曾是敵人。 / Katsute Mahou Shoujo to Aku wa Tekitai shiteita. [07v2][WebRip][HEVC_AAC][簡日內嵌]",
+ "description": "
爲了您的播放能正確顯示字幕效果,我們推薦您觀看內封源使用 MPV 播放器,或者掛載 XySubFilter with libass字幕濾鏡。
本組字幕作品基於 CC BY-NC-ND 4.0 協議 進行共享。如有需求,可前往北宇治字幕組的字幕倉庫下載往期製作的外掛字幕。
當前招募
翻譯 | 日語參考等級n2以上或能夠聽懂生肉內容並保證正確率,有經驗者優先
校對 | 日語參考等級n1,善於發現翻譯的錯誤
美工 | 熟練使用PS/AI等軟件,能進行圖片設計
時軸 | 熟練使用Aeg打軸/校軸並設置合適的樣式、字體或屏幕字
分流 | 電腦/NAS能長時間開機,有足夠的空間和上行帶寬且至少具備ipv6公網,爲組內資源分流
有意者加羣:招募羣(232487445)交流羣(713548082)TG羣(@KitaUji)
",
"pubDate": "2024-08-22T21:15:30",
"link": "http://share.dmhy.org/topics/view/677457_Katsute_Mahou_Shoujo_to_Aku_wa_Tekitai_shiteita_07v2_WebRip_HEVC_AAC.html",
"guid": "http://share.dmhy.org/topics/view/677457_Katsute_Mahou_Shoujo_to_Aku_wa_Tekitai_shiteita_07v2_WebRip_HEVC_AAC.html",
@@ -178,8 +178,8 @@ class RssParserTest {
}
},
{
- "title": "[LoliHouse] 魔法少女与邪恶曾经敌对。 / 曾经、魔法少女和邪恶相互为敌。 / Katsute Mahou Shoujo to Aku wa Tekitai shiteita - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]",
- "description": " 
魔法少女与邪恶曾经敌对。 / 曾经、魔法少女和邪恶相互为敌。
Katsute Mahou Shoujo to Aku wa Tekitai shiteita
かつて魔法少女と悪は敵対していた。
字幕:Bilibili Global
脚本:S01T004721
压制:Анастасия
本片简繁字幕均经过繁化姬处理后生成,请自行判断下载;如有措辞不当,概不负责。
本组作品首发于: acg.rip | dmhy.org | bangumi.moe | nyaa.si
各站发布情况取决于站点可用性,如有缺失烦请移步其他站点下载。
为了顺利地观看我们的作品,推荐大家使用以下播放器:
Windows:mpv(教程)
macOS:IINA
iOS/Android:VLC media player
...",
+ "title": "[LoliHouse] 魔法少女與邪惡曾經敵對。 / 曾經、魔法少女和邪惡相互爲敵。 / Katsute Mahou Shoujo to Aku wa Tekitai shiteita - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]",
+ "description": " 
魔法少女與邪惡曾經敵對。 / 曾經、魔法少女和邪惡相互爲敵。
Katsute Mahou Shoujo to Aku wa Tekitai shiteita
かつて魔法少女と悪は敵対していた。
字幕:Bilibili Global
腳本:S01T004721
壓制:Анастасия
本片簡繁字幕均經過繁化姬處理後生成,請自行判斷下載;如有措辭不當,概不負責。
本組作品首發於: acg.rip | dmhy.org | bangumi.moe | nyaa.si
各站發佈情況取決於站點可用性,如有缺失煩請移步其他站點下載。
爲了順利地觀看我們的作品,推薦大家使用以下播放器:
Windows:mpv(教程)
macOS:IINA
iOS/Android:VLC media player
...",
"pubDate": "2024-08-21T10:53:28",
"link": "http://share.dmhy.org/topics/view/677370_LoliHouse_Katsute_Mahou_Shoujo_to_Aku_wa_Tekitai_shiteita_-_07_WebRip_1080p_HEVC-10bit_AAC.html",
"guid": "http://share.dmhy.org/topics/view/677370_LoliHouse_Katsute_Mahou_Shoujo_to_Aku_wa_Tekitai_shiteita_-_07_WebRip_1080p_HEVC-10bit_AAC.html",
@@ -211,7 +211,7 @@ class RssParserTest {
http://share.dmhy.org/topics/view/677458_Katsute_Mahou_Shoujo_to_Aku_wa_Tekitai_shiteita_07v2_WebRip_HEVC_AAC.html
Thu, 22 Aug 2024 21:15:43 +0800
- 
为了您的播放能正确显示字幕效果,我们推荐您观看内封源使用 MPV 播放器,或者挂载 XySubFilter with libass字幕滤镜。
本组字幕作品基于 CC BY-NC-ND 4.0 协议 进行共享。如有需求,可前往北宇治字幕组的字幕仓库下载往期制作的外挂字幕。
当前招募
翻译 | 日语参考等级n2以上或能够听懂生肉内容并保证正确率,有经验者优先
校对 | 日语参考等级n1,善于发现翻译的错误
美工 | 熟练使用PS/AI等软件,能进行图片设计
时轴 | 熟练使用Aeg打轴/校轴并设置合适的样式、字体或屏幕字
分流 | 电脑/NAS能长时间开机,有足够的空间和上行带宽且至少具备ipv6公网,为组内资源分流
有意者加群:招募群(232487445)交流群(713548082)TG群(@KitaUji)
]]>
+ 
爲了您的播放能正確顯示字幕效果,我們推薦您觀看內封源使用 MPV 播放器,或者掛載 XySubFilter with libass字幕濾鏡。
本組字幕作品基於 CC BY-NC-ND 4.0 協議 進行共享。如有需求,可前往北宇治字幕組的字幕倉庫下載往期製作的外掛字幕。
當前招募
翻譯 | 日語參考等級n2以上或能夠聽懂生肉內容並保證正確率,有經驗者優先
校對 | 日語參考等級n1,善於發現翻譯的錯誤
美工 | 熟練使用PS/AI等軟件,能進行圖片設計
時軸 | 熟練使用Aeg打軸/校軸並設置合適的樣式、字體或屏幕字
分流 | 電腦/NAS能長時間開機,有足夠的空間和上行帶寬且至少具備ipv6公網,爲組內資源分流
有意者加羣:招募羣(232487445)交流羣(713548082)TG羣(@KitaUji)
]]>
@@ -229,7 +229,7 @@ class RssParserTest {
http://share.dmhy.org/topics/view/677457_Katsute_Mahou_Shoujo_to_Aku_wa_Tekitai_shiteita_07v2_WebRip_HEVC_AAC.html
Thu, 22 Aug 2024 21:15:30 +0800
- 
为了您的播放能正确显示字幕效果,我们推荐您观看内封源使用 MPV 播放器,或者挂载 XySubFilter with libass字幕滤镜。
本组字幕作品基于 CC BY-NC-ND 4.0 协议 进行共享。如有需求,可前往北宇治字幕组的字幕仓库下载往期制作的外挂字幕。
当前招募
翻译 | 日语参考等级n2以上或能够听懂生肉内容并保证正确率,有经验者优先
校对 | 日语参考等级n1,善于发现翻译的错误
美工 | 熟练使用PS/AI等软件,能进行图片设计
时轴 | 熟练使用Aeg打轴/校轴并设置合适的样式、字体或屏幕字
分流 | 电脑/NAS能长时间开机,有足够的空间和上行带宽且至少具备ipv6公网,为组内资源分流
有意者加群:招募群(232487445)交流群(713548082)TG群(@KitaUji)
]]>
+ 
爲了您的播放能正確顯示字幕效果,我們推薦您觀看內封源使用 MPV 播放器,或者掛載 XySubFilter with libass字幕濾鏡。
本組字幕作品基於 CC BY-NC-ND 4.0 協議 進行共享。如有需求,可前往北宇治字幕組的字幕倉庫下載往期製作的外掛字幕。
當前招募
翻譯 | 日語參考等級n2以上或能夠聽懂生肉內容並保證正確率,有經驗者優先
校對 | 日語參考等級n1,善於發現翻譯的錯誤
美工 | 熟練使用PS/AI等軟件,能進行圖片設計
時軸 | 熟練使用Aeg打軸/校軸並設置合適的樣式、字體或屏幕字
分流 | 電腦/NAS能長時間開機,有足夠的空間和上行帶寬且至少具備ipv6公網,爲組內資源分流
有意者加羣:招募羣(232487445)交流羣(713548082)TG羣(@KitaUji)
]]>
@@ -247,7 +247,7 @@ class RssParserTest {
http://share.dmhy.org/topics/view/677370_LoliHouse_Katsute_Mahou_Shoujo_to_Aku_wa_Tekitai_shiteita_-_07_WebRip_1080p_HEVC-10bit_AAC.html
Wed, 21 Aug 2024 10:53:28 +0800
- 
魔法少女与邪恶曾经敌对。 / 曾经、魔法少女和邪恶相互为敌。
Katsute Mahou Shoujo to Aku wa Tekitai shiteita
かつて魔法少女と悪は敵対していた。
字幕:Bilibili Global
脚本:S01T004721
压制:Анастасия
本片简繁字幕均经过繁化姬处理后生成,请自行判断下载;如有措辞不当,概不负责。
本组作品首发于: acg.rip | dmhy.org | bangumi.moe | nyaa.si
各站发布情况取决于站点可用性,如有缺失烦请移步其他站点下载。
为了顺利地观看我们的作品,推荐大家使用以下播放器:
Windows:mpv(教程)
macOS:IINA
iOS/Android:VLC media player
... ]]>
+ 
魔法少女與邪惡曾經敵對。 / 曾經、魔法少女和邪惡相互爲敵。
Katsute Mahou Shoujo to Aku wa Tekitai shiteita
かつて魔法少女と悪は敵対していた。
字幕:Bilibili Global
腳本:S01T004721
壓制:Анастасия
本片簡繁字幕均經過繁化姬處理後生成,請自行判斷下載;如有措辭不當,概不負責。
本組作品首發於: acg.rip | dmhy.org | bangumi.moe | nyaa.si
各站發佈情況取決於站點可用性,如有缺失煩請移步其他站點下載。
爲了順利地觀看我們的作品,推薦大家使用以下播放器:
Windows:mpv(教程)
macOS:IINA
iOS/Android:VLC media player
... ]]>
diff --git a/app/shared/app-data/src/desktopTest/kotlin/domain/media/cache/AbstractTorrentMediaCacheEngineTest.kt b/app/shared/app-data/src/desktopTest/kotlin/domain/media/cache/AbstractTorrentMediaCacheEngineTest.kt
index dff7276f0..388550e0b 100644
--- a/app/shared/app-data/src/desktopTest/kotlin/domain/media/cache/AbstractTorrentMediaCacheEngineTest.kt
+++ b/app/shared/app-data/src/desktopTest/kotlin/domain/media/cache/AbstractTorrentMediaCacheEngineTest.kt
@@ -56,7 +56,7 @@ abstract class AbstractTorrentMediaCacheEngineTest {
protected val testMedia = createTestDefaultMedia(
mediaId = "dmhy.2",
mediaSourceId = "dmhy",
- originalTitle = "夜晚的水母不会游泳 02 测试剧集",
+ originalTitle = "夜晚的水母不會游泳 02 測試劇集",
download = ResourceLocation.MagnetLink("magnet:?xt=urn:btih:1"),
originalUrl = "https://example.com/1",
publishedTime = 1724493292758,
@@ -64,7 +64,7 @@ abstract class AbstractTorrentMediaCacheEngineTest {
properties = createTestMediaProperties(
subtitleLanguageIds = listOf("CHT"),
resolution = "1080P",
- alliance = "北宇治字幕组北宇治字幕组北宇治字幕组北宇治字幕组北宇治字幕组北宇治字幕组北宇治字幕组北宇治字幕组",
+ alliance = "北宇治字幕組北宇治字幕組北宇治字幕組北宇治字幕組北宇治字幕組北宇治字幕組北宇治字幕組北宇治字幕組",
size = 233.megaBytes,
subtitleKind = null,
),
diff --git a/app/shared/app-data/src/desktopTest/kotlin/domain/media/cache/TorrentMediaCacheStorageTest.kt b/app/shared/app-data/src/desktopTest/kotlin/domain/media/cache/TorrentMediaCacheStorageTest.kt
index 7f8e6d21b..4459471fb 100644
--- a/app/shared/app-data/src/desktopTest/kotlin/domain/media/cache/TorrentMediaCacheStorageTest.kt
+++ b/app/shared/app-data/src/desktopTest/kotlin/domain/media/cache/TorrentMediaCacheStorageTest.kt
@@ -94,7 +94,7 @@ class TorrentMediaCacheStorageTest : AbstractTorrentMediaCacheEngineTest() {
subjectNames = emptyList(),
episodeSort = EpisodeSort("02"),
episodeEp = EpisodeSort("02"),
- episodeName = "测试剧集",
+ episodeName = "測試劇集",
)
///////////////////////////////////////////////////////////////////////////
@@ -288,7 +288,7 @@ class TorrentMediaCacheStorageTest : AbstractTorrentMediaCacheEngineTest() {
val testMedia2 = createTestDefaultMedia(
mediaId = "dmhy.3",
mediaSourceId = "dmhy",
- originalTitle = "夜晚的水母不会游泳 02 测试剧集2",
+ originalTitle = "夜晚的水母不會游泳 02 測試劇集2",
download = ResourceLocation.MagnetLink("magnet:?xt=urn:btih:2"),
originalUrl = "https://example.com/2",
publishedTime = 1724493292759,
diff --git a/app/shared/app-platform/src/commonMain/kotlin/tools/WeekFormatter.kt b/app/shared/app-platform/src/commonMain/kotlin/tools/WeekFormatter.kt
index 7351f331a..063e93b97 100644
--- a/app/shared/app-platform/src/commonMain/kotlin/tools/WeekFormatter.kt
+++ b/app/shared/app-platform/src/commonMain/kotlin/tools/WeekFormatter.kt
@@ -28,7 +28,7 @@ class WeekFormatter(
/**
* 如果是本周内, 则显示周几;
- * 如果是下周, 则显示 "下周几";
+ * 如果是下周, 则显示 "下週幾";
* 其他情况, 包括任意过去时间, 都显示为 "年-月-日", 会尽量省略年份.
*/
fun format(
diff --git a/app/shared/src/commonMain/kotlin/ui/profile/auth/AniContactList.kt b/app/shared/src/commonMain/kotlin/ui/profile/auth/AniContactList.kt
index d347c2a31..f899d7544 100644
--- a/app/shared/src/commonMain/kotlin/ui/profile/auth/AniContactList.kt
+++ b/app/shared/src/commonMain/kotlin/ui/profile/auth/AniContactList.kt
@@ -66,11 +66,11 @@ fun AniContactList(
{ browserNavigator.openJoinGroup(context) },
icon = {
Icon(
- AniIcons.QqRoundedOutline, "QQ 群",
+ AniIcons.QqRoundedOutline, "QQ 羣",
Modifier.size(ContactIconSize),
)
},
- label = { Text("QQ 群") },
+ label = { Text("QQ 羣") },
)
SuggestionChip(
diff --git a/app/shared/src/commonMain/kotlin/ui/subject/episode/details/components/PlayingEpisodeItem.kt b/app/shared/src/commonMain/kotlin/ui/subject/episode/details/components/PlayingEpisodeItem.kt
index ed9183420..3c3ef5b83 100644
--- a/app/shared/src/commonMain/kotlin/ui/subject/episode/details/components/PlayingEpisodeItem.kt
+++ b/app/shared/src/commonMain/kotlin/ui/subject/episode/details/components/PlayingEpisodeItem.kt
@@ -106,7 +106,7 @@ fun PlayingEpisodeItem(
),
verticalAlignment = Alignment.CenterVertically,
) {
- // 标题和"看过"按钮
+ // 标题和"看過"按钮
// padding 以 text 的为准, top = bottom = 8 + 12 = 20
FlowRow(
Modifier.padding(vertical = 12.dp).weight(1f),
@@ -183,7 +183,7 @@ fun PlayingEpisodeItem(
// 上面的 InfoRow 的 Icon 有 8dp padding
Spacer(Modifier.height(rowSpacing - 8.dp))
} else {
- Spacer(Modifier.height(8.dp)) // 额外 pad 一点, 否则 "选择数据源" 按钮到 "看过" 按钮之间有点挤
+ Spacer(Modifier.height(8.dp)) // 额外 pad 一点, 否则 "選擇數據源" 按钮到 "看過" 按钮之间有点挤
}
ProvideTextStyle(MaterialTheme.typography.labelLarge) {
diff --git a/app/shared/src/commonTest/kotlin/ui/cache/components/CacheEpisodeStateTest.kt b/app/shared/src/commonTest/kotlin/ui/cache/components/CacheEpisodeStateTest.kt
index d766317ea..fdf05afa9 100644
--- a/app/shared/src/commonTest/kotlin/ui/cache/components/CacheEpisodeStateTest.kt
+++ b/app/shared/src/commonTest/kotlin/ui/cache/components/CacheEpisodeStateTest.kt
@@ -54,7 +54,7 @@ class CacheEpisodeStateTest {
@Suppress("SameParameterValue")
private fun cacheEpisode(
sort: Int = 1,
- displayName: String = "翻转孤独",
+ displayName: String = "翻轉孤獨",
subjectId: Int = 1,
episodeId: Int = 1,
initialPaused: CacheEpisodePaused = when (sort % 2) {
diff --git a/app/shared/src/commonTest/kotlin/ui/subject/collection/components/AiringProgressTests.kt b/app/shared/src/commonTest/kotlin/ui/subject/collection/components/AiringProgressTests.kt
index b1f54070b..71d118ff9 100644
--- a/app/shared/src/commonTest/kotlin/ui/subject/collection/components/AiringProgressTests.kt
+++ b/app/shared/src/commonTest/kotlin/ui/subject/collection/components/AiringProgressTests.kt
@@ -98,156 +98,156 @@ class AiringProgressTests {
val watched1 = ContinueWatchingStatus.Watched(EpisodeSort(1), EpisodeSort(1), Invalid)
val done = Done
- add("未开播, 没有时间") {
+ add("未開播, 沒有時間") {
create(UPCOMING, null, ep = NotOnAir(Invalid)).run {
- assertEquals("未开播 · 预定全 12 话", airingLabel)
+ assertEquals("未開播 · 預定全 12 話", airingLabel)
assertEquals(false, highlightProgress)
- assertEquals("还未开播", buttonText)
+ assertEquals("還未開播", buttonText)
assertEquals(false, buttonIsPrimary)
}
}
- add("未开播但是有最新剧集 (bgm 条目数据问题)") {
+ add("未開播但是有最新劇集 (bgm 條目數據問題)") {
create(UPCOMING, 1, ep = NotOnAir(Invalid)).run {
- assertEquals("未开播 · 预定全 12 话", airingLabel)
+ assertEquals("未開播 · 預定全 12 話", airingLabel)
assertEquals(false, highlightProgress)
- assertEquals("还未开播", buttonText)
+ assertEquals("還未開播", buttonText)
assertEquals(false, buttonIsPrimary)
}
}
- add("未开播, 有开播时间") {
+ add("未開播, 有開播時間") {
create(UPCOMING, null, ep = NotOnAir(aug24)).run {
- assertEquals("未开播 · 预定全 12 话", airingLabel)
+ assertEquals("未開播 · 預定全 12 話", airingLabel)
assertEquals(false, highlightProgress)
- assertEquals("明天开播", buttonText)
+ assertEquals("明天開播", buttonText)
assertEquals(false, buttonIsPrimary)
}
}
- add("未开播, 有开播时间 (下个月)") {
+ add("未開播, 有開播時間 (下個月)") {
create(UPCOMING, null, ep = NotOnAir(sep30)).run {
- assertEquals("未开播 · 预定全 12 话", airingLabel)
+ assertEquals("未開播 · 預定全 12 話", airingLabel)
assertEquals(false, highlightProgress)
- assertEquals("9 月 30 日开播", buttonText)
+ assertEquals("9 月 30 日開播", buttonText)
assertEquals(false, buttonIsPrimary)
}
}
- add("未开播, 看过第一集 (偷跑)") {
+ add("未開播, 看過第一集 (偷跑)") {
create(UPCOMING, null, ep = watched1).run {
- assertEquals("未开播 · 预定全 12 话", airingLabel)
+ assertEquals("未開播 · 預定全 12 話", airingLabel)
assertEquals(false, highlightProgress)
- assertEquals("看过 01", buttonText)
+ assertEquals("看過 01", buttonText)
assertEquals(false, buttonIsPrimary)
}
}
- add("未开播, 看完了") {
+ add("未開播, 看完了") {
create(UPCOMING, null, ep = done).run {
- assertEquals("未开播 · 预定全 12 话", airingLabel)
+ assertEquals("未開播 · 預定全 12 話", airingLabel)
assertEquals(false, highlightProgress)
assertEquals("已看完", buttonText)
assertEquals(false, buttonIsPrimary)
}
}
- add("连载中, 还没开始看") {
+ add("連載中, 還沒開始看") {
create(ON_AIR, null, ep = Start).run {
- assertEquals("连载中 · 预定全 12 话", airingLabel)
+ assertEquals("連載中 · 預定全 12 話", airingLabel)
assertEquals(false, highlightProgress)
- assertEquals("开始观看", buttonText)
+ assertEquals("開始觀看", buttonText)
assertEquals(true, buttonIsPrimary)
}
}
- add("连载中, 剧集列表还未知, 看完了") {
+ add("連載中, 劇集列表還未知, 看完了") {
create(ON_AIR, null, ep = Done).run {
- assertEquals("已看完 · 预定全 12 话", airingLabel)
+ assertEquals("已看完 · 預定全 12 話", airingLabel)
assertEquals(false, highlightProgress)
assertEquals("已看完", buttonText)
assertEquals(false, buttonIsPrimary)
}
}
- add("连载到 2, 看完了") {
+ add("連載到 2, 看完了") {
create(ON_AIR, 2, ep = Done).run {
- assertEquals("已看完 · 预定全 12 话", airingLabel)
+ assertEquals("已看完 · 預定全 12 話", airingLabel)
assertEquals(false, highlightProgress)
assertEquals("已看完", buttonText)
assertEquals(false, buttonIsPrimary)
}
}
- add("连载到 1, 看过 2, 没有 3 的开播时间") {
+ add("連載到 1, 看過 2, 沒有 3 的開播時間") {
create(ON_AIR, 1, ep = watched2).run {
- assertEquals("看过 02 · 预定全 12 话", airingLabel)
+ assertEquals("看過 02 · 預定全 12 話", airingLabel)
assertEquals(false, highlightProgress)
- assertEquals("看过 02", buttonText)
+ assertEquals("看過 02", buttonText)
assertEquals(false, buttonIsPrimary)
}
}
- add("连载到 1, 看过 2, 有 3 的开播时间") {
+ add("連載到 1, 看過 2, 有 3 的開播時間") {
create(ON_AIR, 1, ep = ContinueWatchingStatus.Watched(EpisodeSort(2), EpisodeSort(2), aug24)).run {
- assertEquals("看过 02 · 预定全 12 话", airingLabel)
+ assertEquals("看過 02 · 預定全 12 話", airingLabel)
assertEquals(false, highlightProgress)
assertEquals("明天更新", buttonText)
assertEquals(false, buttonIsPrimary)
}
}
- add("连载到 2, 看过 1, 没有下集的开播时间") {
+ add("連載到 2, 看過 1, 沒有下集的開播時間") {
create(
ON_AIR, 2,
ep = ContinueWatchingStatus.Watched(EpisodeSort(1), EpisodeSort(1), Invalid),
).run {
- assertEquals("看过 01 · 预定全 12 话", airingLabel)
+ assertEquals("看過 01 · 預定全 12 話", airingLabel)
assertEquals(false, highlightProgress)
- assertEquals("看过 01", buttonText)
+ assertEquals("看過 01", buttonText)
assertEquals(false, buttonIsPrimary)
}
}
- add("连载到 2, 看过 1, 有下集开播时间") {
+ add("連載到 2, 看過 1, 有下集開播時間") {
create(
ON_AIR, 2,
ep = ContinueWatchingStatus.Watched(EpisodeSort(1), EpisodeSort(1), aug24),
).run {
- assertEquals("看过 01 · 预定全 12 话", airingLabel)
+ assertEquals("看過 01 · 預定全 12 話", airingLabel)
assertEquals(false, highlightProgress)
assertEquals("明天更新", buttonText)
assertEquals(false, buttonIsPrimary)
}
}
- add("连载到 2, 看过 1, 可以看 2") {
+ add("連載到 2, 看過 1, 可以看 2") {
create(
ON_AIR, 2,
ep = ContinueWatchingStatus.Continue(EpisodeSort(2), EpisodeSort(2), EpisodeSort(1), EpisodeSort(1)),
).run {
- assertEquals("连载至 02 · 预定全 12 话", airingLabel)
+ assertEquals("連載至 02 · 預定全 12 話", airingLabel)
assertEquals(true, highlightProgress)
- assertEquals("继续观看 02", buttonText)
+ assertEquals("繼續觀看 02", buttonText)
assertEquals(true, buttonIsPrimary)
}
}
- add("连载到 2, 看过 2, 没有下集开播时间") {
+ add("連載到 2, 看過 2, 沒有下集開播時間") {
create(ON_AIR, 2, ep = watched2).run {
- assertEquals("看过 02 · 预定全 12 话", airingLabel)
+ assertEquals("看過 02 · 預定全 12 話", airingLabel)
assertEquals(false, highlightProgress)
- assertEquals("看过 02", buttonText)
+ assertEquals("看過 02", buttonText)
assertEquals(false, buttonIsPrimary)
}
}
- add("连载到 2, 看过 2, 有下集开播时间") {
+ add("連載到 2, 看過 2, 有下集開播時間") {
create(
ON_AIR, 2,
ep = ContinueWatchingStatus.Watched(EpisodeSort(2), EpisodeSort(2), aug24),
).run {
- assertEquals("看过 02 · 预定全 12 话", airingLabel)
+ assertEquals("看過 02 · 預定全 12 話", airingLabel)
assertEquals(false, highlightProgress)
assertEquals("明天更新", buttonText)
assertEquals(false, buttonIsPrimary)
}
}
- add("已完结, 没看过") {
+ add("已完結, 沒看過") {
create(COMPLETED, 12, ep = Start).run {
- assertEquals("已完结 · 全 12 话", airingLabel)
+ assertEquals("已完結 · 全 12 話", airingLabel)
assertEquals(false, highlightProgress)
- assertEquals("开始观看", buttonText)
+ assertEquals("開始觀看", buttonText)
assertEquals(true, buttonIsPrimary)
}
}
- add("已完结, 看了 1") {
+ add("已完結, 看了 1") {
create(
COMPLETED, 12,
ep = ContinueWatchingStatus.Continue(
@@ -257,26 +257,26 @@ class AiringProgressTests {
EpisodeSort(1),
),
).run {
- assertEquals("看过 01 · 全 12 话", airingLabel)
+ assertEquals("看過 01 · 全 12 話", airingLabel)
assertEquals(false, highlightProgress)
- assertEquals("继续观看 02", buttonText)
+ assertEquals("繼續觀看 02", buttonText)
assertEquals(true, buttonIsPrimary)
}
}
- add("已完结, 看了 1, 没有下一集") {
- // 注意, 只要是计算为了 ContinueWatchingStatus.Watched, 就只能显示 "看过"
+ add("已完結, 看了 1, 沒有下一集") {
+ // 注意, 只要是计算为了 ContinueWatchingStatus.Watched, 就只能显示 "看過"
// 不过如果总过有 12 集, 这种情况下 ContinueWatchingStatus 不会是 Watched.
// 这个 case 只是为了更稳健
create(COMPLETED, 12, ep = watched1).run {
- assertEquals("看过 01 · 全 12 话", airingLabel)
+ assertEquals("看過 01 · 全 12 話", airingLabel)
assertEquals(false, highlightProgress)
- assertEquals("看过 01", buttonText)
+ assertEquals("看過 01", buttonText)
assertEquals(false, buttonIsPrimary)
}
}
- add("已完结, 看完了") {
+ add("已完結, 看完了") {
create(COMPLETED, 12, ep = done).run {
- assertEquals("已看完 · 全 12 话", airingLabel)
+ assertEquals("已看完 · 全 12 話", airingLabel)
assertEquals(false, highlightProgress)
assertEquals("已看完", buttonText)
assertEquals(false, buttonIsPrimary)
@@ -285,23 +285,23 @@ class AiringProgressTests {
// “看过 xx,全 xx 话” 同时显示 ep 和 sort #1047
- add("同时显示 ep 和 sort: 连载到 2, 看过 2, 没有下集开播时间") {
+ add("同時顯示 ep 和 sort: 連載到 2, 看過 2, 沒有下集開播時間") {
create(ON_AIR, 23, ep = watched22).run {
- assertEquals("看过 10 (22) · 预定全 12 话", airingLabel)
+ assertEquals("看過 10 (22) · 預定全 12 話", airingLabel)
assertEquals(false, highlightProgress)
- assertEquals("看过 10 (22)", buttonText)
+ assertEquals("看過 10 (22)", buttonText)
assertEquals(false, buttonIsPrimary)
}
}
- add("同时显示 ep 和 sort: 看过 22, 全 12 话") {
+ add("同時顯示 ep 和 sort: 看過 22, 全 12 話") {
create(COMPLETED, 23, ep = watched22).run {
- assertEquals("看过 10 (22) · 全 12 话", airingLabel)
+ assertEquals("看過 10 (22) · 全 12 話", airingLabel)
assertEquals(false, highlightProgress)
- assertEquals("看过 10 (22)", buttonText)
+ assertEquals("看過 10 (22)", buttonText)
assertEquals(false, buttonIsPrimary)
}
}
- add("同时显示 ep 和 sort: 连载到 23, 看过 22, 可以看 23") {
+ add("同時顯示 ep 和 sort: 連載到 23, 看過 22, 可以看 23") {
create(
ON_AIR, 23,
ep = ContinueWatchingStatus.Continue(
@@ -311,9 +311,9 @@ class AiringProgressTests {
watchedEpisodeSort = EpisodeSort(22),
),
).run {
- assertEquals("连载至 11 (23) · 预定全 12 话", airingLabel)
+ assertEquals("連載至 11 (23) · 預定全 12 話", airingLabel)
assertEquals(true, highlightProgress)
- assertEquals("继续观看 11 (23)", buttonText)
+ assertEquals("繼續觀看 11 (23)", buttonText)
assertEquals(true, buttonIsPrimary)
}
}
diff --git a/app/shared/src/desktopTest/kotlin/ui/subject/cache/EpisodeCacheStateTest.kt b/app/shared/src/desktopTest/kotlin/ui/subject/cache/EpisodeCacheStateTest.kt
index bcf8f6282..54965c4bb 100644
--- a/app/shared/src/desktopTest/kotlin/ui/subject/cache/EpisodeCacheStateTest.kt
+++ b/app/shared/src/desktopTest/kotlin/ui/subject/cache/EpisodeCacheStateTest.kt
@@ -68,7 +68,7 @@ class EpisodeCacheStateTest {
EpisodeCacheInfo(
sort = EpisodeSort(1),
ep = EpisodeSort(1),
- title = "第一集的标题",
+ title = "第一集的標題",
watchStatus = UnifiedCollectionType.DOING,
hasPublished = true,
),
diff --git a/app/shared/ui-cache/src/commonMain/kotlin/ui/cache/components/CacheEpisodeState.kt b/app/shared/ui-cache/src/commonMain/kotlin/ui/cache/components/CacheEpisodeState.kt
index ab410a014..2c8678fd1 100644
--- a/app/shared/ui-cache/src/commonMain/kotlin/ui/cache/components/CacheEpisodeState.kt
+++ b/app/shared/ui-cache/src/commonMain/kotlin/ui/cache/components/CacheEpisodeState.kt
@@ -126,9 +126,9 @@ fun createTestMediaStats(): MediaStats = MediaStats.Unspecified
@TestOnly
val TestCacheEpisodes
get() = listOf(
- createTestCacheEpisode(1, "翻转孤独", 1),
- createTestCacheEpisode(2, "明天见", 1),
- createTestCacheEpisode(3, "火速增员", 1),
+ createTestCacheEpisode(1, "翻轉孤獨", 1),
+ createTestCacheEpisode(2, "明天見", 1),
+ createTestCacheEpisode(3, "火速增員", 1),
)
@OptIn(DelicateCoroutinesApi::class)
@@ -136,7 +136,7 @@ val TestCacheEpisodes
@TestOnly
fun createTestCacheEpisode(
sort: Int,
- displayName: String = "第 $sort 话",
+ displayName: String = "第 $sort 話",
subjectId: Int = 1,
episodeId: Int = sort,
initialState: CacheEpisodePaused = when (sort % 2) {
diff --git a/app/shared/ui-cache/src/commonMain/kotlin/ui/cache/components/CacheGroupState.kt b/app/shared/ui-cache/src/commonMain/kotlin/ui/cache/components/CacheGroupState.kt
index 82051dc95..1ce8099e8 100644
--- a/app/shared/ui-cache/src/commonMain/kotlin/ui/cache/components/CacheGroupState.kt
+++ b/app/shared/ui-cache/src/commonMain/kotlin/ui/cache/components/CacheGroupState.kt
@@ -84,9 +84,9 @@ internal val TestCacheGroupSates = listOf(
id = TestMediaList[0].mediaId,
commonInfo = CacheGroupCommonInfo(
subjectId = 1,
- "孤独摇滚",
+ "孤獨搖滾",
mediaSourceId = "mikan-mikanime-tv",
- allianceName = "某某字幕组",
+ allianceName = "某某字幕組",
),
episodes = TestCacheEpisodes,
stats = CacheGroupState.Stats(
diff --git a/app/shared/ui-cache/src/commonMain/kotlin/ui/cache/details/CacheGroupDetailsPage.kt b/app/shared/ui-cache/src/commonMain/kotlin/ui/cache/details/CacheGroupDetailsPage.kt
index 36d7c8395..c581474b4 100644
--- a/app/shared/ui-cache/src/commonMain/kotlin/ui/cache/details/CacheGroupDetailsPage.kt
+++ b/app/shared/ui-cache/src/commonMain/kotlin/ui/cache/details/CacheGroupDetailsPage.kt
@@ -115,7 +115,7 @@ fun MediaCacheDetailsScreen(
topBar = {
WindowDragArea {
TopAppBar(
- title = { Text("详情") },
+ title = { Text("詳情") },
navigationIcon = navigationIcon,
colors = AniThemeDefaults.topAppBarColors(),
windowInsets = windowInsets.only(WindowInsetsSides.Horizontal + WindowInsetsSides.Top),
diff --git a/app/shared/ui-cache/src/commonMain/kotlin/ui/cache/subject/AutoCacheGroup.kt b/app/shared/ui-cache/src/commonMain/kotlin/ui/cache/subject/AutoCacheGroup.kt
index d8860f22f..d3274dc54 100644
--- a/app/shared/ui-cache/src/commonMain/kotlin/ui/cache/subject/AutoCacheGroup.kt
+++ b/app/shared/ui-cache/src/commonMain/kotlin/ui/cache/subject/AutoCacheGroup.kt
@@ -22,15 +22,15 @@ fun SettingsScope.AutoCacheGroup(
onClickGlobalCacheManage: () -> Unit,
) {
// Group(
-// title = { Text("自动缓存") },
+// title = { Text("自動緩存") },
// description = {
-// Text("自动缓存未观看的剧集")
+// Text("自動緩存未觀看的劇集")
// },
// ) {
// var useGlobalSettings by remember { mutableStateOf(true) }
// SwitchItem(
-// title = { Text("使用全局设置") },
-// description = { Text("关闭后可为该番剧单独设置 (暂不支持单独设置)") },
+// title = { Text("使用全局設置") },
+// description = { Text("關閉後可爲該番劇單獨設置 (暫不支持單獨設置)") },
// checked = useGlobalSettings,
// onCheckedChange = { useGlobalSettings = !useGlobalSettings },
// enabled = false,
@@ -39,12 +39,12 @@ fun SettingsScope.AutoCacheGroup(
// AniAnimatedVisibility(!useGlobalSettings) {
// var sliderValue by remember { mutableFloatStateOf(0f) }
// SliderItem(
-// title = { Text("最大自动缓存话数") },
+// title = { Text("最大自動緩存話數") },
// description = {
// Row {
// Text(autoCacheDescription(sliderValue))
// if (sliderValue == 10f) {
-// Text("可能会占用大量空间", color = MaterialTheme.colorScheme.error)
+// Text("可能會佔用大量空間", color = MaterialTheme.colorScheme.error)
// }
// }
// },
@@ -64,7 +64,7 @@ fun SettingsScope.AutoCacheGroup(
// RowButtonItem(
// onClick = onClickGlobalCacheSettings,
// icon = { Icon(Icons.Rounded.ArrowOutward, null) },
-// ) { Text("查看全局设置") }
+// ) { Text("查看全局設置") }
// }
//
// }
diff --git a/app/shared/ui-cache/src/commonMain/kotlin/ui/cache/subject/EpisodeCacheListState.kt b/app/shared/ui-cache/src/commonMain/kotlin/ui/cache/subject/EpisodeCacheListState.kt
index d59c38ee1..b75e43cee 100644
--- a/app/shared/ui-cache/src/commonMain/kotlin/ui/cache/subject/EpisodeCacheListState.kt
+++ b/app/shared/ui-cache/src/commonMain/kotlin/ui/cache/subject/EpisodeCacheListState.kt
@@ -214,7 +214,7 @@ class EpisodeCacheListStateImpl(
} catch (e: Exception) {
// TODO: 处理 requestDelete exception
throw e
- // errorMessage.value = ErrorMessage.simple("删除缓存失败", e)
+ // errorMessage.value = ErrorMessage.simple("刪除緩存失敗", e)
}
}
}
diff --git a/app/shared/ui-cache/src/commonMain/kotlin/ui/cache/subject/MediaCacheStorageSelector.kt b/app/shared/ui-cache/src/commonMain/kotlin/ui/cache/subject/MediaCacheStorageSelector.kt
index 0d815d53d..7141c2bb6 100644
--- a/app/shared/ui-cache/src/commonMain/kotlin/ui/cache/subject/MediaCacheStorageSelector.kt
+++ b/app/shared/ui-cache/src/commonMain/kotlin/ui/cache/subject/MediaCacheStorageSelector.kt
@@ -35,7 +35,7 @@ fun SelectMediaStorageDialog(
) {
AlertDialog(
onDismissRequest = onDismissRequest,
- title = { Text("选择储存位置") },
+ title = { Text("選擇儲存位置") },
icon = { Icon(Icons.Rounded.Save, null) },
confirmButton = {
TextButton(onDismissRequest) {
diff --git a/app/shared/ui-comment/src/commonMain/kotlin/ui/comment/CommentDefaults.kt b/app/shared/ui-comment/src/commonMain/kotlin/ui/comment/CommentDefaults.kt
index f4a287730..789fe1cf3 100644
--- a/app/shared/ui-comment/src/commonMain/kotlin/ui/comment/CommentDefaults.kt
+++ b/app/shared/ui-comment/src/commonMain/kotlin/ui/comment/CommentDefaults.kt
@@ -145,7 +145,7 @@ object CommentDefaults {
) {
EditCommentDefaults.ActionButton(
imageVector = Icons.Outlined.ModeComment,
- contentDescription = "回复评论",
+ contentDescription = "回覆評論",
onClick = onClickReply,
iconSize = iconSize,
)
@@ -160,14 +160,14 @@ object CommentDefaults {
)
EditCommentDefaults.ActionButton(
imageVector = Icons.Outlined.HeartBroken,
- contentDescription = "拉黑用户",
+ contentDescription = "拉黑用戶",
onClick = onClickBlock,
iconSize = iconSize,
modifier = Modifier.size(height = size, width = expandableActionWidth),
)
EditCommentDefaults.ActionButton(
imageVector = Icons.Outlined.Report,
- contentDescription = "举报用户",
+ contentDescription = "舉報用戶",
onClick = onClickReport,
iconSize = iconSize,
modifier = Modifier.size(height = size, width = expandableActionWidth),
@@ -177,7 +177,7 @@ object CommentDefaults {
// 最后一个按钮不要有 ripple effect,因为有动画,看起来比较奇怪
EditCommentDefaults.ActionButton(
imageVector = Icons.Outlined.MoreHoriz,
- contentDescription = "展开更多评论功能",
+ contentDescription = "展開更多評論功能",
iconSize = iconSize,
onClick = { actionRowExpanded = true },
modifier = Modifier.size(height = size, width = size - expandableActionWidth),
@@ -220,7 +220,7 @@ object CommentDefaults {
}
if (hiddenReplyCount > 0) {
Text(
- text = "查看更多 $hiddenReplyCount 条回复>",
+ text = "查看更多 $hiddenReplyCount 條回覆>",
color = primaryColor,
modifier = Modifier
.fillMaxWidth()
diff --git a/app/shared/ui-comment/src/commonMain/kotlin/ui/comment/EditCommentDefaults.kt b/app/shared/ui-comment/src/commonMain/kotlin/ui/comment/EditCommentDefaults.kt
index 28c351832..910aae307 100644
--- a/app/shared/ui-comment/src/commonMain/kotlin/ui/comment/EditCommentDefaults.kt
+++ b/app/shared/ui-comment/src/commonMain/kotlin/ui/comment/EditCommentDefaults.kt
@@ -99,7 +99,7 @@ object EditCommentDefaults {
@Composable
fun CommentTextFieldPlaceholder(modifier: Modifier = Modifier) {
- Text(text = "发送评论", modifier, softWrap = false)
+ Text(text = "發送評論", modifier, softWrap = false)
}
@Composable
@@ -319,21 +319,21 @@ object EditCommentDefaults {
)
ActionButton(
imageVector = Icons.Outlined.FormatItalic,
- contentDescription = "斜体",
+ contentDescription = "斜體",
onClick = onClickItalic,
modifier = Modifier.size(height = size, width = expandableActionWidth),
enabled = actionEnabled,
)
ActionButton(
imageVector = Icons.Outlined.FormatUnderlined,
- contentDescription = "下划线",
+ contentDescription = "下劃線",
onClick = onClickUnderlined,
modifier = Modifier.size(height = size, width = expandableActionWidth),
enabled = actionEnabled,
)
ActionButton(
imageVector = Icons.Outlined.FormatStrikethrough,
- contentDescription = "删除线",
+ contentDescription = "刪除線",
onClick = onClickStrikethrough,
modifier = Modifier.size(height = size, width = expandableActionWidth),
enabled = actionEnabled,
@@ -348,7 +348,7 @@ object EditCommentDefaults {
)
ActionButton(
imageVector = Icons.Outlined.Image,
- contentDescription = "图片",
+ contentDescription = "圖片",
onClick = onClickImage,
modifier = Modifier.size(size),
enabled = actionEnabled,
@@ -356,7 +356,7 @@ object EditCommentDefaults {
if (actionRowExpanded) {
ActionButton(
imageVector = Icons.Outlined.Link,
- contentDescription = "链接",
+ contentDescription = "鏈接",
onClick = onClickUrl,
modifier = Modifier.size(height = size, width = expandableActionWidth),
enabled = actionEnabled,
@@ -365,7 +365,7 @@ object EditCommentDefaults {
// 最后一个按钮不要有 ripple effect,因为有动画,看起来比较奇怪
ActionButton(
imageVector = Icons.Outlined.MoreHoriz,
- contentDescription = "更多评论编辑功能",
+ contentDescription = "更多評論編輯功能",
enabled = true,
onClick = { actionRowExpanded = true },
modifier = Modifier.size(height = size, width = size - expandableActionWidth),
@@ -377,7 +377,7 @@ object EditCommentDefaults {
onClick = onPreview,
modifier = Modifier.padding(end = 4.dp),
) {
- Text(text = if (previewing) "编辑" else "预览")
+ Text(text = if (previewing) "編輯" else "預覽")
}
OutlinedButton(
onClick = onSend,
@@ -390,7 +390,7 @@ object EditCommentDefaults {
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.spacedBy(8.dp),
) {
- Text(text = "发送", textAlign = TextAlign.Center)
+ Text(text = "發送", textAlign = TextAlign.Center)
Icon(
imageVector = Icons.AutoMirrored.Rounded.Send,
modifier = Modifier.size(24.dp),
diff --git a/app/shared/ui-comment/src/commonMain/kotlin/ui/rating/Rating.kt b/app/shared/ui-comment/src/commonMain/kotlin/ui/rating/Rating.kt
index b6133576a..61bd8932a 100644
--- a/app/shared/ui-comment/src/commonMain/kotlin/ui/rating/Rating.kt
+++ b/app/shared/ui-comment/src/commonMain/kotlin/ui/rating/Rating.kt
@@ -55,7 +55,7 @@ fun Rating(
if (selfRatingScore != 0) {
Row(Modifier.padding(horizontal = 2.dp).align(Alignment.End)) {
Text(
- remember(selfRatingScore) { "你的评分: $selfRatingScore" },
+ remember(selfRatingScore) { "你的評分: $selfRatingScore" },
style = MaterialTheme.typography.labelMedium,
fontWeight = FontWeight.Bold,
maxLines = 1,
@@ -76,7 +76,7 @@ fun Rating(
Column(Modifier.padding(start = 8.dp), horizontalAlignment = Alignment.End) {
FiveRatingStars(score = rating.scoreFloat.toInt(), color = LocalContentColor.current)
Text(
- "${rating.total} 人评丨#${rating.rank}",
+ "${rating.total} 人評丨#${rating.rank}",
Modifier.padding(end = 2.dp),
style = MaterialTheme.typography.labelMedium,
maxLines = 1,
diff --git a/app/shared/ui-episode/src/commonMain/kotlin/ui/episode/AdaptivePlayerScreenLayout.kt b/app/shared/ui-episode/src/commonMain/kotlin/ui/episode/AdaptivePlayerScreenLayout.kt
index 8b2cfc855..98726505f 100644
--- a/app/shared/ui-episode/src/commonMain/kotlin/ui/episode/AdaptivePlayerScreenLayout.kt
+++ b/app/shared/ui-episode/src/commonMain/kotlin/ui/episode/AdaptivePlayerScreenLayout.kt
@@ -363,7 +363,7 @@ private fun TabRow(
Tab(
selected = pagerState.currentPage == 0,
onClick = { scope.launch { pagerState.animateScrollToPage(0) } },
- text = { Text("详情", softWrap = false) },
+ text = { Text("詳情", softWrap = false) },
selectedContentColor = MaterialTheme.colorScheme.primary,
unselectedContentColor = MaterialTheme.colorScheme.onSurface,
)
@@ -374,7 +374,7 @@ private fun TabRow(
val text by remember(commentCount) {
derivedStateOf {
val count = commentCount()
- if (count == null) "评论" else "评论 $count"
+ if (count == null) "評論" else "評論 $count"
}
}
Text(text, softWrap = false)
diff --git a/app/shared/ui-episode/src/commonMain/kotlin/ui/episode/PlayingEpisodeSummary.kt b/app/shared/ui-episode/src/commonMain/kotlin/ui/episode/PlayingEpisodeSummary.kt
index 45f523a25..849e47469 100644
--- a/app/shared/ui-episode/src/commonMain/kotlin/ui/episode/PlayingEpisodeSummary.kt
+++ b/app/shared/ui-episode/src/commonMain/kotlin/ui/episode/PlayingEpisodeSummary.kt
@@ -126,7 +126,7 @@ fun PlayingEpisodeSummaryRow(
verticalArrangement = Arrangement.spacedBy(16.dp, alignment = Alignment.CenterVertically)
) {
TonalButtonWithIcon("分享", Icons.Rounded.Share, onClickShare)
- TonalButtonWithIcon("下载", Icons.Rounded.Download, onClickDownload)
+ TonalButtonWithIcon("下載", Icons.Rounded.Download, onClickDownload)
}
}
}
@@ -148,7 +148,7 @@ fun PlayingEpisodeSummaryRow(
verticalArrangement = Arrangement.spacedBy(0.dp, alignment = Alignment.CenterVertically)
) {
TonalButtonWithIcon("分享", Icons.Rounded.Share, onClickShare)
- TonalButtonWithIcon("下载", Icons.Rounded.Download, onClickDownload)
+ TonalButtonWithIcon("下載", Icons.Rounded.Download, onClickDownload)
}
Box(Modifier.width(IntrinsicSize.Max)) {
diff --git a/app/shared/ui-exploration/src/commonMain/kotlin/ui/exploration/schedule/ScheduleItem.kt b/app/shared/ui-exploration/src/commonMain/kotlin/ui/exploration/schedule/ScheduleItem.kt
index 5579d1289..55f886a53 100644
--- a/app/shared/ui-exploration/src/commonMain/kotlin/ui/exploration/schedule/ScheduleItem.kt
+++ b/app/shared/ui-exploration/src/commonMain/kotlin/ui/exploration/schedule/ScheduleItem.kt
@@ -100,7 +100,7 @@ fun ScheduleItem(
},
trailingContent = action,
colors = colors,
- modifier = modifier.clickable(role = Role.Button, onClickLabel = "查看详情", onClick = onClick),
+ modifier = modifier.clickable(role = Role.Button, onClickLabel = "查看詳情", onClick = onClick),
)
}
@@ -203,7 +203,7 @@ object ScheduleItemDefaults {
val sortDisplay = if (episodeEp == null || episodeEp == episodeSort) {
if (episodeSort is EpisodeSort.Normal) {
- "第 $sortText 话"
+ "第 $sortText 話"
} else {
sortText
}
@@ -211,7 +211,7 @@ object ScheduleItemDefaults {
check(epText != null)
// episodeEp != episodeSort
if (episodeSort is EpisodeSort.Normal && episodeEp is EpisodeSort.Normal) {
- "第 $epText ($sortText) 话"
+ "第 $epText ($sortText) 話"
} else {
"$epText ($sortText)"
}
diff --git a/app/shared/ui-exploration/src/commonMain/kotlin/ui/exploration/search/SubjectPreviewItem.kt b/app/shared/ui-exploration/src/commonMain/kotlin/ui/exploration/search/SubjectPreviewItem.kt
index 990cf1d6c..80ff8318a 100644
--- a/app/shared/ui-exploration/src/commonMain/kotlin/ui/exploration/search/SubjectPreviewItem.kt
+++ b/app/shared/ui-exploration/src/commonMain/kotlin/ui/exploration/search/SubjectPreviewItem.kt
@@ -77,7 +77,7 @@ class SubjectPreviewItemInfo(
append(" · ")
}
airingInfo.computeTotalEpisodeText()?.let {
- append("全 $mainEpisodeCount 话")
+ append("全 $mainEpisodeCount 話")
append(" · ")
}
@@ -106,7 +106,7 @@ class SubjectPreviewItemInfo(
if (persons.isEmpty()) return@let null
buildString {
- append("制作: ")
+ append("製作: ")
persons.forEachIndexed { index, relatedPersonInfo ->
append(relatedPersonInfo.name)
if (index != persons.lastIndex) {
@@ -159,9 +159,9 @@ internal val TestSubjectPreviewItemInfos
SubjectPreviewItemInfo(
subjectId = 1,
imageUrl = "https://example.com/image.jpg",
- title = "关于我转生变成史莱姆这档事 第三季",
- tags = "2024 年 10 月 · 全 24 话 · 奇幻 / 战斗",
- staff = "制作: 8bit · 中山敦史 · 泽野弘之",
+ title = "關於我轉生變成史萊姆這檔事 第三季",
+ tags = "2024 年 10 月 · 全 24 話 · 奇幻 / 戰鬥",
+ staff = "製作: 8bit · 中山敦史 · 澤野弘之",
actors = "配音: 岡咲美保 · 前野智昭 · 古川慎",
rating = RatingInfo(
rank = 123,
@@ -175,9 +175,9 @@ internal val TestSubjectPreviewItemInfos
SubjectPreviewItemInfo(
subjectId = 2,
imageUrl = "https://example.com/image.jpg",
- title = "关于我转生变成史莱姆这档事 第三季",
- tags = "2024 年 10 月 · 全 24 话 · 奇幻 / 战斗",
- staff = "制作: 8bit · 中山敦史 · 泽野弘之",
+ title = "關於我轉生變成史萊姆這檔事 第三季",
+ tags = "2024 年 10 月 · 全 24 話 · 奇幻 / 戰鬥",
+ staff = "製作: 8bit · 中山敦史 · 澤野弘之",
actors = "配音: 岡咲美保 · 前野智昭 · 古川慎",
rating = RatingInfo(
rank = 123,
@@ -262,12 +262,12 @@ private fun PreviewSubjectItemLayout() = ProvideCompositionLocalsForPreview {
{},
image = { SubjectItemDefaults.Image("a", Modifier.fillMaxSize(), null) },
title = { maxLines ->
- Text("关于我转生变成史莱姆这档事 第三季", maxLines = maxLines)
+ Text("關於我轉生變成史萊姆這檔事 第三季", maxLines = maxLines)
},
- tags = { Text("2024 年 10 月 · 全 24 话 · 奇幻 / 战斗") },
+ tags = { Text("2024 年 10 月 · 全 24 話 · 奇幻 / 戰鬥") },
extraInfo = {
Text("配音: 岡咲美保 · 前野智昭 · 古川慎")
- Text("制作: 8bit · 中山敦史 · 泽野弘之 ")
+ Text("製作: 8bit · 中山敦史 · 澤野弘之 ")
},
rating = {},
actions = {
diff --git a/app/shared/ui-exploration/src/commonMain/kotlin/ui/exploration/search/SuggestionSearchBarState.kt b/app/shared/ui-exploration/src/commonMain/kotlin/ui/exploration/search/SuggestionSearchBarState.kt
index bb950b49f..97a9135bf 100644
--- a/app/shared/ui-exploration/src/commonMain/kotlin/ui/exploration/search/SuggestionSearchBarState.kt
+++ b/app/shared/ui-exploration/src/commonMain/kotlin/ui/exploration/search/SuggestionSearchBarState.kt
@@ -211,7 +211,7 @@ fun SuggestionSearchBar(
trailingContent = if (presentation.previewType == SuggestionSearchPreviewType.HISTORY) {
{
IconButton({ state.removeHistory(text) }, enabled = state.removingHistory != text) {
- Icon(Icons.Default.Close, contentDescription = "删除 $text")
+ Icon(Icons.Default.Close, contentDescription = "刪除 $text")
}
}
} else null,
diff --git a/app/shared/ui-exploration/src/commonMain/kotlin/ui/exploration/trends/TrendingSubjectsCarousel.kt b/app/shared/ui-exploration/src/commonMain/kotlin/ui/exploration/trends/TrendingSubjectsCarousel.kt
index 7fc017c1d..44072a735 100644
--- a/app/shared/ui-exploration/src/commonMain/kotlin/ui/exploration/trends/TrendingSubjectsCarousel.kt
+++ b/app/shared/ui-exploration/src/commonMain/kotlin/ui/exploration/trends/TrendingSubjectsCarousel.kt
@@ -146,25 +146,25 @@ val TestTrendingSubjectInfos
TrendingSubjectInfo(
bangumiId = 467461,
name = "ダンダダン",
- nameCn = "胆大党",
+ nameCn = "膽大黨",
imageLarge = "https://lain.bgm.tv/pic/cover/l/44/7d/467461_HHw4K.jpg",
),
TrendingSubjectInfo(
bangumiId = 425998,
name = "Re:ゼロから始める異世界生活 3rd season",
- nameCn = "Re:从零开始的异世界生活 第三季 袭击篇",
+ nameCn = "Re:從零開始的異世界生活 第三季 襲擊篇",
imageLarge = "https://lain.bgm.tv/pic/cover/l/26/d6/425998_dnzr8.jpg",
),
TrendingSubjectInfo(
bangumiId = 389156,
name = "チ。 ―地球の運動について―",
- nameCn = "地。 ―关于地球的运动―",
+ nameCn = "地。 ―關於地球的運動―",
imageLarge = "https://lain.bgm.tv/pic/cover/l/5f/84/389156_J4gqQ.jpg",
),
TrendingSubjectInfo(
bangumiId = 464376,
name = "負けヒロインが多すぎる!",
- nameCn = "败犬女主太多了!",
+ nameCn = "敗犬女主太多了!",
imageLarge = "https://lain.bgm.tv/pic/cover/l/e4/dc/464376_NsZRw.jpg",
),
)
diff --git a/app/shared/ui-exploration/src/commonTest/kotlin/ui/exploration/schedule/EpisodeWithAiringTimeDefaultsTest.kt b/app/shared/ui-exploration/src/commonTest/kotlin/ui/exploration/schedule/EpisodeWithAiringTimeDefaultsTest.kt
index c48cd62a1..8ea32fab8 100644
--- a/app/shared/ui-exploration/src/commonTest/kotlin/ui/exploration/schedule/EpisodeWithAiringTimeDefaultsTest.kt
+++ b/app/shared/ui-exploration/src/commonTest/kotlin/ui/exploration/schedule/EpisodeWithAiringTimeDefaultsTest.kt
@@ -18,32 +18,32 @@ import kotlin.test.assertEquals
class EpisodeWithAiringTimeDefaultsTest {
@Test
fun `renderEpisodeDisplay sort only`() {
- assertEquals("第 1 话", renderEpisodeDisplay(EpisodeSort(1), null, null))
+ assertEquals("第 1 話", renderEpisodeDisplay(EpisodeSort(1), null, null))
}
@Test
fun `renderEpisodeDisplay sort with name`() {
- assertEquals("第 1 话 Foo", renderEpisodeDisplay(EpisodeSort(1), null, "Foo"))
+ assertEquals("第 1 話 Foo", renderEpisodeDisplay(EpisodeSort(1), null, "Foo"))
}
@Test
fun `renderEpisodeDisplay sort equal ep`() {
- assertEquals("第 1 话", renderEpisodeDisplay(EpisodeSort(1), EpisodeSort(1), null))
+ assertEquals("第 1 話", renderEpisodeDisplay(EpisodeSort(1), EpisodeSort(1), null))
}
@Test
fun `renderEpisodeDisplay sort equal ep with name`() {
- assertEquals("第 1 话 Foo", renderEpisodeDisplay(EpisodeSort(1), EpisodeSort(1), "Foo"))
+ assertEquals("第 1 話 Foo", renderEpisodeDisplay(EpisodeSort(1), EpisodeSort(1), "Foo"))
}
@Test
fun `renderEpisodeDisplay sort does not equal ep`() {
- assertEquals("第 1 (12) 话", renderEpisodeDisplay(EpisodeSort(12), EpisodeSort(1), null))
+ assertEquals("第 1 (12) 話", renderEpisodeDisplay(EpisodeSort(12), EpisodeSort(1), null))
}
@Test
fun `renderEpisodeDisplay sort does not equal ep with name`() {
- assertEquals("第 1 (12) 话 Foo", renderEpisodeDisplay(EpisodeSort(12), EpisodeSort(1), "Foo"))
+ assertEquals("第 1 (12) 話 Foo", renderEpisodeDisplay(EpisodeSort(12), EpisodeSort(1), "Foo"))
}
@Test
@@ -61,10 +61,10 @@ class EpisodeWithAiringTimeDefaultsTest {
@Test
fun `renderEpisodeDisplay unknown sort`() {
assertEquals(
- "剧场版 Foo",
+ "劇場版 Foo",
renderEpisodeDisplay(
- EpisodeSort("剧场版"),
- EpisodeSort("剧场版"),
+ EpisodeSort("劇場版"),
+ EpisodeSort("劇場版"),
"Foo",
),
)
diff --git a/app/shared/ui-foundation/src/commonMain/kotlin/ui/foundation/Tag.kt b/app/shared/ui-foundation/src/commonMain/kotlin/ui/foundation/Tag.kt
index bc0fd1386..e2ef78840 100644
--- a/app/shared/ui-foundation/src/commonMain/kotlin/ui/foundation/Tag.kt
+++ b/app/shared/ui-foundation/src/commonMain/kotlin/ui/foundation/Tag.kt
@@ -53,7 +53,7 @@ fun OutlinedTag(
)
}
-// 一个标签, 例如 "2023年10月", "漫画改"
+// 一个标签, 例如 "2023年10月", "漫畫改"
@Composable
fun Tag(
modifier: Modifier = Modifier,
diff --git a/app/shared/ui-foundation/src/commonMain/kotlin/ui/foundation/lists/PaginatedList.kt b/app/shared/ui-foundation/src/commonMain/kotlin/ui/foundation/lists/PaginatedList.kt
index 42d2290c2..57a7d507f 100644
--- a/app/shared/ui-foundation/src/commonMain/kotlin/ui/foundation/lists/PaginatedList.kt
+++ b/app/shared/ui-foundation/src/commonMain/kotlin/ui/foundation/lists/PaginatedList.kt
@@ -124,7 +124,7 @@ private fun PaginatedListNavigation(
) {
Icon(
Icons.Outlined.ChevronLeft,
- contentDescription = "上一组",
+ contentDescription = "上一組",
tint = if (state.canNavigateToPreviousGroup) {
MaterialTheme.colorScheme.onSurface
} else {
@@ -158,7 +158,7 @@ private fun PaginatedListNavigation(
)
Icon(
Icons.Outlined.ArrowDropDown,
- contentDescription = "选择分组",
+ contentDescription = "選擇分組",
tint = MaterialTheme.colorScheme.onSurfaceVariant,
)
}
@@ -197,7 +197,7 @@ private fun PaginatedListNavigation(
) {
Icon(
Icons.Outlined.ChevronRight,
- contentDescription = "下一组",
+ contentDescription = "下一組",
tint = if (state.canNavigateToNextGroup) {
MaterialTheme.colorScheme.onSurface
} else {
diff --git a/app/shared/ui-foundation/src/commonMain/kotlin/ui/foundation/widgets/NsfwMask.kt b/app/shared/ui-foundation/src/commonMain/kotlin/ui/foundation/widgets/NsfwMask.kt
index 7fce4fb58..f5dbe9ff2 100644
--- a/app/shared/ui-foundation/src/commonMain/kotlin/ui/foundation/widgets/NsfwMask.kt
+++ b/app/shared/ui-foundation/src/commonMain/kotlin/ui/foundation/widgets/NsfwMask.kt
@@ -67,9 +67,9 @@ fun NsfwMask(
verticalArrangement = Arrangement.Center,
modifier = Modifier.matchParentSize().defaultMinSize(minHeight = 30.dp).padding(top = 10.dp),
) {
- Text("此内容不适合展示", textAlign = TextAlign.Center)
+ Text("此內容不適合展示", textAlign = TextAlign.Center)
IconButton(onTemporarilyDisplay) {
- Icon(Icons.Rounded.RemoveRedEye, contentDescription = "临时展示")
+ Icon(Icons.Rounded.RemoveRedEye, contentDescription = "臨時展示")
}
}
}
diff --git a/app/shared/ui-foundation/src/commonMain/kotlin/ui/media/MediaDetailsRenderer.kt b/app/shared/ui-foundation/src/commonMain/kotlin/ui/media/MediaDetailsRenderer.kt
index 50b0433f0..5be3f8ffc 100644
--- a/app/shared/ui-foundation/src/commonMain/kotlin/ui/media/MediaDetailsRenderer.kt
+++ b/app/shared/ui-foundation/src/commonMain/kotlin/ui/media/MediaDetailsRenderer.kt
@@ -17,11 +17,11 @@ object MediaDetailsRenderer {
subtitleKind: SubtitleKind?,
): String? {
return when (subtitleKind) {
- SubtitleKind.EMBEDDED -> "内嵌"
- SubtitleKind.CLOSED -> "内封"
- SubtitleKind.EXTERNAL_PROVIDED -> "外挂"
+ SubtitleKind.EMBEDDED -> "內嵌"
+ SubtitleKind.CLOSED -> "內封"
+ SubtitleKind.EXTERNAL_PROVIDED -> "外掛"
SubtitleKind.EXTERNAL_DISCOVER -> "未知"
- SubtitleKind.CLOSED_OR_EXTERNAL_DISCOVER -> "内封或未知"
+ SubtitleKind.CLOSED_OR_EXTERNAL_DISCOVER -> "內封或未知"
null -> null
}
}
@@ -63,11 +63,11 @@ fun Media.renderProperties(): String {
fun renderSubtitleLanguage(id: String): String {
return when (id) {
- SubtitleLanguage.ChineseCantonese.id -> "粤语"
- SubtitleLanguage.ChineseSimplified.id -> "简中"
+ SubtitleLanguage.ChineseCantonese.id -> "粵語"
+ SubtitleLanguage.ChineseSimplified.id -> "簡中"
SubtitleLanguage.ChineseTraditional.id -> "繁中"
- SubtitleLanguage.Japanese.id -> "日语"
- SubtitleLanguage.English.id -> "英语"
+ SubtitleLanguage.Japanese.id -> "日語"
+ SubtitleLanguage.English.id -> "英語"
else -> id
}
}
diff --git a/app/shared/ui-foundation/src/commonMain/kotlin/ui/rating/RatingText.kt b/app/shared/ui-foundation/src/commonMain/kotlin/ui/rating/RatingText.kt
index d2ef869f4..5b6f2edfd 100644
--- a/app/shared/ui-foundation/src/commonMain/kotlin/ui/rating/RatingText.kt
+++ b/app/shared/ui-foundation/src/commonMain/kotlin/ui/rating/RatingText.kt
@@ -59,14 +59,14 @@ fun RatingText(
) {
Column {
Text(
- "#${rating.rank}\n${rating.total} 人评",
+ "#${rating.rank}\n${rating.total} 人評",
maxLines = 2,
softWrap = false,
)
}
// Row {
// Text(
-// "${rating.total} 人评丨#${rating.rank}",
+// "${rating.total} 人評丨#${rating.rank}",
// maxLines = 1,
// onTextLayout = { hasOverflow = it.hasVisualOverflow },
// )
@@ -74,7 +74,7 @@ fun RatingText(
// if (hasOverflow) {
// Column {
// Text(
-// "#${rating.rank}\n${rating.total} 人评",
+// "#${rating.rank}\n${rating.total} 人評",
// maxLines = 2,
// softWrap = false,
// )
diff --git a/app/shared/ui-foundation/src/commonMain/kotlin/ui/richtext/BBCode.kt b/app/shared/ui-foundation/src/commonMain/kotlin/ui/richtext/BBCode.kt
index 7028fba96..172ff4c24 100644
--- a/app/shared/ui-foundation/src/commonMain/kotlin/ui/richtext/BBCode.kt
+++ b/app/shared/ui-foundation/src/commonMain/kotlin/ui/richtext/BBCode.kt
@@ -153,7 +153,7 @@ fun RichText.toUIBriefText(): UIRichElement.AnnotatedText {
elements.forEach { e ->
when (e) {
is RichElement.Text -> plainText.append(e.value.replace('\n', ' '))
- is RichElement.Image -> plainText.append("[图片]")
+ is RichElement.Image -> plainText.append("[圖片]")
is RichElement.Kanmoji -> plainText.append(e.id)
is RichElement.Quote -> plainText.append("[引用]")
is RichElement.BangumiSticker -> {
diff --git a/app/shared/ui-foundation/src/commonMain/kotlin/ui/richtext/RichText.kt b/app/shared/ui-foundation/src/commonMain/kotlin/ui/richtext/RichText.kt
index a1d4a7d03..cae53d26b 100644
--- a/app/shared/ui-foundation/src/commonMain/kotlin/ui/richtext/RichText.kt
+++ b/app/shared/ui-foundation/src/commonMain/kotlin/ui/richtext/RichText.kt
@@ -135,10 +135,10 @@ object RichTextDefaults {
if (url.startsWith("https://") || url.startsWith("http://")) {
navigator.openUri(url)
} else {
- toaster.toast("此链接可能会打开其他应用,ani 将不会打开此链接:\n$url")
+ toaster.toast("此鏈接可能會打開其他應用,ani 將不會打開此鏈接:\n$url")
}
} catch (ex: Exception) {
- toaster.toast("无法打开此链接:\n$url")
+ toaster.toast("無法打開此鏈接:\n$url")
}
}
diff --git a/app/shared/ui-foundation/src/commonMain/kotlin/ui/search/LazyListExtensions.kt b/app/shared/ui-foundation/src/commonMain/kotlin/ui/search/LazyListExtensions.kt
index caae25c89..7d3ddbf69 100644
--- a/app/shared/ui-foundation/src/commonMain/kotlin/ui/search/LazyListExtensions.kt
+++ b/app/shared/ui-foundation/src/commonMain/kotlin/ui/search/LazyListExtensions.kt
@@ -64,7 +64,7 @@ fun LazyListScope.noMoreItemsItem(
contentAlignment = Alignment.Center,
) {
Text(
- "没有更多了",
+ "沒有更多了",
color = MaterialTheme.colorScheme.onSurfaceVariant,
style = MaterialTheme.typography.bodySmall,
)
diff --git a/app/shared/ui-foundation/src/commonMain/kotlin/ui/search/LoadErrorCard.kt b/app/shared/ui-foundation/src/commonMain/kotlin/ui/search/LoadErrorCard.kt
index db3a6e8d3..c288c8ef4 100644
--- a/app/shared/ui-foundation/src/commonMain/kotlin/ui/search/LoadErrorCard.kt
+++ b/app/shared/ui-foundation/src/commonMain/kotlin/ui/search/LoadErrorCard.kt
@@ -199,7 +199,7 @@ fun LoadErrorCard(
""
}
}
- toaster.toast("已複製,請回報到 GitHub issues 或群組")
+ toaster.toast("已複製,請回報到 GitHub issues 或羣組")
},
) {
Text("複製")
diff --git a/app/shared/ui-foundation/src/commonMain/kotlin/ui/subject/AiringLabel.kt b/app/shared/ui-foundation/src/commonMain/kotlin/ui/subject/AiringLabel.kt
index b5bcd48a8..3fd457b7a 100644
--- a/app/shared/ui-foundation/src/commonMain/kotlin/ui/subject/AiringLabel.kt
+++ b/app/shared/ui-foundation/src/commonMain/kotlin/ui/subject/AiringLabel.kt
@@ -64,9 +64,9 @@ class AiringLabelState(
SubjectAiringKind.UPCOMING -> {
"未開播"
// if (airingInfo.airDate.isInvalid) {
-// "未开播"
+// "未開播"
// } else {
-// airingInfo.airDate.toStringExcludingSameYear() + " 开播"
+// airingInfo.airDate.toStringExcludingSameYear() + " 開播"
// }
}
@@ -91,9 +91,9 @@ class AiringLabelState(
when (val s = progressInfo.continueWatchingStatus) {
ContinueWatchingStatus.Done -> "已看完"
- is ContinueWatchingStatus.Watched -> "看过 ${renderEpAndSort(s.episodeEp, s.episodeSort)}"
+ is ContinueWatchingStatus.Watched -> "看過 ${renderEpAndSort(s.episodeEp, s.episodeSort)}"
is ContinueWatchingStatus.Continue ->
- "看过 ${renderEpAndSort(s.watchedEpisodeEp, s.watchedEpisodeSort)}"
+ "看過 ${renderEpAndSort(s.watchedEpisodeEp, s.watchedEpisodeSort)}"
is ContinueWatchingStatus.NotOnAir,
ContinueWatchingStatus.Start,
@@ -120,7 +120,7 @@ class AiringLabelState(
}
/**
- * "全 xx 话"
+ * "全 xx 話"
*/
val totalEpisodesText by derivedStateOf {
val airingInfo = airingInfo ?: return@derivedStateOf null
diff --git a/app/shared/ui-foundation/src/commonMain/kotlin/ui/subject/SubjectProgressState.kt b/app/shared/ui-foundation/src/commonMain/kotlin/ui/subject/SubjectProgressState.kt
index 3ef9c4544..f06b540ad 100644
--- a/app/shared/ui-foundation/src/commonMain/kotlin/ui/subject/SubjectProgressState.kt
+++ b/app/shared/ui-foundation/src/commonMain/kotlin/ui/subject/SubjectProgressState.kt
@@ -56,7 +56,7 @@ class SubjectProgressState(
val date = s.airDate.toLocalDateOrNull()
if (date != null) {
val week = weekFormatter.format(date)
- "${week}开播"
+ "${week}開播"
} else {
"尚未開播"
}
diff --git a/app/shared/ui-foundation/src/desktopMain/kotlin/platform/window/WindowsWindowProc.kt b/app/shared/ui-foundation/src/desktopMain/kotlin/platform/window/WindowsWindowProc.kt
index d6bf8f325..67d605956 100644
--- a/app/shared/ui-foundation/src/desktopMain/kotlin/platform/window/WindowsWindowProc.kt
+++ b/app/shared/ui-foundation/src/desktopMain/kotlin/platform/window/WindowsWindowProc.kt
@@ -81,7 +81,7 @@ fun HandleWindowsWindowProc() {
val handler = try {
WindowsWindowUtils.instance.handleWindowProc(platformWindow)
} catch (e: Throwable) {
- logger.error(e) { "处理 Windows 窗口过程失败" }
+ logger.error(e) { "處理 Windows 窗口過程失敗" }
null
}
onDispose {
diff --git a/app/shared/ui-mediaselect/src/commonMain/kotlin/ui/mediafetch/MediaSelectorView.kt b/app/shared/ui-mediaselect/src/commonMain/kotlin/ui/mediafetch/MediaSelectorView.kt
index 640fe4d6c..e498e5dbb 100644
--- a/app/shared/ui-mediaselect/src/commonMain/kotlin/ui/mediafetch/MediaSelectorView.kt
+++ b/app/shared/ui-mediaselect/src/commonMain/kotlin/ui/mediafetch/MediaSelectorView.kt
@@ -99,7 +99,7 @@ import org.jetbrains.compose.ui.tooling.preview.PreviewLightDark
private inline val WINDOW_VERTICAL_PADDING get() = 8.dp
-// For search: "数据源"
+// For search: "數據源"
/**
* 通用的数据源选择器. See preview
*/
@@ -248,7 +248,7 @@ private fun ViewKindAndMoreRow(
}
// DropdownMenu(showDropdown, { showDropdown = false }) {
// DropdownMenuItem(
-// text = { Text("编辑查询请求") },
+// text = { Text("編輯查詢請求") },
// onClick = {
// showEditRequest = true
// showDropdown = false
diff --git a/app/shared/ui-mediaselect/src/commonMain/kotlin/ui/mediafetch/request/EditingMediaFetchRequest.kt b/app/shared/ui-mediaselect/src/commonMain/kotlin/ui/mediafetch/request/EditingMediaFetchRequest.kt
index 30cabc953..fe6e1395e 100644
--- a/app/shared/ui-mediaselect/src/commonMain/kotlin/ui/mediafetch/request/EditingMediaFetchRequest.kt
+++ b/app/shared/ui-mediaselect/src/commonMain/kotlin/ui/mediafetch/request/EditingMediaFetchRequest.kt
@@ -88,14 +88,14 @@ val TestEditingMediaFetchRequest
get() = EditingMediaFetchRequest(
subjectId = "12345",
episodeId = "67890",
- primaryName = "关于我转生变成史莱姆这档事 第三季",
+ primaryName = "關於我轉生變成史萊姆這檔事 第三季",
complementaryNames = listOf(
"転生したらスライムだった件 第3期",
- "关于我转生变成史莱姆这档事 第三季",
+ "關於我轉生變成史萊姆這檔事 第三季",
"Tensei Shitara Slime Datta Ken Season 3",
),
episodeSort = "49",
- episodeName = "恶魔与阴谋",
+ episodeName = "惡魔與陰謀",
episodeEp = "01",
)
@@ -105,13 +105,13 @@ val TestMediaFetchRequest
get() = MediaFetchRequest(
subjectId = "12345",
episodeId = "67890",
- subjectNameCN = "关于我转生变成史莱姆这档事 第三季",
+ subjectNameCN = "關於我轉生變成史萊姆這檔事 第三季",
subjectNames = listOf(
"転生したらスライムだった件 第3期",
- "关于我转生变成史莱姆这档事 第三季",
+ "關於我轉生變成史萊姆這檔事 第三季",
"Tensei Shitara Slime Datta Ken Season 3",
),
episodeSort = EpisodeSort("49"),
- episodeName = "恶魔与阴谋",
+ episodeName = "惡魔與陰謀",
episodeEp = EpisodeSort("01"),
)
diff --git a/app/shared/ui-mediaselect/src/commonMain/kotlin/ui/mediafetch/request/MediaFetchRequestEditor.kt b/app/shared/ui-mediaselect/src/commonMain/kotlin/ui/mediafetch/request/MediaFetchRequestEditor.kt
index 5ac2b5674..fbb9e2bcf 100644
--- a/app/shared/ui-mediaselect/src/commonMain/kotlin/ui/mediafetch/request/MediaFetchRequestEditor.kt
+++ b/app/shared/ui-mediaselect/src/commonMain/kotlin/ui/mediafetch/request/MediaFetchRequestEditor.kt
@@ -99,7 +99,7 @@ fun MediaFetchRequestEditor(
value = fetchRequest.primaryName,
onValueChange = { onFetchRequestChange(fetchRequest.copy(primaryName = it)) },
label = { Text("主搜索名") },
- supportingText = { Text("大多数数据源只使用此名称") },
+ supportingText = { Text("大多數數據源只使用此名稱") },
modifier = Modifier.fillMaxWidth().padding(horizontal = horizontalPadding),
singleLine = true,
)
@@ -117,7 +117,7 @@ fun MediaFetchRequestEditor(
},
Modifier.padding(top = 8.dp),
supportingContent = {
- Text("在线源会忽略这些名称")
+ Text("在線源會忽略這些名稱")
},
colors = listItemColors,
trailingContent = {
@@ -129,7 +129,7 @@ fun MediaFetchRequestEditor(
if (showComplementaryNames) {
Icon(Icons.Default.KeyboardArrowUp, contentDescription = "收起")
} else {
- Icon(Icons.Default.KeyboardArrowDown, contentDescription = "展开")
+ Icon(Icons.Default.KeyboardArrowDown, contentDescription = "展開")
}
}
},
@@ -161,7 +161,7 @@ fun MediaFetchRequestEditor(
},
Modifier.padding(end = horizontalPadding - 8.dp),
) {
- Icon(Icons.Default.Delete, contentDescription = "删除名称 #$index")
+ Icon(Icons.Default.Delete, contentDescription = "刪除名稱 #$index")
}
}
}
@@ -183,7 +183,7 @@ fun MediaFetchRequestEditor(
Modifier.size(ButtonDefaults.IconSize),
)
Spacer(Modifier.width(ButtonDefaults.IconSpacing))
- Text("添加名称")
+ Text("添加名稱")
}
}
}
@@ -193,7 +193,7 @@ fun MediaFetchRequestEditor(
ListItem(
headlineContent = {
Text(
- "剧集信息",
+ "劇集信息",
style = MaterialTheme.typography.titleMedium,
color = MaterialTheme.colorScheme.primary,
)
@@ -201,7 +201,7 @@ fun MediaFetchRequestEditor(
Modifier.padding(vertical = 8.dp),
supportingContent = {
Text(
- "资源必须至少匹配以下两种信息中的一种,否则不会显示。可以只修改其中一种",
+ "資源必須至少匹配以下兩種信息中的一種,否則不會顯示。可以只修改其中一種",
)
},
colors = listItemColors,
@@ -214,7 +214,7 @@ fun MediaFetchRequestEditor(
// OutlinedTextField(
// value = fetchRequest.episodeName,
// onValueChange = { onFetchRequestChange(fetchRequest.copy(episodeName = it)) },
-// label = { Text("剧集名称") },
+// label = { Text("劇集名稱") },
// supportingText = { Text("可留空") },
// modifier = Modifier.fillMaxWidth().padding(horizontal = horizontalPadding),
// singleLine = true,
@@ -227,8 +227,8 @@ fun MediaFetchRequestEditor(
onValueChange = { newValue ->
onFetchRequestChange(fetchRequest.copy(episodeSort = newValue))
},
- label = { Text("系列内剧集序号") },
- supportingText = { Text("假设有两季,分别有 12 集,则第二季的第一集为 13") },
+ label = { Text("系列內劇集序號") },
+ supportingText = { Text("假設有兩季,分別有 12 集,則第二季的第一集爲 13") },
modifier = Modifier.fillMaxWidth().padding(horizontal = horizontalPadding),
singleLine = true,
isError = sortAndEpAreError,
@@ -238,8 +238,8 @@ fun MediaFetchRequestEditor(
onValueChange = { newValue ->
onFetchRequestChange(fetchRequest.copy(episodeEp = newValue))
},
- label = { Text("条目内序号") },
- supportingText = { Text("在当前季度内的序号,例如第二季的第一集为 01") },
+ label = { Text("條目內序號") },
+ supportingText = { Text("在當前季度內的序號,例如第二季的第一集爲 01") },
modifier = Modifier.fillMaxWidth().padding(horizontal = horizontalPadding),
singleLine = true,
isError = sortAndEpAreError,
diff --git a/app/shared/ui-mediaselect/src/commonMain/kotlin/ui/mediaselect/summary/MediaSelectorSummary.kt b/app/shared/ui-mediaselect/src/commonMain/kotlin/ui/mediaselect/summary/MediaSelectorSummary.kt
index f33e4d8b6..a4e20f601 100644
--- a/app/shared/ui-mediaselect/src/commonMain/kotlin/ui/mediaselect/summary/MediaSelectorSummary.kt
+++ b/app/shared/ui-mediaselect/src/commonMain/kotlin/ui/mediaselect/summary/MediaSelectorSummary.kt
@@ -118,9 +118,9 @@ fun MediaSelectorSummaryCard(
) { state ->
val button = @Composable {
val buttonLabel = when (state) {
- is MediaSelectorSummary.AutoSelecting -> "手动选择"
- is MediaSelectorSummary.RequiresManualSelection -> "手动选择"
- is MediaSelectorSummary.Selected -> "更换"
+ is MediaSelectorSummary.AutoSelecting -> "手動選擇"
+ is MediaSelectorSummary.RequiresManualSelection -> "手動選擇"
+ is MediaSelectorSummary.Selected -> "更換"
}
OutlinedButton(
diff --git a/app/shared/ui-onboarding/src/androidMain/kotlin/ui/onboarding/navigation/WizardNavHost.android.kt b/app/shared/ui-onboarding/src/androidMain/kotlin/ui/onboarding/navigation/WizardNavHost.android.kt
index a384e7e19..30c9798fd 100644
--- a/app/shared/ui-onboarding/src/androidMain/kotlin/ui/onboarding/navigation/WizardNavHost.android.kt
+++ b/app/shared/ui-onboarding/src/androidMain/kotlin/ui/onboarding/navigation/WizardNavHost.android.kt
@@ -26,7 +26,7 @@ fun PreviewWizardNavHost() {
) {
step(
key = "theme",
- title = { Text("选择主题") },
+ title = { Text("選擇主題") },
) {
val data = remember {
TestWizardData.MyTheme("theme default", 0)
@@ -41,7 +41,7 @@ fun PreviewWizardNavHost() {
step(
key = "proxy",
- title = { Text("设置代理") },
+ title = { Text("設置代理") },
) {
val data = remember {
TestWizardData.MyProxy("proxy default", 0)
diff --git a/app/shared/ui-onboarding/src/commonMain/kotlin/ui/login/EmailLoginScreenLayout.kt b/app/shared/ui-onboarding/src/commonMain/kotlin/ui/login/EmailLoginScreenLayout.kt
index 3b9f926b2..b0636b22e 100644
--- a/app/shared/ui-onboarding/src/commonMain/kotlin/ui/login/EmailLoginScreenLayout.kt
+++ b/app/shared/ui-onboarding/src/commonMain/kotlin/ui/login/EmailLoginScreenLayout.kt
@@ -53,7 +53,7 @@ internal fun EmailLoginScreenLayout(
onNavigateSettings: () -> Unit,
onNavigateBack: () -> Unit,
modifier: Modifier = Modifier,
- title: @Composable () -> Unit = { Text("登录") },
+ title: @Composable () -> Unit = { Text("登錄") },
showThirdPartyLogin: Boolean = true,
content: @Composable ColumnScope.(scrollState: ScrollState) -> Unit,
) {
@@ -65,7 +65,7 @@ internal fun EmailLoginScreenLayout(
title = title,
navigationIcon = { BackNavigationIconButton(onNavigateBack) },
scrollBehavior = scrollBehavior,
- actions = { IconButton(onNavigateSettings) { Icon(Icons.Outlined.Settings, "设置") } },
+ actions = { IconButton(onNavigateSettings) { Icon(Icons.Outlined.Settings, "設置") } },
windowInsets = AniWindowInsets.forTopAppBar(),
)
},
diff --git a/app/shared/ui-onboarding/src/commonMain/kotlin/ui/login/ThirdPartyLoginMethods.kt b/app/shared/ui-onboarding/src/commonMain/kotlin/ui/login/ThirdPartyLoginMethods.kt
index c2099f996..4a68ece1a 100644
--- a/app/shared/ui-onboarding/src/commonMain/kotlin/ui/login/ThirdPartyLoginMethods.kt
+++ b/app/shared/ui-onboarding/src/commonMain/kotlin/ui/login/ThirdPartyLoginMethods.kt
@@ -26,7 +26,7 @@ internal fun ThirdPartyLoginMethods(
TextDivider(
modifier = Modifier.heightIn(min = 56.dp),
) {
- Text("其他登录方式")
+ Text("其他登錄方式")
}
FilledTonalButton(
diff --git a/app/shared/ui-onboarding/src/commonMain/kotlin/ui/oauth/BangumiAuthorizeScreen.kt b/app/shared/ui-onboarding/src/commonMain/kotlin/ui/oauth/BangumiAuthorizeScreen.kt
index 60c9b5801..e8af8df7c 100644
--- a/app/shared/ui-onboarding/src/commonMain/kotlin/ui/oauth/BangumiAuthorizeScreen.kt
+++ b/app/shared/ui-onboarding/src/commonMain/kotlin/ui/oauth/BangumiAuthorizeScreen.kt
@@ -73,7 +73,7 @@ internal fun BangumiAuthorizeScreen(
onBangumiLoginClick = {},
onNavigateSettings = onNavigateSettings,
onNavigateBack = onNavigateBack,
- title = { Text("授权 Bangumi 登录") },
+ title = { Text("授權 Bangumi 登錄") },
showThirdPartyLogin = false,
) { scrollState ->
BangumiAuthorizeLayout(
diff --git a/app/shared/ui-onboarding/src/commonMain/kotlin/ui/onboarding/OnboardingCompleteScreen.kt b/app/shared/ui-onboarding/src/commonMain/kotlin/ui/onboarding/OnboardingCompleteScreen.kt
index d9230139c..ed108ac8b 100644
--- a/app/shared/ui-onboarding/src/commonMain/kotlin/ui/onboarding/OnboardingCompleteScreen.kt
+++ b/app/shared/ui-onboarding/src/commonMain/kotlin/ui/onboarding/OnboardingCompleteScreen.kt
@@ -108,7 +108,7 @@ internal fun OnboardingCompleteScreen(
verticalArrangement = Arrangement.spacedBy(8.dp),
) {
Text(
- text = if (state.selfInfo?.nickname != null) "欢迎,${state.selfInfo?.nickname}" else "欢迎",
+ text = if (state.selfInfo?.nickname != null) "歡迎,${state.selfInfo?.nickname}" else "歡迎",
modifier = Modifier
.widthIn(max = 240.dp)
.animateContentSize(),
diff --git a/app/shared/ui-onboarding/src/commonMain/kotlin/ui/onboarding/WelcomeScreen.kt b/app/shared/ui-onboarding/src/commonMain/kotlin/ui/onboarding/WelcomeScreen.kt
index 6e3a17140..6f834ec7f 100644
--- a/app/shared/ui-onboarding/src/commonMain/kotlin/ui/onboarding/WelcomeScreen.kt
+++ b/app/shared/ui-onboarding/src/commonMain/kotlin/ui/onboarding/WelcomeScreen.kt
@@ -89,7 +89,7 @@ internal fun WelcomeScene(
ProvideTextStyle(MaterialTheme.typography.bodyLarge) {
Row(Modifier.padding(top = 8.dp).align(Alignment.Start)) {
Text(
- """一站式線上彈幕追番平台 (簡稱 Ani)""",
+ """一站式線上彈幕追番平臺 (簡稱 Ani)""",
color = MaterialTheme.colorScheme.primary,
)
}
@@ -100,7 +100,7 @@ internal fun WelcomeScene(
verticalArrangement = Arrangement.spacedBy(12.dp),
) {
ProvideTextStyle(MaterialTheme.typography.bodyMedium) {
- Text("""Ani 目前由愛好者組成的組織 OpenAni 和社群貢獻者維護,完全免費,在 GitHub 上開源。""")
+ Text("""Ani 目前由愛好者組成的組織 OpenAni 和社羣貢獻者維護,完全免費,在 GitHub 上開源。""")
Text("""Ani 的目標是提供盡可能簡單且舒適的追番體驗。""")
}
diff --git a/app/shared/ui-onboarding/src/commonMain/kotlin/ui/onboarding/navigation/WizardNavHost.kt b/app/shared/ui-onboarding/src/commonMain/kotlin/ui/onboarding/navigation/WizardNavHost.kt
index c4d6df8e9..cf4292d05 100644
--- a/app/shared/ui-onboarding/src/commonMain/kotlin/ui/onboarding/navigation/WizardNavHost.kt
+++ b/app/shared/ui-onboarding/src/commonMain/kotlin/ui/onboarding/navigation/WizardNavHost.kt
@@ -200,7 +200,7 @@ private suspend fun animateScrollTopAppBar(topAppBarState: TopAppBarState, targe
object WizardDefaults {
fun renderStepIndicatorText(currentStep: Int, totalStep: Int): String {
- return "步骤 $currentStep / $totalStep"
+ return "步驟 $currentStep / $totalStep"
}
@Composable
@@ -308,7 +308,7 @@ object WizardDefaults {
@Composable
fun SkipButton(
onClick: () -> Unit,
- text: String = "跳过",
+ text: String = "跳過",
modifier: Modifier = Modifier
) {
TextButton(
diff --git a/app/shared/ui-onboarding/src/commonMain/kotlin/ui/onboarding/step/ThemeSelectStep.kt b/app/shared/ui-onboarding/src/commonMain/kotlin/ui/onboarding/step/ThemeSelectStep.kt
index 07ba5b59d..cf9a63e3f 100644
--- a/app/shared/ui-onboarding/src/commonMain/kotlin/ui/onboarding/step/ThemeSelectStep.kt
+++ b/app/shared/ui-onboarding/src/commonMain/kotlin/ui/onboarding/step/ThemeSelectStep.kt
@@ -62,8 +62,8 @@ internal fun ThemeSelectStep(
modifier = Modifier
.fillMaxWidth()
.clickable { onUpdateUseDynamicTheme(!config.useDynamicTheme) },
- title = { Text("动态色彩") },
- description = { Text("使用系统强调色") },
+ title = { Text("動態色彩") },
+ description = { Text("使用系統強調色") },
action = {
Switch(
checked = config.useDynamicTheme,
diff --git a/app/shared/ui-settings/src/androidMain/kotlin/ui/settings/mediasource/selector/test/SubjectResultLazyRow.android.kt b/app/shared/ui-settings/src/androidMain/kotlin/ui/settings/mediasource/selector/test/SubjectResultLazyRow.android.kt
index 01133495e..fac67c42d 100644
--- a/app/shared/ui-settings/src/androidMain/kotlin/ui/settings/mediasource/selector/test/SubjectResultLazyRow.android.kt
+++ b/app/shared/ui-settings/src/androidMain/kotlin/ui/settings/mediasource/selector/test/SubjectResultLazyRow.android.kt
@@ -44,36 +44,36 @@ fun createTestSelectorTestSubjectPresentation(
val TestSelectorTestSubjectPresentations
get() = listOf(
createTestSelectorTestSubjectPresentation(
- "孤独摇滚",
+ "孤獨搖滾",
),
createTestSelectorTestSubjectPresentation(
- "孤独摇滚",
+ "孤獨搖滾",
),
createTestSelectorTestSubjectPresentation(
- "孤独摇滚",
+ "孤獨搖滾",
),
createTestSelectorTestSubjectPresentation(
- "孤独摇滚",
+ "孤獨搖滾",
),
createTestSelectorTestSubjectPresentation(
- "孤独摇滚",
- tags = listOf(MatchTag("标题", isMatch = false), MatchTag("字幕", isMatch = true)),
+ "孤獨搖滾",
+ tags = listOf(MatchTag("標題", isMatch = false), MatchTag("字幕", isMatch = true)),
),
createTestSelectorTestSubjectPresentation(
- "孤独摇滚".repeat(10),
- tags = listOf(MatchTag("标题", isMatch = false)),
+ "孤獨搖滾".repeat(10),
+ tags = listOf(MatchTag("標題", isMatch = false)),
),
createTestSelectorTestSubjectPresentation(
- "孤独摇滚".repeat(10),
- tags = listOf(MatchTag("标题", isMatch = false)),
+ "孤獨搖滾".repeat(10),
+ tags = listOf(MatchTag("標題", isMatch = false)),
),
createTestSelectorTestSubjectPresentation(
- "孤独摇滚".repeat(10),
- tags = listOf(MatchTag("标题", isMatch = false)),
+ "孤獨搖滾".repeat(10),
+ tags = listOf(MatchTag("標題", isMatch = false)),
),
createTestSelectorTestSubjectPresentation(
- "孤独摇滚".repeat(10),
- tags = listOf(MatchTag("标题", isMatch = false)),
+ "孤獨搖滾".repeat(10),
+ tags = listOf(MatchTag("標題", isMatch = false)),
),
)
diff --git a/app/shared/ui-settings/src/androidMain/kotlin/ui/settings/tabs/PreferencePage.android.kt b/app/shared/ui-settings/src/androidMain/kotlin/ui/settings/tabs/PreferencePage.android.kt
index 6acfc042b..df24fdd56 100644
--- a/app/shared/ui-settings/src/androidMain/kotlin/ui/settings/tabs/PreferencePage.android.kt
+++ b/app/shared/ui-settings/src/androidMain/kotlin/ui/settings/tabs/PreferencePage.android.kt
@@ -44,7 +44,7 @@ private fun PreviewTextFieldDialog() {
TextFieldDialog(
onDismissRequest = {},
onConfirm = {},
- title = { Text(text = "编辑") },
+ title = { Text(text = "編輯") },
description = { Text(LoremIpsum(20).values.first()) },
) {
OutlinedTextField(
diff --git a/app/shared/ui-settings/src/androidMain/kotlin/ui/settings/tabs/app/AppSettingsTab.android.kt b/app/shared/ui-settings/src/androidMain/kotlin/ui/settings/tabs/app/AppSettingsTab.android.kt
index ac01f4d74..fd6f79e99 100644
--- a/app/shared/ui-settings/src/androidMain/kotlin/ui/settings/tabs/app/AppSettingsTab.android.kt
+++ b/app/shared/ui-settings/src/androidMain/kotlin/ui/settings/tabs/app/AppSettingsTab.android.kt
@@ -36,7 +36,7 @@ actual fun SettingsScope.PlayerGroupPlatform(videoScaffoldConfig: SettingsState<
values = { supportedModes },
itemText = {
if (it == null) {
- Text("自动")
+ Text("自動")
} else {
Text(it.refreshRate.roundToInt().toString())
}
@@ -49,7 +49,7 @@ actual fun SettingsScope.PlayerGroupPlatform(videoScaffoldConfig: SettingsState<
)
},
title = {
- Text("弹幕刷新率")
+ Text("彈幕刷新率")
},
)
}
diff --git a/app/shared/ui-settings/src/androidMain/kotlin/ui/settings/tabs/app/UISettingsTab.android.kt b/app/shared/ui-settings/src/androidMain/kotlin/ui/settings/tabs/app/UISettingsTab.android.kt
index 5395e3454..e22644eaf 100644
--- a/app/shared/ui-settings/src/androidMain/kotlin/ui/settings/tabs/app/UISettingsTab.android.kt
+++ b/app/shared/ui-settings/src/androidMain/kotlin/ui/settings/tabs/app/UISettingsTab.android.kt
@@ -89,8 +89,8 @@ internal actual fun SettingsScope.AppSettingsTabPlatform() {
// 禁用电池优化
if (powerManager != null) {
Group(
- title = { Text("後台運行") },
- description = { Text(text = "快取功能需要應用程式保持在後台運行才能下載影片") },
+ title = { Text("後臺運行") },
+ description = { Text(text = "快取功能需要應用程式保持在後臺運行才能下載影片") },
) {
val isPreviewing = LocalIsPreviewing.current
var isIgnoring by remember {
@@ -128,7 +128,7 @@ internal actual fun SettingsScope.AppSettingsTabPlatform() {
}
},
title = { Text("停用電池最佳化") },
- description = { Text("可以幫助保持在後台運行。可能增加耗電") },
+ description = { Text("可以幫助保持在後臺運行。可能增加耗電") },
)
}
}
diff --git a/app/shared/ui-settings/src/androidMain/kotlin/ui/settings/tabs/log/LogTab.android.kt b/app/shared/ui-settings/src/androidMain/kotlin/ui/settings/tabs/log/LogTab.android.kt
index e2a6ecc46..d2ca151fb 100644
--- a/app/shared/ui-settings/src/androidMain/kotlin/ui/settings/tabs/log/LogTab.android.kt
+++ b/app/shared/ui-settings/src/androidMain/kotlin/ui/settings/tabs/log/LogTab.android.kt
@@ -35,7 +35,7 @@ internal actual fun ColumnScope.PlatformLoggingItems(listItemColors: ListItemCol
val scope = rememberCoroutineScope()
ListItem(
- headlineContent = { Text("分享当日日志文件") },
+ headlineContent = { Text("分享當日日誌文件") },
Modifier.clickable {
val shareIntent = Intent(Intent.ACTION_SEND)
shareIntent.setType("text/plain") // Set appropriate MIME type
@@ -48,13 +48,13 @@ internal actual fun ColumnScope.PlatformLoggingItems(listItemColors: ListItemCol
),
)
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
- context.startActivity(Intent.createChooser(shareIntent, "分享日志文件"))
+ context.startActivity(Intent.createChooser(shareIntent, "分享日誌文件"))
},
colors = listItemColors,
)
ListItem(
- headlineContent = { Text("复制当日日志内容 (很大)") },
+ headlineContent = { Text("複製當日日誌內容 (很大)") },
Modifier.clickable {
scope.launch {
clipboard.setClipEntryText(context.getCurrentLogFile().readText())
diff --git a/app/shared/ui-settings/src/androidMain/kotlin/ui/settings/tabs/network/EditMediaSourceDialog.android.kt b/app/shared/ui-settings/src/androidMain/kotlin/ui/settings/tabs/network/EditMediaSourceDialog.android.kt
index 1e15222eb..97b4dd34a 100644
--- a/app/shared/ui-settings/src/androidMain/kotlin/ui/settings/tabs/network/EditMediaSourceDialog.android.kt
+++ b/app/shared/ui-settings/src/androidMain/kotlin/ui/settings/tabs/network/EditMediaSourceDialog.android.kt
@@ -49,13 +49,13 @@ private fun PreviewEditMediaSourceDialog() {
description = "Test description",
),
parameters = buildMediaSourceParameters {
- string("username", description = "用户名")
- string("password", description = "密码")
- boolean("Switch", true, description = "这是一个开关")
- boolean("开关", false, description = "This is a switch")
- boolean("开关", false, description = "This is a switch.".repeat(10))
+ string("username", description = "用戶名")
+ string("password", description = "密碼")
+ boolean("Switch", true, description = "這是一個開關")
+ boolean("開關", false, description = "This is a switch")
+ boolean("開關", false, description = "This is a switch.".repeat(10))
boolean("Switch2", false)
- simpleEnum("dropdown", "a", "b", "c", default = "b", description = "这是一个下拉菜单")
+ simpleEnum("dropdown", "a", "b", "c", default = "b", description = "這是一個下拉菜單")
},
persistedArguments = flowOf(MediaSourceConfig.Default),
editMediaSourceMode = TestEditMediaSourceModeAdd,
diff --git a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/account/ProfileGroup.kt b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/account/ProfileGroup.kt
index 3041168a3..c5f23303c 100644
--- a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/account/ProfileGroup.kt
+++ b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/account/ProfileGroup.kt
@@ -241,7 +241,7 @@ internal fun SettingsScope.ProfileGroupImpl(
Text(currentInfo?.id.toString())
}
},
- description = { Text("用户 ID") },
+ description = { Text("用戶 ID") },
modifier = Modifier.placeholder(isPlaceholder),
)
diff --git a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/account/ProfilePopup.kt b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/account/ProfilePopup.kt
index 7e70c27b8..71dfae78d 100644
--- a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/account/ProfilePopup.kt
+++ b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/account/ProfilePopup.kt
@@ -123,7 +123,7 @@ fun ProfilePopup(
// .padding(horizontal = 24.dp)
// .padding(top = 24.dp),
// ) {
-// Icon(Icons.Default.Close, contentDescription = "关闭")
+// Icon(Icons.Default.Close, contentDescription = "關閉")
// }
} else {
BasicAlertDialog(onDismissRequest) {
diff --git a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/account/SelfInfoBanner.kt b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/account/SelfInfoBanner.kt
index 3c0126360..26ffcb531 100644
--- a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/account/SelfInfoBanner.kt
+++ b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/account/SelfInfoBanner.kt
@@ -61,7 +61,7 @@ internal fun SelfInfoBanner(
Row(Modifier.padding(horizontal = 16.dp, vertical = 8.dp), verticalAlignment = CenterVertically) {
if (!isLogin) {
FilledTonalButton(onLoginClick, Modifier.fillMaxWidth()) {
- Text("登录 / 注册")
+ Text("登錄 / 註冊")
}
} else {
AvatarImage(
diff --git a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/danmaku/DanmakuRegexFilterGroup.kt b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/danmaku/DanmakuRegexFilterGroup.kt
index 631f9bb8a..dc28b407b 100644
--- a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/danmaku/DanmakuRegexFilterGroup.kt
+++ b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/danmaku/DanmakuRegexFilterGroup.kt
@@ -157,12 +157,12 @@ fun RegexFilterItem(
// AlertDialog(
// onDismissRequest = { showConfirmDelete = false },
// icon = { Icon(Icons.Rounded.Delete, null, tint = MaterialTheme.colorScheme.error) },
-// title = { Text("删除正则") },
-// text = { Text("确认删除 \"${item.regex}\"?") },
+// title = { Text("刪除正則") },
+// text = { Text("確認刪除 \"${item.regex}\"?") },
// confirmButton = {
// TextButton({ onDelete(); showConfirmDelete = false }) {
// Text(
-// "删除",
+// "刪除",
// color = MaterialTheme.colorScheme.error,
// )
// }
diff --git a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/danmaku/DanmakuRegexFilterState.kt b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/danmaku/DanmakuRegexFilterState.kt
index da550a96c..b40eca546 100644
--- a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/danmaku/DanmakuRegexFilterState.kt
+++ b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/danmaku/DanmakuRegexFilterState.kt
@@ -25,13 +25,13 @@ fun createTestDanmakuRegexFilterState(): DanmakuRegexFilterState {
listOf(
DanmakuRegexFilter(
id = Uuid.randomString(),
- name = "测试",
- regex = "测试",
+ name = "測試",
+ regex = "測試",
),
DanmakuRegexFilter(
id = Uuid.randomString(),
- name = "测试2",
- regex = "测试2",
+ name = "測試2",
+ regex = "測試2",
),
),
)
diff --git a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/framework/components/SingleSelectionItem.kt b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/framework/components/SingleSelectionItem.kt
index 3bbbea125..0199aa5a3 100644
--- a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/framework/components/SingleSelectionItem.kt
+++ b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/framework/components/SingleSelectionItem.kt
@@ -150,7 +150,7 @@ fun SettingsScope.SingleSelectionItem(
showDialog = false
onConfirm(items.getOrNull(selectionState.currentSelected)?.value)
},
- ) { Text("确认") }
+ ) { Text("確認") }
},
dismissButton = {
TextButton({ showDialog = false }) {
diff --git a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/framework/components/SorterItem.kt b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/framework/components/SorterItem.kt
index d31dd78a4..54c33ec70 100644
--- a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/framework/components/SorterItem.kt
+++ b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/framework/components/SorterItem.kt
@@ -139,7 +139,7 @@ fun SettingsScope.SorterItem(
Icon(
Icons.Rounded.Reorder,
- "长按排序",
+ "長按排序",
Modifier.detectReorder(state),
)
}
diff --git a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/framework/components/TextFieldItem.kt b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/framework/components/TextFieldItem.kt
index a6db31c13..ad49a32f5 100644
--- a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/framework/components/TextFieldItem.kt
+++ b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/framework/components/TextFieldItem.kt
@@ -48,7 +48,7 @@ import me.him188.ani.app.ui.foundation.text.ProvideTextStyleContentColor
/**
* @param sanitizeValue 每当用户输入时调用, 可以清除首尾空格等
- * @param onValueChangeCompleted 当用户点击对话框的 "确认" 时调用
+ * @param onValueChangeCompleted 当用户点击对话框的 "確認" 时调用
*/
@SettingsDsl
@Composable
@@ -105,7 +105,7 @@ fun SettingsScope.TextFieldItem(
},
trailingContent = {
IconButton({ showDialog = true }) {
- Icon(Icons.Rounded.Edit, "编辑", tint = MaterialTheme.colorScheme.primary)
+ Icon(Icons.Rounded.Edit, "編輯", tint = MaterialTheme.colorScheme.primary)
}
},
)
@@ -183,7 +183,7 @@ internal fun SettingsScope.TextFieldDialog(
onClick = onConfirm,
enabled = confirmEnabled,
) {
- Text("确认")
+ Text("確認")
}
},
title = title,
diff --git a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/mediasource/AbstractMediaSourceTestState.kt b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/mediasource/AbstractMediaSourceTestState.kt
index 0c110e7e3..1c697d233 100644
--- a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/mediasource/AbstractMediaSourceTestState.kt
+++ b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/mediasource/AbstractMediaSourceTestState.kt
@@ -31,12 +31,12 @@ abstract class AbstractMediaSourceTestState {
@Stable
private val SampleKeywords
get() = listOf(
- "败犬女主太多了!",
+ "敗犬女主太多了!",
"白箱",
"CLANNAD",
- "轻音少女",
- "战姬绝唱",
- "凉宫春日的忧郁",
- "樱 Trick",
- "命运石之门",
+ "輕音少女",
+ "戰姬絕唱",
+ "涼宮春日的憂鬱",
+ "櫻 Trick",
+ "命運石之門",
)
diff --git a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/mediasource/rss/test/OverviewTab.kt b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/mediasource/rss/test/OverviewTab.kt
index 43bed2223..b27f64520 100644
--- a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/mediasource/rss/test/OverviewTab.kt
+++ b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/mediasource/rss/test/OverviewTab.kt
@@ -87,9 +87,9 @@ fun RssOverviewCard(
val func: () -> Unit = { copy(value()) }
return combinedClickable(
onLongClick = func,
- onLongClickLabel = "复制",
+ onLongClickLabel = "複製",
onClick = func, // no-op
- onClickLabel = "复制",
+ onClickLabel = "複製",
).onRightClickIfSupported(onClick = func)
}
diff --git a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/mediasource/selector/episode/SelectorEpisodePaneDefaults.kt b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/mediasource/selector/episode/SelectorEpisodePaneDefaults.kt
index cbc4564ba..a1af11ae5 100644
--- a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/mediasource/selector/episode/SelectorEpisodePaneDefaults.kt
+++ b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/mediasource/selector/episode/SelectorEpisodePaneDefaults.kt
@@ -76,11 +76,11 @@ object SelectorEpisodePaneDefaults {
try {
uriHandler.openUri(state.episodeUrl)
} catch (e: Throwable) {
- toaster.toast("无法打开链接")
+ toaster.toast("無法打開鏈接")
}
},
) {
- Icon(Icons.Rounded.ArrowOutward, "打开原始链接 ${state.episodeName}")
+ Icon(Icons.Rounded.ArrowOutward, "打開原始鏈接 ${state.episodeName}")
}
}
},
@@ -103,7 +103,7 @@ object SelectorEpisodePaneDefaults {
ProvideTextStyle(
MaterialTheme.typography.titleLarge,
) {
- Text("编辑配置")
+ Text("編輯配置")
}
}
SelectorConfigurationDefaults.MatchVideoSection(
diff --git a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/tabs/app/AppSettingsTab.kt b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/tabs/app/AppSettingsTab.kt
index 6dd66a561..aa97b8353 100644
--- a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/tabs/app/AppSettingsTab.kt
+++ b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/tabs/app/AppSettingsTab.kt
@@ -552,7 +552,7 @@ private fun renderLocale(it: Locale?): String {
return when (it.language) {
"en", "eng" -> "English"
"zh", "chi", "zho" -> when (it.region) {
- "CN" -> "简体中文"
+ "CN" -> "簡體中文"
"HK" -> "繁體中文(香港)"
"TW" -> "正體中文"
else -> "繁體中文"
diff --git a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/tabs/media/TorrentEngineGroup.kt b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/tabs/media/TorrentEngineGroup.kt
index 33762dba6..d17da0243 100644
--- a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/tabs/media/TorrentEngineGroup.kt
+++ b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/tabs/media/TorrentEngineGroup.kt
@@ -87,13 +87,13 @@ internal fun SettingsScope.TorrentEngineGroup(
// ),
// )
// },
-// title = { Text("允许上传") },
+// title = { Text("允許上傳") },
// description = if (!allowUpload) {
// {
// Text(
-// "BT 网络依赖用户间分享,你所看的视频均来自其他用户的分享。" +
-// "除特殊情况外,建议允许上传,共同维护健康的 BT 分享环境。" +
-// "禁用上传会导致许多用户不再分享视频给你。",
+// "BT 網絡依賴用戶間分享,你所看的視頻均來自其他用戶的分享。" +
+// "除特殊情況外,建議允許上傳,共同維護健康的 BT 分享環境。" +
+// "禁用上傳會導致許多用戶不再分享視頻給你。",
// color = MaterialTheme.colorScheme.error,
// )
// }
@@ -103,7 +103,7 @@ internal fun SettingsScope.TorrentEngineGroup(
// AnimatedVisibility(allowUpload) {
// RateTextFieldItem(
// torrentSettings.uploadRateLimit,
-// title = { Text("上传速度限制") },
+// title = { Text("上傳速度限制") },
// onValueChangeCompleted = { vm.torrentSettings.update(torrentSettings.copy(uploadRateLimit = it)) },
// )
@@ -209,7 +209,7 @@ private fun SettingsScope.RateSliderItem(
// double == null || double.kiloBytes.inBytes < minValue.inBytes
// },
// sanitizeValue = { it.trim() },
-// textFieldDescription = { Text("单位为 KB/s,最低 1024 KB/s,-1 表示无限制\n\n当前设置: ${renderRateValue(it)}") },
+// textFieldDescription = { Text("單位爲 KB/s,最低 1024 KB/s,-1 表示無限制\n\n當前設置: ${renderRateValue(it)}") },
// exposedItem = { text ->
// Text(renderRateValue(text))
// },
diff --git a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/tabs/media/source/EditMediaSourceLayout.kt b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/tabs/media/source/EditMediaSourceLayout.kt
index 0e94cbb54..dcdc85fb5 100644
--- a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/tabs/media/source/EditMediaSourceLayout.kt
+++ b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/tabs/media/source/EditMediaSourceLayout.kt
@@ -203,7 +203,7 @@ internal fun EditMediaSourceDialog(
// title = {
// when (state.editMediaSourceMode) {
// is EditMediaSourceMode.Edit -> Text(state.info.displayName)
-// EditMediaSourceMode.Add -> Text("新建数据源")
+// EditMediaSourceMode.Add -> Text("新建數據源")
// }
// },
// navigationIcon = { TopAppBarGoBackButton() },
diff --git a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/tabs/media/source/MediaSourceGroup.kt b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/tabs/media/source/MediaSourceGroup.kt
index 9de852574..d138b7a20 100644
--- a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/tabs/media/source/MediaSourceGroup.kt
+++ b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/tabs/media/source/MediaSourceGroup.kt
@@ -288,13 +288,13 @@ internal fun SettingsScope.MediaSourceGroup(
MediaSourceItem(
item,
Modifier.combinedClickable(
- onClickLabel = "编辑",
+ onClickLabel = "編輯",
onLongClick = {
if (platform.isMobile()) {
sorter.start(state.mediaSources)
}
},
- onLongClickLabel = "开始排序",
+ onLongClickLabel = "開始排序",
onClick = startEditing,
).onRightClickIfSupported {
showMoreDropdown = true
diff --git a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/tabs/media/source/MediaSourceSubscriptionGroup.kt b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/tabs/media/source/MediaSourceSubscriptionGroup.kt
index 441fa3f0c..094a0a5e6 100644
--- a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/tabs/media/source/MediaSourceSubscriptionGroup.kt
+++ b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/tabs/media/source/MediaSourceSubscriptionGroup.kt
@@ -282,7 +282,7 @@ private fun SettingsScope.SubscriptionItem(
},
supportingContent = {
Text(
- "每 ${subscription.updatePeriod} 自动更新," + formatLastUpdated(subscription.lastUpdated),
+ "每 ${subscription.updatePeriod} 自動更新," + formatLastUpdated(subscription.lastUpdated),
)
},
trailingContent = {
diff --git a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/tabs/network/ServerSelectionGroup.kt b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/tabs/network/ServerSelectionGroup.kt
index 62909621f..a17e0f35c 100644
--- a/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/tabs/network/ServerSelectionGroup.kt
+++ b/app/shared/ui-settings/src/commonMain/kotlin/ui/settings/tabs/network/ServerSelectionGroup.kt
@@ -59,7 +59,7 @@ internal fun SettingsScope.ServerSelectionGroup(
// Danmaku source selection: null = automatic, true = global, false = mainland/HK
val options = listOf(
- null to "自动",
+ null to "自動",
true to stringResource(Lang.settings_network_danmaku_global_acceleration),
false to stringResource(Lang.settings_network_danmaku_mainland),
)
@@ -76,7 +76,7 @@ internal fun SettingsScope.ServerSelectionGroup(
} else {
stringResource(Lang.settings_network_danmaku_mainland)
}
- "自动选择:$autoSelected"
+ "自動選擇:$autoSelected"
}
true -> stringResource(Lang.settings_network_danmaku_global_acceleration_description)
diff --git a/app/shared/ui-settings/src/commonMain/kotlin/ui/update/DownloadingUpdatePopupCard.kt b/app/shared/ui-settings/src/commonMain/kotlin/ui/update/DownloadingUpdatePopupCard.kt
index 9791035b5..ca1e5afcd 100644
--- a/app/shared/ui-settings/src/commonMain/kotlin/ui/update/DownloadingUpdatePopupCard.kt
+++ b/app/shared/ui-settings/src/commonMain/kotlin/ui/update/DownloadingUpdatePopupCard.kt
@@ -143,11 +143,11 @@ fun DownloadingUpdatePopupCard(
)
// ListItem(
// headlineContent = {
-// Text("下载失败")
+// Text("下載失敗")
// },
// supportingContent = {
// Text(
-// error ?: "未知错误",
+// error ?: "未知錯誤",
// color = MaterialTheme.colorScheme.error,
// )
// },
diff --git a/app/shared/ui-settings/src/commonMain/kotlin/ui/update/NewVersionDialog.kt b/app/shared/ui-settings/src/commonMain/kotlin/ui/update/NewVersionDialog.kt
index 58d45d312..0effcd4f4 100644
--- a/app/shared/ui-settings/src/commonMain/kotlin/ui/update/NewVersionDialog.kt
+++ b/app/shared/ui-settings/src/commonMain/kotlin/ui/update/NewVersionDialog.kt
@@ -198,7 +198,7 @@ private fun NewVersionDialogPreview() {
Surface {
NewVersionPopupCard(
version = "4.8.0‑alpha01",
- changes = listOf("支持标签搜索", "支持缓存在线源"),
+ changes = listOf("支持標籤搜索", "支持緩存在線源"),
onDetailsClick = {},
onAutoUpdateClick = {},
onDismissRequest = {},
diff --git a/app/shared/ui-subject/src/androidMain/kotlin/ui/subject/details/components/SubjectDetailsHeader.android.kt b/app/shared/ui-subject/src/androidMain/kotlin/ui/subject/details/components/SubjectDetailsHeader.android.kt
index 30664da7e..a78c26309 100644
--- a/app/shared/ui-subject/src/androidMain/kotlin/ui/subject/details/components/SubjectDetailsHeader.android.kt
+++ b/app/shared/ui-subject/src/androidMain/kotlin/ui/subject/details/components/SubjectDetailsHeader.android.kt
@@ -59,7 +59,7 @@ fun PreviewSubjectDetailsHeaderCompletedLong() {
nextEpisodeIdToPlay = null,
),
subjectInfo = TestSubjectInfo.copy(
- nameCn = "孤独摇滚".repeat(20),
+ nameCn = "孤獨搖滾".repeat(20),
),
)
}
diff --git a/app/shared/ui-subject/src/androidMain/kotlin/ui/subject/episode/details/TestEpisodes.kt b/app/shared/ui-subject/src/androidMain/kotlin/ui/subject/episode/details/TestEpisodes.kt
index 156ef5662..1af5b05a4 100644
--- a/app/shared/ui-subject/src/androidMain/kotlin/ui/subject/episode/details/TestEpisodes.kt
+++ b/app/shared/ui-subject/src/androidMain/kotlin/ui/subject/episode/details/TestEpisodes.kt
@@ -26,8 +26,8 @@ val TestEpisodes = buildList {
EpisodeInfo(
id, EpisodeType.MainStory,
nameCn =
- if (id.rem(2) == 0) "中文剧集名称中文剧集名称中文剧集名称中文剧集名称"
- else "中文剧集名称",
+ if (id.rem(2) == 0) "中文劇集名稱中文劇集名稱中文劇集名稱中文劇集名稱"
+ else "中文劇集名稱",
name = "Episode Name $id",
sort = EpisodeSort((24 + id).toString()),
ep = EpisodeSort(id.toString()),
@@ -62,11 +62,11 @@ val TestSubjectRecommendations = buildList {
SubjectRecommendation(
subjectId = it.toLong(),
name = "Subject Recommendation $it",
- nameCn = "推荐条目中文名称 $it",
+ nameCn = "推薦條目中文名稱 $it",
imageUrl = "",
uri = null,
desc1 = "2021 年 10 月",
- desc2 = "2 万收藏 · 8.0 分",
+ desc2 = "2 萬收藏 · 8.0 分",
),
)
}
diff --git a/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/collection/UserCollectionsViewModel.kt b/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/collection/UserCollectionsViewModel.kt
index b8578ebca..751ad5781 100644
--- a/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/collection/UserCollectionsViewModel.kt
+++ b/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/collection/UserCollectionsViewModel.kt
@@ -115,7 +115,7 @@ class UserCollectionsViewModel : AbstractViewModel(), KoinComponent {
launchInBackground {
sessionStateProvider.eventFlow.filter { it is SessionEvent.NewLogin }.collectLatest {
- logger.info { "登录信息变更, 清空缓存" }
+ logger.info { "登錄信息變更, 清空緩存" }
// 如果有变更登录, 清空缓存
state.refresh()
}
diff --git a/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/collection/components/EditableSubjectCollectionTypeButton.kt b/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/collection/components/EditableSubjectCollectionTypeButton.kt
index 49f89bec9..13d0c9667 100644
--- a/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/collection/components/EditableSubjectCollectionTypeButton.kt
+++ b/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/collection/components/EditableSubjectCollectionTypeButton.kt
@@ -72,7 +72,7 @@ class EditableSubjectCollectionTypeState(
}
/**
- * 是否显示 "将所有剧集标记为看过" 对话框
+ * 是否显示 "將所有劇集標記爲看過" 对话框
*/
private val showSetAllEpisodesDoneDialogFlow = MutableStateFlow(false)
@@ -140,7 +140,7 @@ class EditableSubjectCollectionTypeState(
/**
* 展示当前收藏状态的按钮, 点击弹出 [EditCollectionTypeDropDown].
- * 当设置为 "看过" 时, 还会弹出 [SetAllEpisodeDoneDialog].
+ * 当设置为 "看過" 时, 还会弹出 [SetAllEpisodeDoneDialog].
*/
@Composable
fun EditableSubjectCollectionTypeButton(
@@ -170,7 +170,7 @@ fun EditableSubjectCollectionTypeButton(
}
/**
- * 用于显示 "同时设置所有剧集为看过" 的对话框.
+ * 用于显示 "同時設置所有劇集爲看過" 的对话框.
*
* [EditableSubjectCollectionTypeButton] 已经包含了这个 dialog, 所以一般来说不需要单独使用这个.
*
diff --git a/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/details/SubjectDetailsPage.kt b/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/details/SubjectDetailsPage.kt
index fb421f5ff..c56cb4ba0 100644
--- a/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/details/SubjectDetailsPage.kt
+++ b/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/details/SubjectDetailsPage.kt
@@ -428,7 +428,7 @@ private fun PlaceholderSubjectDetailsPage(
OutlinedButton(
onClick = {},
modifier = Modifier.placeholder(true),
- ) { Text("登录后可收藏") }
+ ) { Text("登錄後可收藏") }
},
rating = {
val scope = rememberCoroutineScope()
diff --git a/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/details/SubjectDetailsTestData.kt b/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/details/SubjectDetailsTestData.kt
index bc24ba387..b964d516b 100644
--- a/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/details/SubjectDetailsTestData.kt
+++ b/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/details/SubjectDetailsTestData.kt
@@ -36,7 +36,7 @@ internal fun testPersonInfo(
name: String,
type: PersonType = PersonType.Individual,
careers: List = emptyList(),
- summary: String = """一个测试人物""",
+ summary: String = """一個測試人物""",
locked: Boolean = false,
images: Images? = null,
) = PersonInfo(
@@ -58,7 +58,7 @@ internal fun testRelatedPersonInfo(
position: PersonPosition,
type: PersonType = PersonType.Individual,
careers: List = emptyList(),
- shortSummary: String = """一个测试人物""",
+ shortSummary: String = """一個測試人物""",
locked: Boolean = false,
images: Images? = null,
) = RelatedPersonInfo(
@@ -78,7 +78,7 @@ internal val TestSubjectStaffInfo
),
testRelatedPersonInfo(1, "はまじあき", position = PersonPosition.OriginalWork),
testRelatedPersonInfo(2, "斎藤圭一郎", position = PersonPosition.Director),
- testRelatedPersonInfo(3, "吉田恵里香", position = PersonPosition.CharacterDesign),
+ testRelatedPersonInfo(3, "吉田恵裏香", position = PersonPosition.CharacterDesign),
testRelatedPersonInfo(4, "菊谷知樹", position = PersonPosition.Music),
testRelatedPersonInfo(5, "けろりら", position = PersonPosition.CharacterDesign),
)
@@ -121,9 +121,9 @@ internal val TestSubjectCharacterList
testRelatedCharacterInfo(0, "後藤ひとり", "青山吉能"),
testRelatedCharacterInfo(1, "伊地知虹夏", "鈴代紗弓"),
testRelatedCharacterInfo(2, "山田リョウ山田リョウ山田リョウ", "水野朔"),
- testRelatedCharacterInfo(3, "喜多郁代", "長谷川育美"),
+ testRelatedCharacterInfo(3, "喜多鬱代", "長谷川育美"),
testRelatedCharacterInfo(4, "後藤直樹", "間島淳司"),
- testRelatedCharacterInfo(5, "後藤美智代", "末柄里恵"),
+ testRelatedCharacterInfo(5, "後藤美智代", "末柄裏恵"),
)
@TestOnly
@@ -138,8 +138,8 @@ internal fun testRelatedSubjectInfo(
@TestOnly
internal val TestRelatedSubjects
get() = listOf(
- testRelatedSubjectInfo("孤独摇滚 第二季", SubjectRelation.SEQUEL),
- testRelatedSubjectInfo("孤独摇滚 第零季", SubjectRelation.PREQUEL),
- testRelatedSubjectInfo("孤独摇滚 外传", SubjectRelation.DERIVED),
- testRelatedSubjectInfo("孤独摇滚 OAD", SubjectRelation.SPECIAL),
+ testRelatedSubjectInfo("孤獨搖滾 第二季", SubjectRelation.SEQUEL),
+ testRelatedSubjectInfo("孤獨搖滾 第零季", SubjectRelation.PREQUEL),
+ testRelatedSubjectInfo("孤獨搖滾 外傳", SubjectRelation.DERIVED),
+ testRelatedSubjectInfo("孤獨搖滾 OAD", SubjectRelation.SPECIAL),
)
diff --git a/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/details/components/RelatedSubjectsRow.kt b/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/details/components/RelatedSubjectsRow.kt
index b5e40b679..b7e45c0b5 100644
--- a/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/details/components/RelatedSubjectsRow.kt
+++ b/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/details/components/RelatedSubjectsRow.kt
@@ -145,8 +145,8 @@ private fun RelatedSubjectItem(
Box(Modifier.padding(horizontal = 12.dp, vertical = 8.dp)) {
Text(
when (it) {
- SubjectRelation.PREQUEL -> "前传"
- SubjectRelation.SEQUEL -> "续集"
+ SubjectRelation.PREQUEL -> "前傳"
+ SubjectRelation.SEQUEL -> "續集"
SubjectRelation.DERIVED -> "衍生"
SubjectRelation.SPECIAL -> "番外篇"
},
diff --git a/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/details/components/SubjectDetailsCollectionData.kt b/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/details/components/SubjectDetailsCollectionData.kt
index 3f9bd577b..084008758 100644
--- a/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/details/components/SubjectDetailsCollectionData.kt
+++ b/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/details/components/SubjectDetailsCollectionData.kt
@@ -39,7 +39,7 @@ fun SubjectDetailsDefaults.CollectionData(
)
Text(
remember(collection) {
- " / ${collection.dropped} 抛弃"
+ " / ${collection.dropped} 拋棄"
},
style = MaterialTheme.typography.labelLarge,
maxLines = 1,
diff --git a/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/episode/list/EpisodeListItem.kt b/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/episode/list/EpisodeListItem.kt
index 7d1b650c6..dd7b1734d 100644
--- a/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/episode/list/EpisodeListItem.kt
+++ b/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/episode/list/EpisodeListItem.kt
@@ -68,7 +68,7 @@ fun createTestEpisodeListItem(
episodeId: Int = random.nextInt(1, 1000),
ep: EpisodeSort? = null,
name: String = "Test Episode $episodeId",
- nameCn: String = "测试剧集 $episodeId",
+ nameCn: String = "測試劇集 $episodeId",
collectionType: UnifiedCollectionType = UnifiedCollectionType.entries.random(random),
// cacheStatus: EpisodeCacheStatus? = EpisodeCacheStatus.randomOrNull(random),
isBroadcast: Boolean = random.nextBoolean(),
diff --git a/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/episode/list/EpisodeListUiState.kt b/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/episode/list/EpisodeListUiState.kt
index 57e772333..ad4eca492 100644
--- a/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/episode/list/EpisodeListUiState.kt
+++ b/app/shared/ui-subject/src/commonMain/kotlin/ui/subject/episode/list/EpisodeListUiState.kt
@@ -63,7 +63,7 @@ data class EpisodeListUiState(
@TestOnly
val TestEpisodeListUiState
get() = EpisodeListUiState(
- subjectTitle = "测试标题",
+ subjectTitle = "測試標題",
mainEpisodes = TestEpisodeListItems,
otherEpisodes = TestEpisodeListItems.take(2)
.map { it.copy(sort = EpisodeSort(BigNum(it.sort.number!!), EpisodeType.SP)) },
@@ -72,7 +72,7 @@ val TestEpisodeListUiState
@TestOnly
val TestEpisodeListUiStateVeryLong
get() = EpisodeListUiState(
- subjectTitle = "测试标题",
+ subjectTitle = "測試標題",
mainEpisodes = buildList {
repeat(100) {
add(createTestEpisodeListItem(EpisodeSort(it + 1)))
diff --git a/app/shared/video-player/src/commonMain/kotlin/ui/progress/PlayerControllerBar.kt b/app/shared/video-player/src/commonMain/kotlin/ui/progress/PlayerControllerBar.kt
index 44465e829..37cef0bb5 100644
--- a/app/shared/video-player/src/commonMain/kotlin/ui/progress/PlayerControllerBar.kt
+++ b/app/shared/video-player/src/commonMain/kotlin/ui/progress/PlayerControllerBar.kt
@@ -300,12 +300,12 @@ object PlayerControllerDefaults {
private val DANMAKU_PLACEHOLDERS = listOf(
"來發一條彈幕吧~",
"小心,我要發射彈幕啦!",
- "每一條彈幕背後,都有一個不為人知的秘密",
+ "每一條彈幕背後,都有一個不為人知的祕密",
"召喚彈幕精靈!",
"這一刻的感受,只有你最懂",
"讓彈幕變得不一樣",
"彈幕世界大門已開",
- "字裡行間,藏著宇宙的秘密",
+ "字裡行間,藏著宇宙的祕密",
"在光與影的交織中,你的話語是唯一的真實",
"有趣的靈魂萬裡挑一",
"說點什麼",
diff --git a/danmaku/api/src/commonTest/kotlin/DanmakuMatcherTest.kt b/danmaku/api/src/commonTest/kotlin/DanmakuMatcherTest.kt
index 73e575fe9..f9e60378b 100644
--- a/danmaku/api/src/commonTest/kotlin/DanmakuMatcherTest.kt
+++ b/danmaku/api/src/commonTest/kotlin/DanmakuMatcherTest.kt
@@ -24,7 +24,7 @@ class DanmakuMatcherTest {
private val testData = json.decodeFromString(
ListSerializer(DanmakuEpisodeWithSubject.serializer()),
"""
- [{"id":"175640013","subjectName":"迷宫饭","episodeName":"第13话 炎龙3/良药"},{"id":"181620013","subjectName":"地下城里的人们","episodeName":"第13话"},{"id":"108940013","subjectName":"在地下城寻求邂逅是否搞错了什么","episodeName":"第13话 眷族物语(Familiar Myth)"},{"id":"140890013","subjectName":"饭沼。","episodeName":"第13话 ハンバーガー食べよう... 前編"},{"id":"86900001","subjectName":"ToHeart2 迷宫旅人","episodeName":"第1话 最坏的灾难"},{"id":"86900002","subjectName":"ToHeart2 迷宫旅人","episodeName":"第2话 たいせつなもの"},{"id":"145590013","subjectName":"阿拉德:逆转之轮","episodeName":"第13话 希望"},{"id":"119410001","subjectName":"在地下城寻求邂逅是否搞错了什么 OVA","episodeName":"第1话 在地下城寻求温泉是否搞错了什么"},{"id":"27690001","subjectName":"1月にはChristmas","episodeName":"第1话 OVA"},{"id":"27130003","subjectName":"奇兵大冒险 风之塔","episodeName":"第3话 おまたせコーダ"},{"id":"134610013","subjectName":"猪猪侠 超星萌宠","episodeName":"第13话 穿越阿五的回忆"},{"id":"27130001","subjectName":"奇兵大冒险 风之塔","episodeName":"第1话 よろしくプレリュード"},{"id":"27130002","subjectName":"奇兵大冒险 风之塔","episodeName":"第2话 まだまだカプリッチオ"},{"id":"166930013","subjectName":"如果历史是一群喵","episodeName":"第13话"},{"id":"4340013","subjectName":"中华小当家","episodeName":"第13话 鲶鱼面完成!命运的审判"},{"id":"23620013","subjectName":"银河飘流华尔分13","episodeName":"第13话 絶体絶命! さらば愛しきJr.たち"},{"id":"57460013","subjectName":"骷髅13","episodeName":"第13话 交叉的夹角"},{"id":"18790001","subjectName":"云界的迷宫","episodeName":"第1话 Volume 1"},{"id":"18790002","subjectName":"云界的迷宫","episodeName":"第2话 Volume 2"},{"id":"69820001","subjectName":"町一番のけちんぼう","episodeName":"第1话 TV Special"},{"id":"82670001","subjectName":"寒月一凍悪霊斬り","episodeName":"第1话 Volume 1"},{"id":"82670002","subjectName":"寒月一凍悪霊斬り","episodeName":"第2话 Volume 2"},{"id":"127970001","subjectName":"吸血鬼仆人 Alice in the Garden","episodeName":"剧场版"},{"id":"10760001","subjectName":"骷髅13 剧场版","episodeName":"第1话 骷髅13 剧场版"},{"id":"10770001","subjectName":"骷髅13 女王蜂","episodeName":"第1话 OVA"}]
+ [{"id":"175640013","subjectName":"迷宮飯","episodeName":"第13話 炎龍3/良藥"},{"id":"181620013","subjectName":"地下城裏的人們","episodeName":"第13話"},{"id":"108940013","subjectName":"在地下城尋求邂逅是否搞錯了什麼","episodeName":"第13話 眷族物語(Familiar Myth)"},{"id":"140890013","subjectName":"飯沼。","episodeName":"第13話 ハンバーガー食べよう... 前編"},{"id":"86900001","subjectName":"ToHeart2 迷宮旅人","episodeName":"第1話 最壞的災難"},{"id":"86900002","subjectName":"ToHeart2 迷宮旅人","episodeName":"第2話 たいせつなもの"},{"id":"145590013","subjectName":"阿拉德:逆轉之輪","episodeName":"第13話 希望"},{"id":"119410001","subjectName":"在地下城尋求邂逅是否搞錯了什麼 OVA","episodeName":"第1話 在地下城尋求溫泉是否搞錯了什麼"},{"id":"27690001","subjectName":"1月にはChristmas","episodeName":"第1話 OVA"},{"id":"27130003","subjectName":"奇兵大冒險 風之塔","episodeName":"第3話 おまたせコーダ"},{"id":"134610013","subjectName":"豬豬俠 超星萌寵","episodeName":"第13話 穿越阿五的回憶"},{"id":"27130001","subjectName":"奇兵大冒險 風之塔","episodeName":"第1話 よろしくプレリュード"},{"id":"27130002","subjectName":"奇兵大冒險 風之塔","episodeName":"第2話 まだまだカプリッチオ"},{"id":"166930013","subjectName":"如果歷史是一羣喵","episodeName":"第13話"},{"id":"4340013","subjectName":"中華小當家","episodeName":"第13話 鯰魚面完成!命運的審判"},{"id":"23620013","subjectName":"銀河飄流華爾分13","episodeName":"第13話 絶體絶命! さらば愛しきJr.たち"},{"id":"57460013","subjectName":"骷髏13","episodeName":"第13話 交叉的夾角"},{"id":"18790001","subjectName":"雲界的迷宮","episodeName":"第1話 Volume 1"},{"id":"18790002","subjectName":"雲界的迷宮","episodeName":"第2話 Volume 2"},{"id":"69820001","subjectName":"町一番のけちんぼう","episodeName":"第1話 TV Special"},{"id":"82670001","subjectName":"寒月一凍悪霊斬り","episodeName":"第1話 Volume 1"},{"id":"82670002","subjectName":"寒月一凍悪霊斬り","episodeName":"第2話 Volume 2"},{"id":"127970001","subjectName":"吸血鬼僕人 Alice in the Garden","episodeName":"劇場版"},{"id":"10760001","subjectName":"骷髏13 劇場版","episodeName":"第1話 骷髏13 劇場版"},{"id":"10770001","subjectName":"骷髏13 女王蜂","episodeName":"第1話 OVA"}]
""".trimIndent(),
).shuffled(Random(123))
@@ -32,7 +32,7 @@ class DanmakuMatcherTest {
fun testMatch() {
assertEquals(
"175640013",
- DanmakuMatchers.mostRelevant("迷宫饭", "第13话 炎龙3").match(testData)?.id,
+ DanmakuMatchers.mostRelevant("迷宮飯", "第13話 炎龍3").match(testData)?.id,
)
}
@@ -40,7 +40,7 @@ class DanmakuMatcherTest {
fun testEmpty() {
assertEquals(
null,
- DanmakuMatchers.mostRelevant("迷宫饭", "第13话 炎龙3").match(emptyList()),
+ DanmakuMatchers.mostRelevant("迷宮飯", "第13話 炎龍3").match(emptyList()),
)
}
}
\ No newline at end of file
diff --git a/danmaku/dandanplay/src/commonMain/kotlin/DandanplayDanmakuProvider.kt b/danmaku/dandanplay/src/commonMain/kotlin/DandanplayDanmakuProvider.kt
index 15d4c2c77..48469e1d0 100644
--- a/danmaku/dandanplay/src/commonMain/kotlin/DandanplayDanmakuProvider.kt
+++ b/danmaku/dandanplay/src/commonMain/kotlin/DandanplayDanmakuProvider.kt
@@ -130,7 +130,7 @@ class DandanplayDanmakuProvider(
}.getOrNull()
val prefixedExpectedEpisodeName =
- "第${(request.episodeEp ?: request.episodeSort).toString().removePrefix("0")}话 " + request.episodeName
+ "第${(request.episodeEp ?: request.episodeSort).toString().removePrefix("0")}話 " + request.episodeName
val matcher = DanmakuMatchers.mostRelevant(
request.subjectPrimaryName,
prefixedExpectedEpisodeName,
@@ -236,9 +236,9 @@ class DandanplayDanmakuProvider(
dandanplayClient.searchEpisode(
subjectName = name.trim().substringBeforeLast(" "),
episodeName = null, // 用我们的匹配算法
- // episodeName = "第${(request.episodeEp ?: request.episodeSort).toString().removePrefix("0")}话",
+ // episodeName = "第${(request.episodeEp ?: request.episodeSort).toString().removePrefix("0")}話",
// 弹弹的是 EP 顺序
- // 弹弹数据库有时候会只有 "第x话" 没有具体标题, 所以不带标题搜索就够了
+ // 弹弹数据库有时候会只有 "第x話" 没有具体标题, 所以不带标题搜索就够了
).animes
}.onFailure {
if (it is CancellationException) throw it
diff --git a/danmaku/ui/src/commonMain/kotlin/StyledDanmaku.kt b/danmaku/ui/src/commonMain/kotlin/StyledDanmaku.kt
index ab9cb0647..a53f958da 100644
--- a/danmaku/ui/src/commonMain/kotlin/StyledDanmaku.kt
+++ b/danmaku/ui/src/commonMain/kotlin/StyledDanmaku.kt
@@ -105,7 +105,7 @@ internal fun dummyDanmaku(
measurer: TextMeasurer,
baseStyle: TextStyle,
style: DanmakuStyle,
- dummyText: String = "dummy 占位 攟 の \uD83D\uDE04"
+ dummyText: String = "dummy 佔位 攟 の \uD83D\uDE04"
): StyledDanmaku {
return StyledDanmaku(
presentation = DanmakuPresentation(
diff --git a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTestRecent202503.kt b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTestRecent202503.kt
index 7445e600b..914a5446a 100644
--- a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTestRecent202503.kt
+++ b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTestRecent202503.kt
@@ -32,7 +32,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社&西农YUI汉化组】[暗芝居 第十四季_Yami Shibai 14][09][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社&西農YUI漢化組】[暗芝居 第十四季_Yami Shibai 14][09][x264 1080p][CHS]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -40,7 +40,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 精灵来日 / 歡迎來到日本,妖精小姐。 / 日本へようこそエルフさん。 / Nihon e Youkoso Elf-san. - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 精靈來日 / 歡迎來到日本,妖精小姐。 / 日本へようこそエルフさん。 / Nihon e Youkoso Elf-san. - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -48,7 +48,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[黑白字幕组]中年男的异世界网购生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [08] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]中年男的異世界網購生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [08] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -56,7 +56,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[黑白字幕组]魔术发明家 ~异世界魔法的制作方法~ / Magic Maker: Isekai Mahou no Tsukurikata [08] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]魔術發明家 ~異世界魔法的製作方法~ / Magic Maker: Isekai Mahou no Tsukurikata [08] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -64,7 +64,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[黑白字幕组]虽然我是注定没落的贵族,闲来无事只好来深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita [07] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]雖然我是註定沒落的貴族,閒來無事只好來深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita [07] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -80,7 +80,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[桜都字幕组] 我和班上最讨厌的女生结婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [09][1080p][简繁内封]")
+ parse("[桜都字幕組] 我和班上最討厭的女生結婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [09][1080p][簡繁內封]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -96,7 +96,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[黑白字幕组]虽然我是注定没落的贵族,闲来无事只好来深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita [07] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]雖然我是註定沒落的貴族,閒來無事只好來深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita [07] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -108,7 +108,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690631-690630-690629-690628-690627-690626-690625-690624-690623-690622`() {
kotlin.run {
val r =
- parse("[黑白字幕组]魔术发明家 ~异世界魔法的制作方法~ / Magic Maker: Isekai Mahou no Tsukurikata [08] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]魔術發明家 ~異世界魔法的製作方法~ / Magic Maker: Isekai Mahou no Tsukurikata [08] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -116,7 +116,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[桜都字幕组] 我和班上最讨厌的女生结婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [09][1080p][简体内嵌]")
+ parse("[桜都字幕組] 我和班上最討厭的女生結婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [09][1080p][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -124,21 +124,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[黑白字幕组]中年男的异世界网购生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [08] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]中年男的異世界網購生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [08] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 新石纪 第四季 科学与未来 / Dr.STONE:Science Future [04] [1080p] [繁日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 新石紀 第四季 科學與未來 / Dr.STONE:Science Future [04] [1080p] [繁日內嵌] [2025年1月番]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第四季 科学与未来 / Dr.STONE:Science Future [04] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第四季 科學與未來 / Dr.STONE:Science Future [04] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -159,14 +159,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[夜莺家族&YYQ字幕组]New Doraemon 哆啦A梦新番[852][2025.03.01][AVC][1080P][GB_JP]")
+ val r = parse("[夜鶯家族&YYQ字幕組]New Doraemon 哆啦A夢新番[852][2025.03.01][AVC][1080P][GB_JP]")
assertEquals("852..852", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("你的颜色[简繁字幕].The.Colors.Within.2024.1080p.BluRay.x264.DTS-CTRLHD")
+ val r = parse("你的顏色[簡繁字幕].The.Colors.Within.2024.1080p.BluRay.x264.DTS-CTRLHD")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -185,35 +185,35 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690620-690619-690618-690617-690616-690614-690612-690611-690610-690608`() {
kotlin.run {
- val r = parse("[织梦字幕组] 与猫共度的夜晚 Yoru wa Neko to Issho 3 [73] [HEVC-10bit 1080P] [简日双语] [特效字幕]")
+ val r = parse("[織夢字幕組] 與貓共度的夜晚 Yoru wa Neko to Issho 3 [73] [HEVC-10bit 1080P] [簡日雙語] [特效字幕]")
assertEquals("73..73", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 坂本日常 / SAKAMOTO DAYS [08][WebRip][HEVC_AAC][简繁日內封]")
+ val r = parse("[北宇治字幕組] 坂本日常 / SAKAMOTO DAYS [08][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 坂本日常 / SAKAMOTO DAYS [08][WebRip][HEVC_AAC][繁日內嵌]")
+ val r = parse("[北宇治字幕組] 坂本日常 / SAKAMOTO DAYS [08][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 坂本日常 / SAKAMOTO DAYS [08][WebRip][HEVC_AAC][简日內嵌]")
+ val r = parse("[北宇治字幕組] 坂本日常 / SAKAMOTO DAYS [08][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[吞噬星空][第161集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[吞噬星空][第161集][國語中字][WEB-MKV][2160P]")
assertEquals("161..161", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -221,14 +221,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[整理搬运] 日常 (Nichijou/My Ordinary Life):TV动画+OVA+漫画+音乐+其他;日语音轨; 外挂简中字幕 (整理时间:2023.05.13)")
+ parse("[整理搬運] 日常 (Nichijou/My Ordinary Life):TV動畫+OVA+漫畫+音樂+其他;日語音軌; 外掛簡中字幕 (整理時間:2023.05.13)")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][09][WebRip][1080P][AVC 8bit][简日内嵌]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][09][WebRip][1080P][AVC 8bit][簡日內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -236,7 +236,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[SweetSub&LoliHouse] 刹那之花 / Momentary Lily - 09v2 [WebRip 1080p HEVC-10bit AAC][简日内封字幕]")
+ parse("[SweetSub&LoliHouse] 剎那之花 / Momentary Lily - 09v2 [WebRip 1080p HEVC-10bit AAC][簡日內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -244,14 +244,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[蓝白汉化] 战队红战士在异世界当冒险者 / Sentai Red Isekai de Boukensha ni Naru [08][1080p][WebRip][x264_AAC][CHS]")
+ parse("[藍白漢化] 戰隊紅戰士在異世界當冒險者 / Sentai Red Isekai de Boukensha ni Naru [08][1080p][WebRip][x264_AAC][CHS]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][09][WebRip][1080P][AV1 10bit][简日内封]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][09][WebRip][1080P][AV1 10bit][簡日內封]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -263,7 +263,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690607-690606-690605-690604-690602-690601-690600-690599-690598-690596`() {
kotlin.run {
val r =
- parse("[整理搬运] 青出于蓝/青蓝姻缘/未婚关系 (藍より青し) (Ai Yori Aoshi):TV动画 (2002年版、2003年版)+OVA+漫画+CD+其他;日语音轨; 外挂繁中字幕 (整理时间:2024.06.30)")
+ parse("[整理搬運] 青出於藍/青藍姻緣/未婚關係 (藍より青し) (Ai Yori Aoshi):TV動畫 (2002年版、2003年版)+OVA+漫畫+CD+其他;日語音軌; 外掛繁中字幕 (整理時間:2024.06.30)")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -271,7 +271,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[整理搬运] 轻音少女 (けいおん !) (K-ON !):TV动画 (2009年版、2010年版)+剧场版+漫画+演唱会+其他;日语音轨; 外挂简中字幕 (整理时间:2023.05.09)")
+ parse("[整理搬運] 輕音少女 (けいおん !) (K-ON !):TV動畫 (2009年版、2010年版)+劇場版+漫畫+演唱會+其他;日語音軌; 外掛簡中字幕 (整理時間:2023.05.09)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -287,7 +287,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[丸子家族][樱桃小丸子第二期(Chibi Maruko-chan II)][1469]樱家的女儿节玩偶骚动&小玉想要午饭添菜[2025.03.02][GB][1080P][MP4]")
+ parse("[丸子家族][櫻桃小丸子第二期(Chibi Maruko-chan II)][1469]櫻家的女兒節玩偶騷動&小玉想要午飯添菜[2025.03.02][GB][1080P][MP4]")
assertEquals("1469..1469", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -302,7 +302,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 灰色:幻影扳机 / Grisaia:Phantom Trigger [09][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 灰色:幻影扳機 / Grisaia:Phantom Trigger [09][1080p][簡繁內封]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -316,7 +316,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 灰色:幻影扳机 / Grisaia:Phantom Trigger [09][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 灰色:幻影扳機 / Grisaia:Phantom Trigger [09][1080p][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -324,7 +324,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[整理搬运] 热带雨林的爆笑生活/哈雷小子 (ジャングルはいつもハレのちグゥ) (Haré+Guu):TV动画+OVA+漫画+音乐+其他;日语音轨; 外挂简中字幕 (整理时间:2023.12.12)")
+ parse("[整理搬運] 熱帶雨林的爆笑生活/哈雷小子 (ジャングルはいつもハレのちグゥ) (Haré+Guu):TV動畫+OVA+漫畫+音樂+其他;日語音軌; 外掛簡中字幕 (整理時間:2023.12.12)")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -332,7 +332,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("【归档】[整理搬运] 青出于蓝/青蓝姻缘/未婚关系 (藍より青し) (Ai Yori Aoshi):TV动画 (2002年版、2003年版)+OVA+漫画+CD+其他;日语音轨; 外挂繁中字幕 (整理时间:2024.06.30)")
+ parse("【歸檔】[整理搬運] 青出於藍/青藍姻緣/未婚關係 (藍より青し) (Ai Yori Aoshi):TV動畫 (2002年版、2003年版)+OVA+漫畫+CD+其他;日語音軌; 外掛繁中字幕 (整理時間:2024.06.30)")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -350,21 +350,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[无名记忆 Act.2 / Unnamed Memory Act.2][20][1080p][简日双语][招募翻译时轴]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[無名記憶 Act.2 / Unnamed Memory Act.2][20][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] 青之箱 - 21 [NF WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 青之箱 - 21 [NF WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] 青之箱 - 21 [NF WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 青之箱 - 21 [NF WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -372,7 +372,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 终究、与你相恋 / Douse, Koishite Shimaunda - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 終究、與你相戀 / Douse, Koishite Shimaunda - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -380,7 +380,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[桜都字幕组] 在地下城寻求邂逅是否搞错了什么 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [14][1080p][简繁内封]")
+ parse("[桜都字幕組] 在地下城尋求邂逅是否搞錯了什麼 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [14][1080p][簡繁內封]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -388,7 +388,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] Shangri-La Frontier / 香格里拉·开拓异境~粪作猎手挑战神作~ - 46 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] Shangri-La Frontier / 香格里拉·開拓異境~糞作獵手挑戰神作~ - 46 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("46..46", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -404,14 +404,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[桜都字幕组] 在地下城寻求邂逅是否搞错了什么 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [14][1080p][简体内嵌]")
+ parse("[桜都字幕組] 在地下城尋求邂逅是否搞錯了什麼 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [14][1080p][簡體內嵌]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[喵萌奶茶屋&LoliHouse] 金牌得主 / Medalist - 09 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ val r = parse("[喵萌奶茶屋&LoliHouse] 金牌得主 / Medalist - 09 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -430,7 +430,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[Billion Meta Lab] 你的颜色 [1080P][WEBRIP][简日内嵌双语]")
+ val r = parse("[Billion Meta Lab] 你的顏色 [1080P][WEBRIP][簡日內嵌雙語]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -444,14 +444,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[金牌得主 / Medalist][09][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[金牌得主 / Medalist][09][1080p][簡日雙語][招募翻譯]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] 我独自升级 第二季 -起于暗影- - 09 [CR WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 我獨自升級 第二季 -起於暗影- - 09 [CR WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -502,7 +502,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690567-690566-690565-690564-690563-690562-690561-690559-690558-690557`() {
kotlin.run {
val r =
- parse("[猎户手抄部] 神剑闯江湖 -明治剑客浪漫谭- 京都动乱 / Rurouni Kenshin:Meiji Kenkaku Romantan - Kyoto Douran [44] [1080p] [繁日内嵌] [2024年10月番]")
+ parse("[獵戶手抄部] 神劍闖江湖 -明治劍客浪漫譚- 京都動亂 / Rurouni Kenshin:Meiji Kenkaku Romantan - Kyoto Douran [44] [1080p] [繁日內嵌] [2024年10月番]")
assertEquals("44..44", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -510,7 +510,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户手抄部] 浪客剑心 -明治剑客浪漫谭- 京都动乱 / Rurouni Kenshin: Meiji Kenkaku Romantan - Kyoto Douran [44] [1080p] [简日内嵌] [2024年10月番]")
+ parse("[獵戶手抄部] 浪客劍心 -明治劍客浪漫譚- 京都動亂 / Rurouni Kenshin: Meiji Kenkaku Romantan - Kyoto Douran [44] [1080p] [簡日內嵌] [2024年10月番]")
assertEquals("44..44", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -518,7 +518,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[芝士动物朋友] 石纪元 科学与未来 / Dr.STONE SCIENCE FUTURE [03][CR-WebRip][1080p][HEVC+AAC][简繁内封](新石纪 第四季 S4)")
+ parse("[芝士動物朋友] 石紀元 科學與未來 / Dr.STONE SCIENCE FUTURE [03][CR-WebRip][1080p][HEVC+AAC][簡繁內封](新石紀 第四季 S4)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -526,7 +526,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 我和班上最讨厌的女生结婚了。 / クラスの大嫌いな女子と結婚することになった。 / Kurakon - 09 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 我和班上最討厭的女生結婚了。 / クラスの大嫌いな女子と結婚することになった。 / Kurakon - 09 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -541,7 +541,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[黑白字幕组]我的可爱对黑岩目高不管用 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai [08] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]我的可愛對黑巖目高不管用 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai [08] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -549,7 +549,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[黑白字幕组]我的可爱对黑岩目高不管用 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai [08] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]我的可愛對黑巖目高不管用 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai [08] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -563,7 +563,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[冻牌 / Touhai: Ura Rate Mahjong Touhai Roku][20][1080p][简体][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[凍牌 / Touhai: Ura Rate Mahjong Touhai Roku][20][1080p][簡體][招募翻譯]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -581,7 +581,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690556-690551-690549-690548-690547-690546-690545-690544-690543-690542`() {
kotlin.run {
- val r = parse("[仙逆][第78集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[仙逆][第78集][國語中字][WEB-MKV][2160P]")
assertEquals("78..78", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -595,7 +595,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】【龙珠DAIMA Dragon Ball DAIMA】【19】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【10月新番】【龍珠DAIMA Dragon Ball DAIMA】【19】【GB_MP4】【1920X1080】")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -609,7 +609,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】【龙珠DAIMA Dragon Ball DAIMA】【19】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【10月新番】【龍珠DAIMA Dragon Ball DAIMA】【19】【GB_MP4】【1280X720】")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -625,14 +625,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[新Sub][7月新番][不时轻声地以俄语遮羞的邻座艾莉同学_Tokidoki Bosotto Russia-go de Dereru Tonari no Alya-san][09][HEVC][10Bit][1080P][简日双语][招募翻译]")
+ parse("[新Sub][7月新番][不時輕聲地以俄語遮羞的鄰座艾莉同學_Tokidoki Bosotto Russia-go de Dereru Tonari no Alya-san][09][HEVC][10Bit][1080P][簡日雙語][招募翻譯]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[雪飄工作室][ひみつのアイプリ/Himitsu_no_Aipri/秘密的美妙公主][47][简繁外挂](检索:/美妙旋律/美妙天堂/美妙頻道/美妙魔法)")
+ val r = parse("[雪飄工作室][ひみつのアイプリ/Himitsu_no_Aipri/祕密的美妙公主][47][簡繁外掛](檢索:/美妙旋律/美妙天堂/美妙頻道/美妙魔法)")
assertEquals("47..47", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -640,7 +640,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[雪飄工作室][ひみつのアイプリ/Himitsu_no_Aipri/秘密的美妙公主][720P][47][繁](检索:/美妙旋律/美妙天堂/美妙頻道/美妙魔法)")
+ parse("[雪飄工作室][ひみつのアイプリ/Himitsu_no_Aipri/祕密的美妙公主][720P][47][繁](檢索:/美妙旋律/美妙天堂/美妙頻道/美妙魔法)")
assertEquals("47..47", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -648,7 +648,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 离开A级队伍的我,和从前的弟子往迷宫深处迈进 / Aparida - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 離開A級隊伍的我,和從前的弟子往迷宮深處邁進 / Aparida - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -660,7 +660,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690541-690540-690539-690538-690537-690536-690535-690533-690531-690530`() {
kotlin.run {
val r =
- parse("[LoliHouse] 我与尼特女忍者的莫名同居生活 / NEET Kunoichi - 09 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 我與尼特女忍者的莫名同居生活 / NEET Kunoichi - 09 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -683,14 +683,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[Strange-Raw] 坂本日常 第一季 / SAKAMOTO DAYS S01 [08] [Bilibili] [WEB-DL] [1080P AVC-8Bits AAC 2.0] [简日内嵌字幕]")
+ parse("[Strange-Raw] 坂本日常 第一季 / SAKAMOTO DAYS S01 [08] [Bilibili] [WEB-DL] [1080P AVC-8Bits AAC 2.0] [簡日內嵌字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云歌字幕组][1月新番][欢迎来到日本,精灵小姐][08][HEVC][x265 10bit][1080p][简日双语]")
+ val r = parse("[雲歌字幕組][1月新番][歡迎來到日本,精靈小姐][08][HEVC][x265 10bit][1080p][簡日雙語]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -698,7 +698,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[VCB-Studio] 刀剑神域 / Sword Art Online / ソードアート・オンライン 10-bit 1080p HEVC BDRip [S1-2+EE+序列之争 Reseed Fin]")
+ parse("[VCB-Studio] 刀劍神域 / Sword Art Online / ソードアート・オンライン 10-bit 1080p HEVC BDRip [S1-2+EE+序列之爭 Reseed Fin]")
assertEquals("01..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -706,7 +706,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[悠哈璃羽字幕社&LoliHouse] 天久鹰央的推理病历表 / Ameku Takao's Detective Karte - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[悠哈璃羽字幕社&LoliHouse] 天久鷹央的推理病歷表 / Ameku Takao's Detective Karte - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -714,7 +714,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] S级怪兽《贝希摩斯》被误认成小猫,成为精灵女孩的骑士(宠物)一起生活 / Beheneko - 10 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] S級怪獸《貝希摩斯》被誤認成小貓,成爲精靈女孩的騎士(寵物)一起生活 / Beheneko - 10 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -722,7 +722,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[雪飘工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/与你同为 偶像光之美少女♪][1080p][05][简繁外挂](检索:Q娃)")
+ parse("[雪飄工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/與你同爲 偶像光之美少女♪][1080p][05][簡繁外掛](檢索:Q娃)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -730,7 +730,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[雪飄工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/与你同为 偶像光之美少女♪][720p][05][繁體內嵌](檢索:Q娃)")
+ parse("[雪飄工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/與你同爲 偶像光之美少女♪][720p][05][繁體內嵌](檢索:Q娃)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -742,21 +742,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690529-690528-690527-690526-690525-690524-690523-690522-690517-690516`() {
kotlin.run {
val r =
- parse("[雪飘工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/与你同为 偶像光之美少女♪][720p][05][简体内嵌](检索:Q娃)")
+ parse("[雪飄工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/與你同爲 偶像光之美少女♪][720p][05][簡體內嵌](檢索:Q娃)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【DBFC字幕组】【龙珠 大魔】【020end】【中日双语字幕】【1080P】【MP4】")
+ val r = parse("【DBFC字幕組】【龍珠 大魔】【020end】【中日雙語字幕】【1080P】【MP4】")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] 我独自升级 第二季 -起于暗影- - 09 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 我獨自升級 第二季 -起於暗影- - 09 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -779,14 +779,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[MingY] 随兴旅 -That's Journey- / Zatsu Tabi: That's Journey [01][先行版][WebRip][简日内嵌](检索:杂旅)")
+ parse("[MingY] 隨興旅 -That's Journey- / Zatsu Tabi: That's Journey [01][先行版][WebRip][簡日內嵌](檢索:雜旅)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社&西农YUI汉化组】[暗芝居 第十四季_Yami Shibai 14][08][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社&西農YUI漢化組】[暗芝居 第十四季_Yami Shibai 14][08][x264 1080p][CHS]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -794,7 +794,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 我独自升级 -起于暗影- / Ore dake Level Up na Ken / Solo Leveling - 21 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 我獨自升級 -起於暗影- / Ore dake Level Up na Ken / Solo Leveling - 21 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -802,7 +802,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[雪飘工作室][魔法つかいプリキュア!!~MIRAI DAYS~/Maho_Girls_Precure!!/魔法少女 光之美少女!!~未来的日子~][1080p][08][简繁外挂](检索:Q娃)")
+ parse("[雪飄工作室][魔法つかいプリキュア!!~MIRAI DAYS~/Maho_Girls_Precure!!/魔法少女 光之美少女!!~未來的日子~][1080p][08][簡繁外掛](檢索:Q娃)")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -810,7 +810,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[雪飘工作室][魔法つかいプリキュア!!~MIRAI DAYS~/Maho_Girls_Precure!!/魔法少女 光之美少女!!~未来的日子~][720p][08][简体内嵌](检索:Q娃)")
+ parse("[雪飄工作室][魔法つかいプリキュア!!~MIRAI DAYS~/Maho_Girls_Precure!!/魔法少女 光之美少女!!~未來的日子~][720p][08][簡體內嵌](檢索:Q娃)")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -829,7 +829,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&澄空学园&华盟字幕社&千夏字幕组】★10月新番[冻牌][20][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組&澄空學園&華盟字幕社&千夏字幕組】★10月新番[凍牌][20][1080P][簡體][MP4]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -843,7 +843,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【豌豆字幕组】[青之驱魔师 终夜篇 / Ao no Exorcist _Yosuga Hen][09][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組】[青之驅魔師 終夜篇 / Ao no Exorcist _Yosuga Hen][09][簡體][1080P][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -857,28 +857,28 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] 药屋少女的呢喃 第二季 - 08 [CR WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 藥屋少女的呢喃 第二季 - 08 [CR WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银色子弹字幕组][名侦探柯南][第1155集 追踪!侦探出租车2][WEBRIP][简繁日多语MKV][1080P]")
+ val r = parse("[銀色子彈字幕組][名偵探柯南][第1155集 追蹤!偵探出租車2][WEBRIP][簡繁日多語MKV][1080P]")
assertEquals("1155..1155", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银色子弹字幕组][名侦探柯南][第1155集 追蹤!偵探計程車2][WEBRIP][繁日雙語MP4][1080P]")
+ val r = parse("[銀色子彈字幕組][名偵探柯南][第1155集 追蹤!偵探計程車2][WEBRIP][繁日雙語MP4][1080P]")
assertEquals("1155..1155", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银色子弹字幕组][名侦探柯南][第1155集 追踪!侦探出租车2][WEBRIP][简日双语MP4][1080P]")
+ val r = parse("[銀色子彈字幕組][名偵探柯南][第1155集 追蹤!偵探出租車2][WEBRIP][簡日雙語MP4][1080P]")
assertEquals("1155..1155", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -933,14 +933,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[霜庭云花Sub][BanG Dream! Ave Mujica][08][1080P][AVC AAC][简日双语][WebRip]")
+ val r = parse("[霜庭雲花Sub][BanG Dream! Ave Mujica][08][1080P][AVC AAC][簡日雙語][WebRip]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] 龙珠大魔 - 20 [CR WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 龍珠大魔 - 20 [CR WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -948,7 +948,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 异修罗 第二季 / Ishura S2 - 08 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 異修羅 第二季 / Ishura S2 - 08 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -982,7 +982,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 想星的大天使 Myth of Emotions / Sousei no Aquarion: Myth of Emotions - 08 [WebRip 1080p HEVC-10bit AAC][无字幕]")
+ parse("[LoliHouse] 想星的大天使 Myth of Emotions / Sousei no Aquarion: Myth of Emotions - 08 [WebRip 1080p HEVC-10bit AAC][無字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1006,7 +1006,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 青箱 / Ao no Hako / Blue Box - 20 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 青箱 / Ao no Hako / Blue Box - 20 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1029,21 +1029,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[哆啦字幕组][哆啦A梦大山版附映中篇 Doraemon1979][1998.3.7][1080P][WEB][简日&繁日][哆啦A梦归来了][数码修复版][MKV]")
+ parse("[哆啦字幕組][哆啦A夢大山版附映中篇 Doraemon1979][1998.3.7][1080P][WEB][簡日&繁日][哆啦A夢歸來了][數碼修復版][MKV]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银色子弹字幕组][名侦探柯南][第60集 插画家杀人事件][WEBRIP][简日双语MP4/繁日雙語MP4/简繁日多语MKV][1080P]")
+ val r = parse("[銀色子彈字幕組][名偵探柯南][第60集 插畫家殺人事件][WEBRIP][簡日雙語MP4/繁日雙語MP4/簡繁日多語MKV][1080P]")
assertEquals("60..60", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][斗破苍穹 第5季][Fights Break Sphere Ⅴ][2022][136][HEVC][GB][4K]")
+ val r = parse("[GM-Team][國漫][鬥破蒼穹 第5季][Fights Break Sphere Ⅴ][2022][136][HEVC][GB][4K]")
assertEquals("136..136", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1054,7 +1054,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690483-690482-690481-690479-690478-690477-690474-690473-690472-690471`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][斗破苍穹 第5季][Fights Break Sphere Ⅴ][2022][136][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][鬥破蒼穹 第5季][Fights Break Sphere Ⅴ][2022][136][AVC][GB][1080P]")
assertEquals("136..136", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1062,7 +1062,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 群花绽放,仿如修罗 / Hana wa Saku Shura no Gotoku - 08 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 羣花綻放,仿如修羅 / Hana wa Saku Shura no Gotoku - 08 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1070,28 +1070,28 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[白恋字幕组][超电磁侠波鲁吉斯V][超電磁マシーン ボルテスV][Chou Denji Machine Voltes V][1977][TV 01-40 Fin][1080p][内封简中字幕][REV]")
+ parse("[白戀字幕組][超電磁俠波魯吉斯V][超電磁マシーン ボルテスV][Chou Denji Machine Voltes V][1977][TV 01-40 Fin][1080p][內封簡中字幕][REV]")
assertEquals("01..40", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] 药屋少女的呢喃 第二季 - 08 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 藥屋少女的呢喃 第二季 - 08 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[斗破苍穹年番][第136集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[鬥破蒼穹年番][第136集][國語中字][WEB-MKV][2160P]")
assertEquals("136..136", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] 龙珠大魔 - 20 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 龍珠大魔 - 20 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -1099,14 +1099,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 不幸职业【鉴定士】实则最强 / Fuguushoku 'Kanteishi' ga Jitsu wa Saikyou Datta - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 不幸職業【鑑定士】實則最強 / Fuguushoku 'Kanteishi' ga Jitsu wa Saikyou Datta - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[漫猫字幕组][1月新番][BanG Dream! Ave Mujica][08][1080p][MP4][简中]")
+ val r = parse("[漫貓字幕組][1月新番][BanG Dream! Ave Mujica][08][1080p][MP4][簡中]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1120,7 +1120,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[漫猫字幕组][1月新番][BanG Dream! Ave Mujica][07][1080p][MP4][简中]")
+ val r = parse("[漫貓字幕組][1月新番][BanG Dream! Ave Mujica][07][1080p][MP4][簡中]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1146,21 +1146,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] Shangri-La Frontier / 香格里拉·开拓异境~粪作猎手挑战神作~ - 45 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] Shangri-La Frontier / 香格里拉·開拓異境~糞作獵手挑戰神作~ - 45 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("45..45", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[凡人修仙传][第132集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[凡人修仙傳][第132集][國語中字][WEB-MKV][2160P]")
assertEquals("132..132", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][08][WebRip][1080P][AV1 10bit][简日内封]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][08][WebRip][1080P][AV1 10bit][簡日內封]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1168,14 +1168,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 龙珠 大魔 / Dragon Ball Daima - 20 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 龍珠 大魔 / Dragon Ball Daima - 20 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[青箱 / Ao no Hako / Blue Box][20][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[青箱 / Ao no Hako / Blue Box][20][1080p][簡日雙語][招募翻譯]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1189,14 +1189,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][07][WebRip][1080P][AV1 10bit][简日内封]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][07][WebRip][1080P][AV1 10bit][簡日內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][06][WebRip][1080P][AV1 10bit][简日内封]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][06][WebRip][1080P][AV1 10bit][簡日內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1207,28 +1207,28 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690460-690459-690458-690457-690456-690455-690454-690453-690452-690451`() {
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][05][WebRip][1080P][AV1 10bit][简日内封]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][05][WebRip][1080P][AV1 10bit][簡日內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][04][WebRip][1080P][AV1 10bit][简日内封]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][04][WebRip][1080P][AV1 10bit][簡日內封]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][03][WebRip][1080P][AV1 10bit][简日内封]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][03][WebRip][1080P][AV1 10bit][簡日內封]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][02][WebRip][1080P][AV1 10bit][简日内封]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][02][WebRip][1080P][AV1 10bit][簡日內封]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1243,7 +1243,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][01][WebRip][1080P][AV1 10bit][简日内封]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][01][WebRip][1080P][AV1 10bit][簡日內封]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1251,21 +1251,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 青之箱 / 青春之箱 / 青春盒子 / 蓝箱 / Ao no Hako / Blue Box [19][WebRip][HEVC_AAC][简繁日内封]")
+ parse("[北宇治字幕組] 青之箱 / 青春之箱 / 青春盒子 / 藍箱 / Ao no Hako / Blue Box [19][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 青之箱 / 蓝箱 / Ao no Hako / Blue Box [19][WebRip][HEVC_AAC][简日内嵌]")
+ val r = parse("[北宇治字幕組] 青之箱 / 藍箱 / Ao no Hako / Blue Box [19][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 青春之箱 / 青春盒子 / Ao no Hako / Blue Box [19][WebRip][HEVC_AAC][繁日內嵌]")
+ val r = parse("[北宇治字幕組] 青春之箱 / 青春盒子 / Ao no Hako / Blue Box [19][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1290,21 +1290,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[天久鹰央的推理病历表_Ameku Takao no Suiri Karte][07][1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[天久鷹央的推理病歷表_Ameku Takao no Suiri Karte][07][1080p][CHS]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[Amor压制组][药师少女的独语 藥師少女的獨語 Kusuriya no Hitorigoto][32][简繁内封][WEBDL][1080P][MKV]")
+ val r = parse("[Amor壓制組][藥師少女的獨語 藥師少女的獨語 Kusuriya no Hitorigoto][32][簡繁內封][WEBDL][1080P][MKV]")
assertEquals("32..32", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][凡人修仙传 外海风云][Fan Ren Xiu Xian Zhuan][2024][01-08][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][凡人修仙傳 外海風雲][Fan Ren Xiu Xian Zhuan][2024][01-08][AVC][GB][1080P]")
assertEquals("01..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1318,7 +1318,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕·毁片党】 这家公司里有我喜欢的人 第08集 GB_CN HEVC_opus 1080p")
+ val r = parse("【極影字幕·毀片黨】 這家公司裏有我喜歡的人 第08集 GB_CN HEVC_opus 1080p")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1326,7 +1326,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 大叔转生恶役大小姐 / Akuyaku Reijou Tensei Ojisan - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 大叔轉生惡役大小姐 / Akuyaku Reijou Tensei Ojisan - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1340,7 +1340,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[黄昏旅店 / Tasokare Hotel][09][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[黃昏旅店 / Tasokare Hotel][09][1080p][簡日雙語][招募翻譯]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1366,7 +1366,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【豌豆字幕组】[药屋少女的呢喃(药师少女的独语)/ Kusuriya no Hitorigoto][32][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組】[藥屋少女的呢喃(藥師少女的獨語)/ Kusuriya no Hitorigoto][32][簡體][1080P][MP4]")
assertEquals("32..32", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1380,21 +1380,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][斗破苍穹 第5季][Fights Break Sphere Ⅴ][2022][131-135][HEVC][GB][4K]")
+ val r = parse("[GM-Team][國漫][鬥破蒼穹 第5季][Fights Break Sphere Ⅴ][2022][131-135][HEVC][GB][4K]")
assertEquals("131..135", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][斗破苍穹 第5季][Fights Break Sphere Ⅴ][2022][131-135][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][鬥破蒼穹 第5季][Fights Break Sphere Ⅴ][2022][131-135][AVC][GB][1080P]")
assertEquals("131..135", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][牧神记][Tales of Qin Mu][2024][15-19][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][牧神記][Tales of Qin Mu][2024][15-19][AVC][GB][1080P]")
assertEquals("15..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1402,7 +1402,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[GM-Team][国漫][斗罗大陆Ⅱ 绝世唐门][Soul Land Ⅱ:The Peerless Tang Clan][2023][85-90][AVC][GB][1080P]")
+ parse("[GM-Team][國漫][斗羅大陸Ⅱ 絕世唐門][Soul Land Ⅱ:The Peerless Tang Clan][2023][85-90][AVC][GB][1080P]")
assertEquals("85..90", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1416,14 +1416,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][沧元图 第2季][The Demon Hunter Ⅱ][2024][09-14][GB][4K HEVC 10Bit]")
+ val r = parse("[GM-Team][國漫][滄元圖 第2季][The Demon Hunter Ⅱ][2024][09-14][GB][4K HEVC 10Bit]")
assertEquals("09..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][神墓 第2季][Tomb of Fallen Gods Ⅱ][2024][27 END][GB][4K HEVC 10Bit]")
+ val r = parse("[GM-Team][國漫][神墓 第2季][Tomb of Fallen Gods Ⅱ][2024][27 END][GB][4K HEVC 10Bit]")
assertEquals("27..27", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1434,21 +1434,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690426-690425-690424-690423-690422-690421-690420-690419-690418-690417`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][神墓 第2季][Tomb of Fallen Gods Ⅱ][2024][26][GB][4K HEVC 10Bit]")
+ val r = parse("[GM-Team][國漫][神墓 第2季][Tomb of Fallen Gods Ⅱ][2024][26][GB][4K HEVC 10Bit]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][镇魂街 第4季 天武风雷篇][Rakshasa Street Ⅳ][2024][11-16][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][鎮魂街 第4季 天武風雷篇][Rakshasa Street Ⅳ][2024][11-16][AVC][GB][1080P]")
assertEquals("11..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][完美世界][Perfect World][2021][200-204][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][完美世界][Perfect World][2021][200-204][AVC][GB][1080P]")
assertEquals("200..204", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1456,21 +1456,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[GM-Team][国漫][师兄啊师兄][My Senior Brother is Too Steady][2023][74-78][GB][4K HEVC 10Bit]")
+ parse("[GM-Team][國漫][師兄啊師兄][My Senior Brother is Too Steady][2023][74-78][GB][4K HEVC 10Bit]")
assertEquals("74..78", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][神印王座][Throne of Seal][2022][144-148][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][神印王座][Throne of Seal][2022][144-148][AVC][GB][1080P]")
assertEquals("144..148", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][遮天][Shrouding the Heavens][2023][94-98][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][遮天][Shrouding the Heavens][2023][94-98][AVC][GB][1080P]")
assertEquals("94..98", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1527,7 +1527,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 无名记忆 第二季 / Unnamed Memory Act.2 [20] [1080p] [繁日内嵌] [2025年1月番]")
+ val r = parse("[獵戶手抄部] 無名記憶 第二季 / Unnamed Memory Act.2 [20] [1080p] [繁日內嵌] [2025年1月番]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1535,7 +1535,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[哆啦字幕組][哆啦A夢大山版附映中篇Doraemon1979][1998.3.7][2080P(准4K)][WEB][繁日雙語][哆啦A夢歸來了][数位修復版][MP4]")
+ parse("[哆啦字幕組][哆啦A夢大山版附映中篇Doraemon1979][1998.3.7][2080P(準4K)][WEB][繁日雙語][哆啦A夢歸來了][數位修復版][MP4]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1543,21 +1543,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[哆啦字幕组][哆啦A梦大山版附映中篇 Doraemon1979][1998.3.7][2080P(准4K)][WEB][简日双语][哆啦A梦归来了][数码修复版][MP4]")
+ parse("[哆啦字幕組][哆啦A夢大山版附映中篇 Doraemon1979][1998.3.7][2080P(準4K)][WEB][簡日雙語][哆啦A夢歸來了][數碼修復版][MP4]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 无名记忆 第二季 / Unnamed Memory Act.2 [20] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶手抄部] 無名記憶 第二季 / Unnamed Memory Act.2 [20] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][09][WebRip][1080P][AVC 8bit][简体内嵌]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][09][WebRip][1080P][AVC 8bit][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1579,7 +1579,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [20] [1080p] [繁日内嵌] [KoVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [20] [1080p] [繁日內嵌] [KoVer] [2025年1月番]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1591,7 +1591,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690405-690404-690403-690402-690401-690400-690399-690398-690389-690388`() {
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [20] [1080p] [简日内嵌] [KoVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [20] [1080p] [簡日內嵌] [KoVer] [2025年1月番]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1615,21 +1615,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("【百冬练习组】【Re: 从零开始的异世界的生活_Re꞉ Zero kara Hajimeru Isekai Seikatsu】[62][WebRip 1080p AVC AAC][简体]")
+ parse("【百冬練習組】【Re: 從零開始的異世界的生活_Re꞉ Zero kara Hajimeru Isekai Seikatsu】[62][WebRip 1080p AVC AAC][簡體]")
assertEquals("62..62", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[镇魂街 第4季][第16集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[鎮魂街 第4季][第16集][國語中字][WEB-MKV][2160P]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[斗罗大陆2绝世唐门][第90集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[斗羅大陸2絕世唐門][第90集][國語中字][WEB-MKV][2160P]")
assertEquals("90..90", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -1637,7 +1637,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 这公司有我喜欢的人 / この会社に好きな人がいます / Kono Kaisha ni Suki na Hito ga Imasu - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 這公司有我喜歡的人 / この會社に好きな人がいます / Kono Kaisha ni Suki na Hito ga Imasu - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1645,14 +1645,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 浪客剑心 -明治剑客浪漫谭- 京都动乱 / Rurouni Kenshin (2023) - 44 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 浪客劍心 -明治劍客浪漫譚- 京都動亂 / Rurouni Kenshin (2023) - 44 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("44..44", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[萌樱字幕组] BanG Dream! Ave Mujica [07][1080p]")
+ val r = parse("[萌櫻字幕組] BanG Dream! Ave Mujica [07][1080p]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1672,7 +1672,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690387-690386-690385-690384-690383-690382-690381-690379-690378-690377`() {
kotlin.run {
val r =
- parse("[丸子家族][樱桃小丸子第二期(Chibi Maruko-chan II)][1468]小丸子想沾花轮的光&友藏想疼爱宏志[2025.02.23][GB][1080P][MP4]")
+ parse("[丸子家族][櫻桃小丸子第二期(Chibi Maruko-chan II)][1468]小丸子想沾花輪的光&友藏想疼愛宏志[2025.02.23][GB][1080P][MP4]")
assertEquals("1468..1468", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1680,7 +1680,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[千夏字幕组&VCB-Studio] 摇曳露营△ 第三季 / Yuru Camp Season 3 / ゆるキャン△ SEASON3 10-bit 1080p HEVC BDRip [Fin]")
+ parse("[千夏字幕組&VCB-Studio] 搖曳露營△ 第三季 / Yuru Camp Season 3 / ゆるキャン△ SEASON3 10-bit 1080p HEVC BDRip [Fin]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1688,7 +1688,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[不当舔狗制作组] BanG Dream! Ave Mujica - 09 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ parse("[不當舔狗製作組] BanG Dream! Ave Mujica - 09 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -1696,7 +1696,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[不当舔狗制作组] BanG Dream! Ave Mujica - 09 [CR WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ parse("[不當舔狗製作組] BanG Dream! Ave Mujica - 09 [CR WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1710,7 +1710,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【枫叶字幕组】[宠物小精灵 / 宝可梦 地平线 烈空坐飞升][083-085][简体][1080P][MP4]")
+ val r = parse("【楓葉字幕組】[寵物小精靈 / 寶可夢 地平線 烈空坐飛昇][083-085][簡體][1080P][MP4]")
assertEquals("83..85", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1724,7 +1724,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【今晚月色真美】[青之箱 / アオのハコ / Ao no Hako][22][WEBrip][1080P][简日双语]")
+ val r = parse("【今晚月色真美】[青之箱 / アオのハコ / Ao no Hako][22][WEBrip][1080P][簡日雙語]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1738,7 +1738,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GalaxyRailroad-888] 游戏王GO RUSH!! Yu-Gi-Oh! GO RUSH !! 146 720P [GB_简中]")
+ val r = parse("[GalaxyRailroad-888] 遊戲王GO RUSH!! Yu-Gi-Oh! GO RUSH !! 146 720P [GB_簡中]")
assertEquals("146..146", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1757,7 +1757,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌Production】★01月新番★[BanG Dream! Ave Mujica][09][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌Production】★01月新番★[BanG Dream! Ave Mujica][09][1080p][簡日雙語][招募翻譯]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1787,7 +1787,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 全修。 / Zenshuu. [08][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 全修。 / Zenshuu. [08][1080p][簡繁內封]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1801,7 +1801,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 全修。 / Zenshuu. [08][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 全修。 / Zenshuu. [08][1080p][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1809,7 +1809,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[Billion Meta Lab] 昙花一现的百合 Momentary Lily [07][1080P][HEVC 10bit][简繁日内封][检索:刹那之花]")
+ parse("[Billion Meta Lab] 曇花一現的百合 Momentary Lily [07][1080P][HEVC 10bit][簡繁日內封][檢索:剎那之花]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1827,7 +1827,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690366-690365-690364-690363-690362-690361-690360-690359-690358-690357`() {
kotlin.run {
- val r = parse("[Billion Meta Lab] 昙花一现的百合 Momentary Lily [07][1080P][简日内嵌][检索:刹那之花]")
+ val r = parse("[Billion Meta Lab] 曇花一現的百合 Momentary Lily [07][1080P][簡日內嵌][檢索:剎那之花]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1842,21 +1842,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[群花綻放,彷如修羅 / Hana wa Saku Shura no Gotoku][08][1080p][繁日雙語][招募翻譯]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[羣花綻放,彷如修羅 / Hana wa Saku Shura no Gotoku][08][1080p][繁日雙語][招募翻譯]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[群花绽放,彷如修罗 / Hana wa Saku Shura no Gotoku][08][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[羣花綻放,彷如修羅 / Hana wa Saku Shura no Gotoku][08][1080p][簡日雙語][招募翻譯]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[异修罗 第二季 / Ishura S2][08][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[異修羅 第二季 / Ishura S2][08][1080p][簡日雙語][招募翻譯]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1872,7 +1872,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[哆啦字幕組][哆啦A夢大山版附映中篇Doraemon1979][1998.3.7][1080P][WEB][繁日雙語][哆啦A夢歸來了][数位修復版][MP4]")
+ parse("[哆啦字幕組][哆啦A夢大山版附映中篇Doraemon1979][1998.3.7][1080P][WEB][繁日雙語][哆啦A夢歸來了][數位修復版][MP4]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1880,7 +1880,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[哆啦字幕组][哆啦A梦大山版附映中篇 Doraemon1979][1998.3.7][1080P][WEB][简日双语][哆啦A梦归来了][数码修复版][MP4]")
+ parse("[哆啦字幕組][哆啦A夢大山版附映中篇 Doraemon1979][1998.3.7][1080P][WEB][簡日雙語][哆啦A夢歸來了][數碼修復版][MP4]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1888,7 +1888,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 天久鹰央的推理病历表 / Ameku Takao's Detective Karte - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 天久鷹央的推理病歷表 / Ameku Takao's Detective Karte - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1896,7 +1896,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [20] [1080p] [繁日内嵌] [JaVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [20] [1080p] [繁日內嵌] [JaVer] [2025年1月番]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1908,7 +1908,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690356-690355-690354-690353-690352-690351-690350-690349-690348-690345`() {
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [20] [1080p] [简日内嵌] [JaVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [20] [1080p] [簡日內嵌] [JaVer] [2025年1月番]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1916,7 +1916,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户压制部] 香格里拉·开拓异境~粪作猎手挑战神作 第二季 / Shangri-La Frontier S2 [45] [1080p] [繁日内嵌] [2024年10月番]")
+ parse("[獵戶壓制部] 香格里拉·開拓異境~糞作獵手挑戰神作 第二季 / Shangri-La Frontier S2 [45] [1080p] [繁日內嵌] [2024年10月番]")
assertEquals("45..45", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1924,7 +1924,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户压制部] 香格里拉·开拓异境~粪作猎手挑战神作 第二季 / Shangri-La Frontier S2 [45] [1080p] [简日内嵌] [2024年10月番]")
+ parse("[獵戶壓制部] 香格里拉·開拓異境~糞作獵手挑戰神作 第二季 / Shangri-La Frontier S2 [45] [1080p] [簡日內嵌] [2024年10月番]")
assertEquals("45..45", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1932,7 +1932,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[DBD制作组][4K(2160P)+HDR+1080P][BanG Dream! Ave Mujica][09][WEB-DL][简日双语内嵌][AAC][MKV]")
+ parse("[DBD製作組][4K(2160P)+HDR+1080P][BanG Dream! Ave Mujica][09][WEB-DL][簡日雙語內嵌][AAC][MKV]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1947,7 +1947,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 在地下城寻求邂逅是否搞错了什么 第五季 / DanMachi S5 - 14 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 在地下城尋求邂逅是否搞錯了什麼 第五季 / DanMachi S5 - 14 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1962,7 +1962,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[S1百综字幕组]BanG Dream! Ave Mujica [09][2160p][Bilibili][Web-DL][HDR][HEVC_AAC][简日双语]")
+ parse("[S1百綜字幕組]BanG Dream! Ave Mujica [09][2160p][Bilibili][Web-DL][HDR][HEVC_AAC][簡日雙語]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -1978,7 +1978,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 迟早是最强的炼金术师? / Izure Saikyou no Renkinjutsushi? - 09 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 遲早是最強的鍊金術師? / Izure Saikyou no Renkinjutsushi? - 09 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1989,21 +1989,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690344-690343-690341-690339-690338-690334-690333-690332-690331-690330`() {
kotlin.run {
- val r = parse("[神印王座][第148集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[神印王座][第148集][國語中字][WEB-MKV][2160P]")
assertEquals("148..148", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[完美世界][第204集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[完美世界][第204集][國語中字][WEB-MKV][2160P]")
assertEquals("204..204", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("你的颜色.The.Colors.Within.2024.1080p.AMZN.WEB-DL.H264.DDP5.1-QuickIO")
+ val r = parse("你的顏色.The.Colors.Within.2024.1080p.AMZN.WEB-DL.H264.DDP5.1-QuickIO")
assertEquals("null", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2011,7 +2011,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 中年男的异世界网购生活 / Around 40 Otoko no Isekai Tsuuhan - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 中年男的異世界網購生活 / Around 40 Otoko no Isekai Tsuuhan - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2019,42 +2019,42 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 中年男的异世界网购生活 / Around 40 Otoko no Isekai Tsuuhan - 05 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 中年男的異世界網購生活 / Around 40 Otoko no Isekai Tsuuhan - 05 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕組] 群花綻放、彷如修羅 / Hana wa Saku, Shura no Gotoku [07][1080p][繁體內嵌]")
+ val r = parse("[桜都字幕組] 羣花綻放、彷如修羅 / Hana wa Saku, Shura no Gotoku [07][1080p][繁體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 群花绽放、彷如修罗 / Hana wa Saku, Shura no Gotoku [07][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 羣花綻放、彷如修羅 / Hana wa Saku, Shura no Gotoku [07][1080p][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] Re:从零开始的异世界生活 第三季 - 12 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] Re:從零開始的異世界生活 第三季 - 12 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 群花绽放、彷如修罗 / Hana wa Saku, Shura no Gotoku [07][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 羣花綻放、彷如修羅 / Hana wa Saku, Shura no Gotoku [07][1080p][簡繁內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] Re:从零开始的异世界生活 第三季 - 12 [CR WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] Re:從零開始的異世界生活 第三季 - 12 [CR WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2066,7 +2066,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690328-690325-690324-690323-690322-690321-690320-690319-690318-690317`() {
kotlin.run {
val r =
- parse("[MagicStar] 蜡笔小新 剧场版 我们的恐龙日记 / 映画クレヨンしんちゃん オラたちの恐竜日記 2024 [WEBDL] [1080p] [U-NEXT]【生】")
+ parse("[MagicStar] 蠟筆小新 劇場版 我們的恐龍日記 / 映畫クレヨンしんちゃん オラたちの恐竜日記 2024 [WEBDL] [1080p] [U-NEXT]【生】")
assertEquals("S?", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2074,7 +2074,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★10月新番★[Chi。-关于地球的运动- / Chi. Chikyuu no Undou ni Tsuite][20][1080p][简日双语][招募翻译]")
+ parse("【喵萌奶茶屋】★10月新番★[Chi。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite][20][1080p][簡日雙語][招募翻譯]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2113,7 +2113,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] 我独自升级 第二季 -起于暗影- - 08V3 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 我獨自升級 第二季 -起於暗影- - 08V3 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -2121,7 +2121,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[冷番补完字幕组][天狼星的传说][シリウスの伝説][The Sea Prince and the Fire Child][1981]Movie[1080p][内封中英双语字幕]")
+ parse("[冷番補完字幕組][天狼星的傳說][シリウスの伝説][The Sea Prince and the Fire Child][1981]Movie[1080p][內封中英雙語字幕]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("ENG", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2136,7 +2136,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 结缘甘神神社 / Amagami-san Chi no Enmusubi - 20 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 結緣甘神神社 / Amagami-san Chi no Enmusubi - 20 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2148,7 +2148,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690316-690315-690314-690313-690312-690311-690308-690307-690306-690305`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] FAIRY TAIL 魔导少年 / 妖精尾巴 百年任务 [01-25 精校合集][WebRip 1080p HEVC-10bit AAC][简繁内封字幕][Fin]")
+ parse("[動漫國字幕組&LoliHouse] FAIRY TAIL 魔導少年 / 妖精尾巴 百年任務 [01-25 精校合集][WebRip 1080p HEVC-10bit AAC][簡繁內封字幕][Fin]")
assertEquals("01..25", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2156,7 +2156,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 蜂蜜柠檬苏打 / ハニーレモンソーダ / Honey Lemon Soda - 04 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 蜂蜜檸檬蘇打 / ハニーレモンソーダ / Honey Lemon Soda - 04 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2164,7 +2164,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 蜂蜜柠檬苏打 / ハニーレモンソーダ / Honey Lemon Soda - 03 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 蜂蜜檸檬蘇打 / ハニーレモンソーダ / Honey Lemon Soda - 03 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2185,7 +2185,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[夜莺家族&YYQ字幕组]New Doraemon 哆啦A梦新番[851][2025.02.22][AVC][1080P][GB_JP]")
+ val r = parse("[夜鶯家族&YYQ字幕組]New Doraemon 哆啦A夢新番[851][2025.02.22][AVC][1080P][GB_JP]")
assertEquals("851..851", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2201,7 +2201,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("【幻樱字幕组】【1月新番】【魔法制造者 ~异世界魔法的制作方法~ Magic Maker ~Isekai Mahou no Tsukurikata~】【07】【GB_MP4】【1920X1080】")
+ parse("【幻櫻字幕組】【1月新番】【魔法製造者 ~異世界魔法的製作方法~ Magic Maker ~Isekai Mahou no Tsukurikata~】【07】【GB_MP4】【1920X1080】")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2209,14 +2209,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[DBD-Raws][我的英雄学院剧场版:You're Next/Boku no Hero Academia the Movie You're Next][正片+特典映像][1080P][BDRip][HEVC-10bit][FLAC][MKV](僕のヒーローアカデミア THE MOVIE ユアネクスト)")
+ parse("[DBD-Raws][我的英雄學院劇場版:You're Next/Boku no Hero Academia the Movie You're Next][正片+特典映像][1080P][BDRip][HEVC-10bit][FLAC][MKV](僕のヒーローアカデミア THE MOVIE ユアネクスト)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("ENG", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[喵萌奶茶屋&LoliHouse] 全修。 / ZENSHU - 06 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ val r = parse("[喵萌奶茶屋&LoliHouse] 全修。 / ZENSHU - 06 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2228,7 +2228,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690304-690303-690302-690301-690300-690299-690298-690297-690296-690292`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 悠久之翼 - 前尘遗响 / ef - a tale of memories - 02 [BDRip][HEVC-10bit 1080p][繁日内嵌]")
+ parse("[❀撥雪尋春❀] 悠久之翼 - 前塵遺響 / ef - a tale of memories - 02 [BDRip][HEVC-10bit 1080p][繁日內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2236,7 +2236,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 悠久之翼 - 前尘遗响 / ef - a tale of memories - 02 [BDRip][HEVC-10bit 1080p][简日内嵌]")
+ parse("[❀撥雪尋春❀] 悠久之翼 - 前塵遺響 / ef - a tale of memories - 02 [BDRip][HEVC-10bit 1080p][簡日內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2244,7 +2244,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 悠久之翼 - 前尘遗响 / ef - a tale of memories - 02 [BDRip][HEVC-10bit 1080p][简繁日内封]")
+ parse("[❀撥雪尋春❀] 悠久之翼 - 前塵遺響 / ef - a tale of memories - 02 [BDRip][HEVC-10bit 1080p][簡繁日內封]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2252,7 +2252,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 悠久之翼 - 前尘遗响 / ef - a tale of memories - 01 [BDRip][HEVC-10bit 1080p][繁日内嵌]")
+ parse("[❀撥雪尋春❀] 悠久之翼 - 前塵遺響 / ef - a tale of memories - 01 [BDRip][HEVC-10bit 1080p][繁日內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2260,7 +2260,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 悠久之翼 - 前尘遗响 / ef - a tale of memories - 01 [BDRip][HEVC-10bit 1080p][简日内嵌]")
+ parse("[❀撥雪尋春❀] 悠久之翼 - 前塵遺響 / ef - a tale of memories - 01 [BDRip][HEVC-10bit 1080p][簡日內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2268,7 +2268,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 悠久之翼 - 前尘遗响 / ef - a tale of memories - 01 [BDRip][HEVC-10bit 1080p][简繁日内封]")
+ parse("[❀撥雪尋春❀] 悠久之翼 - 前塵遺響 / ef - a tale of memories - 01 [BDRip][HEVC-10bit 1080p][簡繁日內封]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2276,7 +2276,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 悠久之翼 - 前尘遗响 / ef - a tale of memories - 00 [BDRip][HEVC-10bit 1080p][繁日内嵌]")
+ parse("[❀撥雪尋春❀] 悠久之翼 - 前塵遺響 / ef - a tale of memories - 00 [BDRip][HEVC-10bit 1080p][繁日內嵌]")
assertEquals("00..00", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2284,7 +2284,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 悠久之翼 - 前尘遗响 / ef - a tale of memories - 00 [BDRip][HEVC-10bit 1080p][简日内嵌]")
+ parse("[❀撥雪尋春❀] 悠久之翼 - 前塵遺響 / ef - a tale of memories - 00 [BDRip][HEVC-10bit 1080p][簡日內嵌]")
assertEquals("00..00", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2292,14 +2292,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 悠久之翼 - 前尘遗响 / ef - a tale of memories - 00 [BDRip][HEVC-10bit 1080p][简繁日内封]")
+ parse("[❀撥雪尋春❀] 悠久之翼 - 前塵遺響 / ef - a tale of memories - 00 [BDRip][HEVC-10bit 1080p][簡繁日內封]")
assertEquals("00..00", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[黑白字幕组]监禁区域LevelX / Kankin Kuiki Level X [07][CHS](1920x1080 AVC AAC ).mp4")
+ val r = parse("[黑白字幕組]監禁區域LevelX / Kankin Kuiki Level X [07][CHS](1920x1080 AVC AAC ).mp4")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2311,7 +2311,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690291-690290-690288-690287-690286-690285-690284-690274-690273-690272`() {
kotlin.run {
val r =
- parse("[黑白字幕组]虽然我是注定没落的贵族,闲来无事只好来深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita [06] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]雖然我是註定沒落的貴族,閒來無事只好來深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita [06] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2319,7 +2319,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[黑白字幕组]虽然我是注定没落的贵族,闲来无事只好来深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita [06] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]雖然我是註定沒落的貴族,閒來無事只好來深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita [06] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2327,14 +2327,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[愛戀字幕社][1月新番][群花綻放,彷如修羅][Hana wa Saku, Shura no Gotoku][05][1080P][MP4][BIG5][繁中]")
+ parse("[愛戀字幕社][1月新番][羣花綻放,彷如修羅][Hana wa Saku, Shura no Gotoku][05][1080P][MP4][BIG5][繁中]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社][1月新番][群花绽放,彷如修罗][Hana wa Saku, Shura no Gotoku][05][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社][1月新番][羣花綻放,彷如修羅][Hana wa Saku, Shura no Gotoku][05][1080P][MP4][GB][簡中]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2342,14 +2342,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[愛戀字幕社][1月新番][群花綻放,彷如修羅][Hana wa Saku, Shura no Gotoku][04][1080P][MP4][BIG5][繁中]")
+ parse("[愛戀字幕社][1月新番][羣花綻放,彷如修羅][Hana wa Saku, Shura no Gotoku][04][1080P][MP4][BIG5][繁中]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社][1月新番][群花绽放,彷如修罗][Hana wa Saku, Shura no Gotoku][04][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社][1月新番][羣花綻放,彷如修羅][Hana wa Saku, Shura no Gotoku][04][1080P][MP4][GB][簡中]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2357,7 +2357,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 最弱技能《果实大师》 ~关于能无限食用技能果实(吃了就会死)这件事~ / Kinomi Master - 09 [WebRip 1080p HEVC-10bit AAC][无字幕]")
+ parse("[LoliHouse] 最弱技能《果實大師》 ~關於能無限食用技能果實(喫了就會死)這件事~ / Kinomi Master - 09 [WebRip 1080p HEVC-10bit AAC][無字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2365,7 +2365,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 青箱 / Ao no Hako / Blue Box - 19 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 青箱 / Ao no Hako / Blue Box - 19 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2373,7 +2373,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 我的幸福婚姻 2期 / Watashi no Shiawase na Kekkon S2 - 08 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 我的幸福婚姻 2期 / Watashi no Shiawase na Kekkon S2 - 08 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2381,7 +2381,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[SweetSub&LoliHouse] 刹那之花 / Momentary Lily - 08 [WebRip 1080p HEVC-10bit AAC][简日内封字幕]")
+ parse("[SweetSub&LoliHouse] 剎那之花 / Momentary Lily - 08 [WebRip 1080p HEVC-10bit AAC][簡日內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2393,14 +2393,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690271-690270-690269-690268-690267-690266-690265-690264-690263-690262`() {
kotlin.run {
val r =
- parse("[ANi] Hana wa Saku Shura no Gotoku / 群花綻放、彷如修羅 - 08 [1080P][Baha][WEB-DL][AAC AVC][CHT][MP4]")
+ parse("[ANi] Hana wa Saku Shura no Gotoku / 羣花綻放、彷如修羅 - 08 [1080P][Baha][WEB-DL][AAC AVC][CHT][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[遮天][第98集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[遮天][第98集][國語中字][WEB-MKV][2160P]")
assertEquals("98..98", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -2408,21 +2408,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 药师少女的独语 / 药屋少女的呢喃 / Kusuriya no Hitorigoto - 30 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 藥師少女的獨語 / 藥屋少女的呢喃 / Kusuriya no Hitorigoto - 30 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("30..30", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[萌樱字幕组] 药屋少女的呢喃 [30][1080p][简繁日内封]")
+ val r = parse("[萌櫻字幕組] 藥屋少女的呢喃 [30][1080p][簡繁日內封]")
assertEquals("30..30", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[全修。 / Zenshuu. / ZENSHU][07][1080p][简日双语]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[全修。 / Zenshuu. / ZENSHU][07][1080p][簡日雙語]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2436,7 +2436,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[全修。 / Zenshuu. / ZENSHU][06][1080p][简日双语]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[全修。 / Zenshuu. / ZENSHU][06][1080p][簡日雙語]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2450,14 +2450,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[我的幸福婚姻 2期 / Watashi no Shiawase na Kekkon S2][08][1080p][简日双语]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[我的幸福婚姻 2期 / Watashi no Shiawase na Kekkon S2][08][1080p][簡日雙語]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[药师少女的独语 / 药屋少女的呢喃 / Kusuriya no Hitorigoto][31][1080p][简日双语]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[藥師少女的獨語 / 藥屋少女的呢喃 / Kusuriya no Hitorigoto][31][1080p][簡日雙語]")
assertEquals("31..31", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2475,7 +2475,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[药师少女的独语 / 药屋少女的呢喃 / Kusuriya no Hitorigoto][30][1080p][简日双语]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[藥師少女的獨語 / 藥屋少女的呢喃 / Kusuriya no Hitorigoto][30][1080p][簡日雙語]")
assertEquals("30..30", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2489,14 +2489,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[青箱 / Ao no Hako / Blue Box][19][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[青箱 / Ao no Hako / Blue Box][19][1080p][簡日雙語][招募翻譯]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组] 蜂蜜柠檬苏打水 Honey Lemon Soda [07][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 蜂蜜檸檬蘇打水 Honey Lemon Soda [07][簡體雙語][1080p]招募翻譯")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2504,7 +2504,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 魔法使的约定 / Mahoutsukai no Yakusoku - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 魔法使的約定 / Mahoutsukai no Yakusoku - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2519,14 +2519,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 新石纪 第四季 科学与未来 / Dr.STONE:Science Future [03] [1080p] [繁日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 新石紀 第四季 科學與未來 / Dr.STONE:Science Future [03] [1080p] [繁日內嵌] [2025年1月番]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第四季 科学与未来 / Dr.STONE:Science Future [03] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第四季 科學與未來 / Dr.STONE:Science Future [03] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2534,7 +2534,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户手抄部] 地。-关于地球的运动- / Chi. Chikyuu no Undou ni Tsuite [22] [1080p] [繁日内嵌] [2024年10月番]")
+ parse("[獵戶手抄部] 地。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite [22] [1080p] [繁日內嵌] [2024年10月番]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2546,7 +2546,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690251-690250-690249-690248-690247-690246-690245-690240-690239-690236`() {
kotlin.run {
val r =
- parse("[猎户手抄部] 地。-关于地球的运动- / Chi. Chikyuu no Undou ni Tsuite [22] [1080p] [简日内嵌] [2024年10月番]")
+ parse("[獵戶手抄部] 地。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite [22] [1080p] [簡日內嵌] [2024年10月番]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2554,7 +2554,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[黑白字幕组]虽然我是注定没落的贵族,闲来无事只好来深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita [05] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]雖然我是註定沒落的貴族,閒來無事只好來深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita [05] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2562,28 +2562,28 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[黑白字幕组]虽然我是注定没落的贵族,闲来无事只好来深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita [05] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]雖然我是註定沒落的貴族,閒來無事只好來深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita [05] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组] 与猫共度的夜晚 Yoru wa Neko to Issho 3 [72] [HEVC-10bit 1080P] [简日双语] [特效字幕]")
+ val r = parse("[織夢字幕組] 與貓共度的夜晚 Yoru wa Neko to Issho 3 [72] [HEVC-10bit 1080P] [簡日雙語] [特效字幕]")
assertEquals("72..72", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组] 与猫共度的夜晚 Yoru wa Neko to Issho 3 [71] [HEVC-10bit 1080P] [简日双语] [特效字幕]")
+ val r = parse("[織夢字幕組] 與貓共度的夜晚 Yoru wa Neko to Issho 3 [71] [HEVC-10bit 1080P] [簡日雙語] [特效字幕]")
assertEquals("71..71", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组] 与猫共度的夜晚 Yoru wa Neko to Issho 3 [70] [HEVC-10bit 1080P] [简日双语] [特效字幕]")
+ val r = parse("[織夢字幕組] 與貓共度的夜晚 Yoru wa Neko to Issho 3 [70] [HEVC-10bit 1080P] [簡日雙語] [特效字幕]")
assertEquals("70..70", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2604,7 +2604,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组] 与猫共度的夜晚 Yoru wa Neko to Issho 3 [68] [HEVC-10bit 1080P] [简日双语] [特效字幕]")
+ val r = parse("[織夢字幕組] 與貓共度的夜晚 Yoru wa Neko to Issho 3 [68] [HEVC-10bit 1080P] [簡日雙語] [特效字幕]")
assertEquals("68..68", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2612,7 +2612,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[夜莺家族][樱桃小丸子第二期(Chibi Maruko-chan II)][1468]小丸子想模仿花轮&友藏想疼爱宏志[2025.02.23][GB_JP][1080P][MP4]")
+ parse("[夜鶯家族][櫻桃小丸子第二期(Chibi Maruko-chan II)][1468]小丸子想模仿花輪&友藏想疼愛宏志[2025.02.23][GB_JP][1080P][MP4]")
assertEquals("1468..1468", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2623,7 +2623,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690235-690222-690221-690216-690215-690214-690200-690199-690198-690197`() {
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][08][WebRip][1080P][AVC 8bit][简日内嵌]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][08][WebRip][1080P][AVC 8bit][簡日內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2631,7 +2631,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[漫猫字幕社&猫恋汉化组][1月新番][药屋少女的呢喃][Kusuriya no Hitorigoto][31][1080P][MP4][GB&JP][简日双语]")
+ parse("[漫貓字幕社&貓戀漢化組][1月新番][藥屋少女的呢喃][Kusuriya no Hitorigoto][31][1080P][MP4][GB&JP][簡日雙語]")
assertEquals("31..31", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2653,7 +2653,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[霜庭云花Sub][BanG Dream! Ave Mujica][07][1080P][AVC AAC][简日双语][WebRip]")
+ val r = parse("[霜庭雲花Sub][BanG Dream! Ave Mujica][07][1080P][AVC AAC][簡日雙語][WebRip]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2669,28 +2669,28 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 虽然我是注定没落的贵族,闲来无事只好来深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 雖然我是註定沒落的貴族,閒來無事只好來深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[群花綻放 彷如修羅_Hana wa Saku,Shura no Gotoku][05][1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[羣花綻放 彷如修羅_Hana wa Saku,Shura no Gotoku][05][1080p][CHT]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[群花绽放 彷如修罗_Hana wa Saku,Shura no Gotoku][05][1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[羣花綻放 彷如修羅_Hana wa Saku,Shura no Gotoku][05][1080p][CHS]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[群花綻放 彷如修羅_Hana wa Saku,Shura no Gotoku][04][1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[羣花綻放 彷如修羅_Hana wa Saku,Shura no Gotoku][04][1080p][CHT]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2701,7 +2701,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690196-690193-690191-690190-690189-690185-690184-690183-690182-690181`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[群花绽放 彷如修罗_Hana wa Saku,Shura no Gotoku][04][1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[羣花綻放 彷如修羅_Hana wa Saku,Shura no Gotoku][04][1080p][CHS]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2709,21 +2709,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 黑岩目高不把我的可爱放在眼里 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai - 08 [WebRip 1080p HEVC-10bit AAC][无字幕]")
+ parse("[LoliHouse] 黑巖目高不把我的可愛放在眼裏 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai - 08 [WebRip 1080p HEVC-10bit AAC][無字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[黑白字幕组]全修。 / Zenshuu. [08] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ val r = parse("[黑白字幕組]全修。 / Zenshuu. [08] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[黑白字幕组]全修。 / Zenshuu. [08] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ val r = parse("[黑白字幕組]全修。 / Zenshuu. [08] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2731,42 +2731,42 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[VCB-Studio] 关于我转生变成史莱姆这档事 / Tensei Shitara Slime Datta Ken / 転生したらスライムだった件 10-bit 1080p HEVC BDRip [S1 Reseed + OAD Reseed + S2 Reseed + MOVIE + WEB + S3]")
+ parse("[VCB-Studio] 關於我轉生變成史萊姆這檔事 / Tensei Shitara Slime Datta Ken / 転生したらスライムだった件 10-bit 1080p HEVC BDRip [S1 Reseed + OAD Reseed + S2 Reseed + MOVIE + WEB + S3]")
assertEquals("S1+OAD+S2+S?+S3", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][长生界][The Eternal Realm][2024][19][HEVC][GB][4K]")
+ val r = parse("[GM-Team][國漫][長生界][The Eternal Realm][2024][19][HEVC][GB][4K]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][长生界][The Eternal Realm][2024][18][HEVC][GB][4K]")
+ val r = parse("[GM-Team][國漫][長生界][The Eternal Realm][2024][18][HEVC][GB][4K]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕·毁片党】灰色:幻影扳机 第07-08集 GB_CN HEVC_opus 1080p")
+ val r = parse("【極影字幕·毀片黨】灰色:幻影扳機 第07-08集 GB_CN HEVC_opus 1080p")
assertEquals("07..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][吞噬星空][Swallowed Star][2021][160][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][吞噬星空][Swallowed Star][2021][160][AVC][GB][1080P]")
assertEquals("160..160", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][吞噬星空][Swallowed Star][2021][159[AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][吞噬星空][Swallowed Star][2021][159[AVC][GB][1080P]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2778,7 +2778,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690180-690179-690178-690176-690175-690174-690173-690172-690171-690170`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 葬送的芙莉莲 / 葬送のフリーレン / Sousou no Frieren - 12 [BDRip][HEVC-10bit 1080p][繁日内嵌]")
+ parse("[❀撥雪尋春❀] 葬送的芙莉蓮 / 葬送のフリーレン / Sousou no Frieren - 12 [BDRip][HEVC-10bit 1080p][繁日內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2786,7 +2786,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 葬送的芙莉莲 / 葬送のフリーレン / Sousou no Frieren - 12 [BDRip][HEVC-10bit 1080p][简日内嵌]")
+ parse("[❀撥雪尋春❀] 葬送的芙莉蓮 / 葬送のフリーレン / Sousou no Frieren - 12 [BDRip][HEVC-10bit 1080p][簡日內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2794,7 +2794,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 葬送的芙莉莲 / 葬送のフリーレン / Sousou no Frieren - 12 [BDRip][HEVC-10bit 1080p][简繁日内封]")
+ parse("[❀撥雪尋春❀] 葬送的芙莉蓮 / 葬送のフリーレン / Sousou no Frieren - 12 [BDRip][HEVC-10bit 1080p][簡繁日內封]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2802,7 +2802,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[蓝白汉化] 战队红战士在异世界当冒险者 / Sentai Red Isekai de Boukensha ni Naru [07][1080p][WebRip][x264_AAC][CHS]")
+ parse("[藍白漢化] 戰隊紅戰士在異世界當冒險者 / Sentai Red Isekai de Boukensha ni Naru [07][1080p][WebRip][x264_AAC][CHS]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2826,7 +2826,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 药屋少女的呢喃 / 药屋少女的独语 / Kusuriya no Hitorigoto [31][WebRip][HEVC_AAC][简繁日内封]")
+ parse("[北宇治字幕組] 藥屋少女的呢喃 / 藥屋少女的獨語 / Kusuriya no Hitorigoto [31][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("31..31", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2834,7 +2834,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 药屋少女的呢喃 / 药屋少女的独语 / Kusuriya no Hitorigoto [31][WebRip][HEVC_AAC][简日内嵌]")
+ parse("[北宇治字幕組] 藥屋少女的呢喃 / 藥屋少女的獨語 / Kusuriya no Hitorigoto [31][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("31..31", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2842,7 +2842,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 藥屋少女的呢喃 / 藥屋少女的獨語 / Kusuriya no Hitorigoto [31][WebRip][HEVC_AAC][繁日內嵌]")
+ parse("[北宇治字幕組] 藥屋少女的呢喃 / 藥屋少女的獨語 / Kusuriya no Hitorigoto [31][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("31..31", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2850,7 +2850,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[黑白字幕组]中年男的异世界网购生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [07] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]中年男的異世界網購生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [07] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2862,21 +2862,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690169-690168-690167-690166-690165-690164-690163-690162-690161-690160`() {
kotlin.run {
val r =
- parse("[黑白字幕组]中年男的异世界网购生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [07] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]中年男的異世界網購生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [07] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 坂本日常 / SAKAMOTO DAYS [05] [1080p] [繁日内嵌] [2025年1月番]")
+ val r = parse("[獵戶手抄部] 坂本日常 / SAKAMOTO DAYS [05] [1080p] [繁日內嵌] [2025年1月番]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 坂本日常 / SAKAMOTO DAYS [05] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶手抄部] 坂本日常 / SAKAMOTO DAYS [05] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2897,14 +2897,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 新石纪 第四季 科学与未来 / Dr.STONE:Science Future [02] [1080p] [繁日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 新石紀 第四季 科學與未來 / Dr.STONE:Science Future [02] [1080p] [繁日內嵌] [2025年1月番]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第四季 科学与未来 / Dr.STONE:Science Future [02] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第四季 科學與未來 / Dr.STONE:Science Future [02] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2919,7 +2919,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云歌字幕组][1月新番][欢迎来到日本,精灵小姐][07][HEVC][x265 10bit][1080p][简日双语]")
+ val r = parse("[雲歌字幕組][1月新番][歡迎來到日本,精靈小姐][07][HEVC][x265 10bit][1080p][簡日雙語]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2937,14 +2937,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690159-690157-690154-690153-690152-690151-690150-690149-690147-690146`() {
kotlin.run {
- val r = parse("[晚街与灯][灼眼的夏娜 第一季_Shakugan no Shana I][06][BDRip_1080P_x264_AAC][简日内嵌]")
+ val r = parse("[晚街與燈][灼眼的夏娜 第一季_Shakugan no Shana I][06][BDRip_1080P_x264_AAC][簡日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[吞噬星空][第160集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[吞噬星空][第160集][國語中字][WEB-MKV][2160P]")
assertEquals("160..160", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -2952,7 +2952,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 葬送的芙莉莲 / 葬送のフリーレン / Sousou no Frieren - 11 [BDRip][HEVC-10bit 1080p][繁日内嵌]")
+ parse("[❀撥雪尋春❀] 葬送的芙莉蓮 / 葬送のフリーレン / Sousou no Frieren - 11 [BDRip][HEVC-10bit 1080p][繁日內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2960,7 +2960,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 葬送的芙莉莲 / 葬送のフリーレン / Sousou no Frieren - 11 [BDRip][HEVC-10bit 1080p][简日内嵌]")
+ parse("[❀撥雪尋春❀] 葬送的芙莉蓮 / 葬送のフリーレン / Sousou no Frieren - 11 [BDRip][HEVC-10bit 1080p][簡日內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2968,7 +2968,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 葬送的芙莉莲 / 葬送のフリーレン / Sousou no Frieren - 11 [BDRip][HEVC-10bit 1080p][简繁日内封]")
+ parse("[❀撥雪尋春❀] 葬送的芙莉蓮 / 葬送のフリーレン / Sousou no Frieren - 11 [BDRip][HEVC-10bit 1080p][簡繁日內封]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2976,7 +2976,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 葬送的芙莉莲 / 葬送のフリーレン / Sousou no Frieren - 10 [BDRip][HEVC-10bit 1080p][繁日内嵌]")
+ parse("[❀撥雪尋春❀] 葬送的芙莉蓮 / 葬送のフリーレン / Sousou no Frieren - 10 [BDRip][HEVC-10bit 1080p][繁日內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2984,7 +2984,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 葬送的芙莉莲 / 葬送のフリーレン / Sousou no Frieren - 10 [BDRip][HEVC-10bit 1080p][简日内嵌]")
+ parse("[❀撥雪尋春❀] 葬送的芙莉蓮 / 葬送のフリーレン / Sousou no Frieren - 10 [BDRip][HEVC-10bit 1080p][簡日內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2992,7 +2992,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 葬送的芙莉莲 / 葬送のフリーレン / Sousou no Frieren - 10 [BDRip][HEVC-10bit 1080p][简繁日内封]")
+ parse("[❀撥雪尋春❀] 葬送的芙莉蓮 / 葬送のフリーレン / Sousou no Frieren - 10 [BDRip][HEVC-10bit 1080p][簡繁日內封]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3007,7 +3007,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] 龙珠大魔 - 19V2 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 龍珠大魔 - 19V2 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -3026,7 +3026,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][仙逆][Renegade Immortal][2023][77][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][仙逆][Renegade Immortal][2023][77][AVC][GB][1080P]")
assertEquals("77..77", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3050,7 +3050,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[爱恋字幕社&猫恋汉化组][夜樱家的大作战/夜樱家大作战][Yozakura-san Chi no Daisakusen][01-27][1080P][MP4][简中]")
+ parse("[愛戀字幕社&貓戀漢化組][夜櫻家的大作戰/夜櫻家大作戰][Yozakura-san Chi no Daisakusen][01-27][1080P][MP4][簡中]")
assertEquals("01..27", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3066,14 +3066,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[爱恋字幕社&猫恋汉化组][10月新番][缘结甘神家/结缘甘神神社][Amagami-san Chi no Enmusubi][15-17][1080P][MP4][GB][简中]")
+ parse("[愛戀字幕社&貓戀漢化組][10月新番][緣結甘神家/結緣甘神神社][Amagami-san Chi no Enmusubi][15-17][1080P][MP4][GB][簡中]")
assertEquals("15..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] 我独自升级 第二季 -起于暗影- - 08V2 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 我獨自升級 第二季 -起於暗影- - 08V2 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -3087,7 +3087,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[晚街与灯][灼眼的夏娜 第一季_Shakugan no Shana I][05][BDRip_1080P_x264_AAC][简日内嵌]")
+ val r = parse("[晚街與燈][灼眼的夏娜 第一季_Shakugan no Shana I][05][BDRip_1080P_x264_AAC][簡日內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3099,7 +3099,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690129-690128-690127-690126-690125-690124-690123-690122-690121-690120`() {
kotlin.run {
val r =
- parse("[黑白字幕组]魔术发明家 ~异世界魔法的制作方法~ / Magic Maker: Isekai Mahou no Tsukurikata [07] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]魔術發明家 ~異世界魔法的製作方法~ / Magic Maker: Isekai Mahou no Tsukurikata [07] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3107,14 +3107,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[黑白字幕组]魔术发明家 ~异世界魔法的制作方法~ / Magic Maker: Isekai Mahou no Tsukurikata [07] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]魔術發明家 ~異世界魔法的製作方法~ / Magic Maker: Isekai Mahou no Tsukurikata [07] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【无戒汉化组】摇曳马娘 Umayuru [22][1080p][简中内嵌]")
+ val r = parse("【無戒漢化組】搖曳馬娘 Umayuru [22][1080p][簡中內嵌]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3129,7 +3129,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【枫叶字幕组】[宠物小精灵 / 宝可梦 地平线 烈空坐飞升][080-082][简体][1080P][MP4]")
+ val r = parse("【楓葉字幕組】[寵物小精靈 / 寶可夢 地平線 烈空坐飛昇][080-082][簡體][1080P][MP4]")
assertEquals("80..82", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3143,7 +3143,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 灰色:幻影扳机 / Grisaia:Phantom Trigger [08][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 灰色:幻影扳機 / Grisaia:Phantom Trigger [08][1080p][簡繁內封]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3157,7 +3157,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 灰色:幻影扳机 / Grisaia:Phantom Trigger [08][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 灰色:幻影扳機 / Grisaia:Phantom Trigger [08][1080p][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3200,7 +3200,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户手抄部] 神剑闯江湖 -明治剑客浪漫谭- 京都动乱 / Rurouni Kenshin:Meiji Kenkaku Romantan - Kyoto Douran [43] [1080p] [繁日内嵌] [2024年10月番]")
+ parse("[獵戶手抄部] 神劍闖江湖 -明治劍客浪漫譚- 京都動亂 / Rurouni Kenshin:Meiji Kenkaku Romantan - Kyoto Douran [43] [1080p] [繁日內嵌] [2024年10月番]")
assertEquals("43..43", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3208,7 +3208,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户手抄部] 浪客剑心 -明治剑客浪漫谭- 京都动乱 / Rurouni Kenshin: Meiji Kenkaku Romantan - Kyoto Douran [43] [1080p] [简日内嵌] [2024年10月番]")
+ parse("[獵戶手抄部] 浪客劍心 -明治劍客浪漫譚- 京都動亂 / Rurouni Kenshin: Meiji Kenkaku Romantan - Kyoto Douran [43] [1080p] [簡日內嵌] [2024年10月番]")
assertEquals("43..43", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3216,7 +3216,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[桜都字幕组] 我和班上最讨厌的女生结婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [08][1080p][简繁内封]")
+ parse("[桜都字幕組] 我和班上最討厭的女生結婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [08][1080p][簡繁內封]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3239,7 +3239,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[桜都字幕组] 我和班上最讨厌的女生结婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [08][1080p][简体内嵌]")
+ parse("[桜都字幕組] 我和班上最討厭的女生結婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [08][1080p][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3257,21 +3257,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690106-690105-690104-690103-690101-690100-690096-690095-690094-690093`() {
kotlin.run {
- val r = parse("[喵萌奶茶屋&LoliHouse] 金牌得主 / Medalist - 08 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ val r = parse("[喵萌奶茶屋&LoliHouse] 金牌得主 / Medalist - 08 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【FSD粉羽社】魔法使光之美少女!!~MIRAI DAYS~[06][1080P][简体中字]")
+ val r = parse("【FSD粉羽社】魔法使光之美少女!!~MIRAI DAYS~[06][1080P][簡體中字]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[仙逆][第77集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[仙逆][第77集][國語中字][WEB-MKV][2160P]")
assertEquals("77..77", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -3286,7 +3286,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[雪飄工作室][ひみつのアイプリ/Himitsu_no_Aipri/秘密的美妙公主][46][简繁外挂](检索:/美妙旋律/美妙天堂/美妙頻道/美妙魔法)")
+ val r = parse("[雪飄工作室][ひみつのアイプリ/Himitsu_no_Aipri/祕密的美妙公主][46][簡繁外掛](檢索:/美妙旋律/美妙天堂/美妙頻道/美妙魔法)")
assertEquals("46..46", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3294,14 +3294,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[雪飄工作室][ひみつのアイプリ/Himitsu_no_Aipri/秘密的美妙公主][720P][46][繁](检索:/美妙旋律/美妙天堂/美妙頻道/美妙魔法)")
+ parse("[雪飄工作室][ひみつのアイプリ/Himitsu_no_Aipri/祕密的美妙公主][720P][46][繁](檢索:/美妙旋律/美妙天堂/美妙頻道/美妙魔法)")
assertEquals("46..46", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[冻牌 / Touhai: Ura Rate Mahjong Touhai Roku][19][1080p][简体][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[凍牌 / Touhai: Ura Rate Mahjong Touhai Roku][19][1080p][簡體][招募翻譯]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3322,7 +3322,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[金牌得主 / Medalist][08][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[金牌得主 / Medalist][08][1080p][簡日雙語][招募翻譯]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3333,35 +3333,35 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690092-690091-690089-690088-690087-690086-690085-690084-690083-690082`() {
kotlin.run {
- val r = parse("[仙武传][第98-102集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[仙武傳][第98-102集][國語中字][WEB-MKV][2160P]")
assertEquals("98..102", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[牧神记][第18-19集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[牧神記][第18-19集][國語中字][WEB-MKV][2160P]")
assertEquals("18..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] BanG Dream! Ave Mujica / 颂乐人偶 [06][WebRip][HEVC_AAC][简繁日内封]")
+ val r = parse("[北宇治字幕組] BanG Dream! Ave Mujica / 頌樂人偶 [06][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] BanG Dream! Ave Mujica / 頌樂人偶 [06][WebRip][HEVC_AAC][繁日內嵌]")
+ val r = parse("[北宇治字幕組] BanG Dream! Ave Mujica / 頌樂人偶 [06][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] BanG Dream! Ave Mujica / 颂乐人偶 [06][WebRip][HEVC_AAC][简日内嵌]")
+ val r = parse("[北宇治字幕組] BanG Dream! Ave Mujica / 頌樂人偶 [06][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3392,7 +3392,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[豌豆字幕组&LoliHouse] 青之驱魔师 终夜篇 / Ao no Exorcist Yosuga-hen - 08 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&LoliHouse] 青之驅魔師 終夜篇 / Ao no Exorcist Yosuga-hen - 08 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3400,7 +3400,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 离开A级队伍的我,和从前的弟子往迷宫深处迈进 / Aparida - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 離開A級隊伍的我,和從前的弟子往迷宮深處邁進 / Aparida - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3412,7 +3412,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690081-690080-690079-690078-690077-690076-690075-690073-690072-690071`() {
kotlin.run {
val r =
- parse("[LoliHouse] 我与尼特女忍者的莫名同居生活 / NEET Kunoichi - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 我與尼特女忍者的莫名同居生活 / NEET Kunoichi - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3420,14 +3420,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 龙珠 大魔 / Dragon Ball Daima - 19 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 龍珠 大魔 / Dragon Ball Daima - 19 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&澄空学园&华盟字幕社&千夏字幕组】★10月新番[冻牌][19][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組&澄空學園&華盟字幕社&千夏字幕組】★10月新番[凍牌][19][1080P][簡體][MP4]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3442,7 +3442,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[雪飘工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/与你同为 偶像光之美少女♪][1080p][04][简繁外挂](检索:Q娃)")
+ parse("[雪飄工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/與你同爲 偶像光之美少女♪][1080p][04][簡繁外掛](檢索:Q娃)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3450,7 +3450,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[雪飄工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/与你同为 偶像光之美少女♪][720p][04][繁體內嵌](檢索:Q娃)")
+ parse("[雪飄工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/與你同爲 偶像光之美少女♪][720p][04][繁體內嵌](檢索:Q娃)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3458,7 +3458,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[雪飘工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/与你同为 偶像光之美少女♪][720p][04][简体内嵌](检索:Q娃)")
+ parse("[雪飄工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/與你同爲 偶像光之美少女♪][720p][04][簡體內嵌](檢索:Q娃)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3466,7 +3466,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[SweetSub&VCB-Studio] 16位的辉煌 / 16bit Sensation Another Layer / 16bitセンセーション 10-bit 1080p HEVC BDRip [Fin]")
+ parse("[SweetSub&VCB-Studio] 16位的輝煌 / 16bit Sensation Another Layer / 16bitセンセーション 10-bit 1080p HEVC BDRip [Fin]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3481,7 +3481,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【DBFC字幕组】【龙珠 大魔】【019】【中日双语字幕】【1080P】【MP4】")
+ val r = parse("【DBFC字幕組】【龍珠 大魔】【019】【中日雙語字幕】【1080P】【MP4】")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3492,7 +3492,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690070-690069-690068-690067-690066-690065-690064-690062-690044-690042`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 青之箱 - 20 [NF WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 青之箱 - 20 [NF WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -3508,35 +3508,35 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("【百冬练习组】【Re: 从零开始的异世界的生活_Re꞉ Zero kara Hajimeru Isekai Seikatsu】[61][WebRip 1080p AVC AAC][简体]")
+ parse("【百冬練習組】【Re: 從零開始的異世界的生活_Re꞉ Zero kara Hajimeru Isekai Seikatsu】[61][WebRip 1080p AVC AAC][簡體]")
assertEquals("61..61", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] 青之箱 - 20 [NF WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 青之箱 - 20 [NF WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] 青之箱 - 19 [NF WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 青之箱 - 19 [NF WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] 青之箱 - 19 [NF WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 青之箱 - 19 [NF WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] 我独自升级 第二季 -起于暗影- - 08 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 我獨自升級 第二季 -起於暗影- - 08 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -3544,7 +3544,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 我独自升级 -起于暗影- / Ore dake Level Up na Ken / Solo Leveling - 20 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 我獨自升級 -起於暗影- / Ore dake Level Up na Ken / Solo Leveling - 20 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3552,14 +3552,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 终究、与你相恋 / Douse, Koishite Shimaunda - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 終究、與你相戀 / Douse, Koishite Shimaunda - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] 我独自升级 第二季 -起于暗影- - 08 [CR WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 我獨自升級 第二季 -起於暗影- - 08 [CR WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3571,7 +3571,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690041-690040-690039-690038-690037-690036-690035-690034-690033-690032`() {
kotlin.run {
val r =
- parse("[雪飘工作室][魔法つかいプリキュア!!~MIRAI DAYS~/Maho_Girls_Precure!!/魔法少女 光之美少女!!~未来的日子~][1080p][07][简繁外挂](检索:Q娃)")
+ parse("[雪飄工作室][魔法つかいプリキュア!!~MIRAI DAYS~/Maho_Girls_Precure!!/魔法少女 光之美少女!!~未來的日子~][1080p][07][簡繁外掛](檢索:Q娃)")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3579,7 +3579,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[雪飘工作室][魔法つかいプリキュア!!~MIRAI DAYS~/Maho_Girls_Precure!!/魔法少女 光之美少女!!~未来的日子~][720p][07][简体内嵌](检索:Q娃)")
+ parse("[雪飄工作室][魔法つかいプリキュア!!~MIRAI DAYS~/Maho_Girls_Precure!!/魔法少女 光之美少女!!~未來的日子~][720p][07][簡體內嵌](檢索:Q娃)")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3594,7 +3594,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【豌豆字幕组】[青之驱魔师 终夜篇 / Ao no Exorcist _Yosuga Hen][08][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組】[青之驅魔師 終夜篇 / Ao no Exorcist _Yosuga Hen][08][簡體][1080P][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3615,21 +3615,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银色子弹字幕组][名侦探柯南][第1154集 屋久岛的山姬(后篇)][WEBRIP][简繁日多语MKV][1080P]")
+ val r = parse("[銀色子彈字幕組][名偵探柯南][第1154集 屋久島的山姬(後篇)][WEBRIP][簡繁日多語MKV][1080P]")
assertEquals("1154..1154", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银色子弹字幕组][名侦探柯南][第1154集 屋久島的山姬(後篇)][WEBRIP][繁日雙語MP4][1080P]")
+ val r = parse("[銀色子彈字幕組][名偵探柯南][第1154集 屋久島的山姬(後篇)][WEBRIP][繁日雙語MP4][1080P]")
assertEquals("1154..1154", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银色子弹字幕组][名侦探柯南][第1154集 屋久岛的山姬(后篇)][WEBRIP][简日双语MP4][1080P]")
+ val r = parse("[銀色子彈字幕組][名偵探柯南][第1154集 屋久島的山姬(後篇)][WEBRIP][簡日雙語MP4][1080P]")
assertEquals("1154..1154", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3637,7 +3637,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] S级怪兽《贝希摩斯》被误认成小猫,成为精灵女孩的骑士(宠物)一起生活 / Beheneko - 09 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] S級怪獸《貝希摩斯》被誤認成小貓,成爲精靈女孩的騎士(寵物)一起生活 / Beheneko - 09 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3662,7 +3662,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] 药屋少女的呢喃 第二季 - 07 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 藥屋少女的呢喃 第二季 - 07 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -3715,7 +3715,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[Strange-Raw] 坂本日常 第一季 / SAKAMOTO DAYS S01 [07] [Bilibili] [WEB-DL] [1080P AVC-8Bits AAC 2.0] [简日内嵌字幕]")
+ parse("[Strange-Raw] 坂本日常 第一季 / SAKAMOTO DAYS S01 [07] [Bilibili] [WEB-DL] [1080P AVC-8Bits AAC 2.0] [簡日內嵌字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3733,7 +3733,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] 药屋少女的呢喃 第二季 - 07 [CR WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 藥屋少女的呢喃 第二季 - 07 [CR WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3741,7 +3741,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[黑白字幕组]我的可爱对黑岩目高不管用 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai [07] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]我的可愛對黑巖目高不管用 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai [07] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3749,7 +3749,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[黑白字幕组]我的可爱对黑岩目高不管用 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai [07] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]我的可愛對黑巖目高不管用 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai [07] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3757,7 +3757,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[黑白字幕组]中年男的异世界网购生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [06] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]中年男的異世界網購生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [06] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3773,7 +3773,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[黑白字幕组]中年男的异世界网购生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [06] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]中年男的異世界網購生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [06] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3788,14 +3788,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[冷番补完字幕组][BanG Dream! Ave Mujica][2025][WEB][07][1080p][内封简繁中字]")
+ val r = parse("[冷番補完字幕組][BanG Dream! Ave Mujica][2025][WEB][07][1080p][內封簡繁中字]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 新石纪 第四季 科学与未来 / Dr.STONE:Science Future [01] [1080p] [繁日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 新石紀 第四季 科學與未來 / Dr.STONE:Science Future [01] [1080p] [繁日內嵌] [2025年1月番]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3806,21 +3806,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690007-690006-690005-690004-690003-690002-690001-690000-689999-689997`() {
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第四季 科学与未来 / Dr.STONE:Science Future [01] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第四季 科學與未來 / Dr.STONE:Science Future [01] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] 龙珠大魔 - 19 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 龍珠大魔 - 19 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 坂本日常 / SAKAMOTO DAYS [04] [1080p] [繁日内嵌] [2025年1月番]")
+ val r = parse("[獵戶手抄部] 坂本日常 / SAKAMOTO DAYS [04] [1080p] [繁日內嵌] [2025年1月番]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3835,14 +3835,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 坂本日常 / SAKAMOTO DAYS [04] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶手抄部] 坂本日常 / SAKAMOTO DAYS [04] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] 龙珠大魔 - 19 [CR WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 龍珠大魔 - 19 [CR WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3858,7 +3858,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[桜都字幕组] 喜欢的冲绳妹说方言 / Okinawa de Suki ni Natta Ko ga Hougen Sugite Tsura Sugiru [07][1080p][简日内嵌]")
+ parse("[桜都字幕組] 喜歡的沖繩妹說方言 / Okinawa de Suki ni Natta Ko ga Hougen Sugite Tsura Sugiru [07][1080p][簡日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3866,7 +3866,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[桜都字幕组] 喜欢的冲绳妹说方言 / Okinawa de Suki ni Natta Ko ga Hougen Sugite Tsura Sugiru [07][1080p][简繁日内封]")
+ parse("[桜都字幕組] 喜歡的沖繩妹說方言 / Okinawa de Suki ni Natta Ko ga Hougen Sugite Tsura Sugiru [07][1080p][簡繁日內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3874,7 +3874,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 我和班上最讨厌的女生结婚了。 / クラスの大嫌いな女子と結婚することになった。 / Kurakon - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 我和班上最討厭的女生結婚了。 / クラスの大嫌いな女子と結婚することになった。 / Kurakon - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3886,7 +3886,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689995-689994-689993-689992-689991-689989-689988-689987-689986-689985`() {
kotlin.run {
val r =
- parse("[雪飄工作室 & WBX][汪分精彩光之美少女!/Wonderful_Precure!/わんだふるぷりきゅあ!][大電影!心動不已 在遊戲的世界大冒險][1080P][繁](检索:Q娃/プリキュア)")
+ parse("[雪飄工作室 & WBX][汪分精彩光之美少女!/Wonderful_Precure!/わんだふるぷりきゅあ!][大電影!心動不已 在遊戲的世界大冒險][1080P][繁](檢索:Q娃/プリキュア)")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3894,7 +3894,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 大叔转生恶役大小姐 / Akuyaku Reijou Tensei Ojisan - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 大叔轉生惡役大小姐 / Akuyaku Reijou Tensei Ojisan - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3902,7 +3902,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 不幸职业【鉴定士】实则最强 / Fuguushoku 'Kanteishi' ga Jitsu wa Saikyou Datta - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 不幸職業【鑑定士】實則最強 / Fuguushoku 'Kanteishi' ga Jitsu wa Saikyou Datta - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3910,14 +3910,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 我的幸福婚姻 2期 / Watashi no Shiawase na Kekkon S2 - 07 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 我的幸福婚姻 2期 / Watashi no Shiawase na Kekkon S2 - 07 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[斗破苍穹年番][第135集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[鬥破蒼穹年番][第135集][國語中字][WEB-MKV][2160P]")
assertEquals("135..135", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -3925,7 +3925,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[雪飄工作室 & WBX][汪分精彩光之美少女!/Wonderful_Precure!/わんだふるぷりきゅあ!][大电影!·心动不已 在游戏的世界大冒险][720P][简](检索:Q娃/プリキュア)")
+ parse("[雪飄工作室 & WBX][汪分精彩光之美少女!/Wonderful_Precure!/わんだふるぷりきゅあ!][大電影!·心動不已 在遊戲的世界大冒險][720P][簡](檢索:Q娃/プリキュア)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3940,7 +3940,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[喵萌Production&LoliHouse] BanG Dream! Ave Mujica - 08 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌Production&LoliHouse] BanG Dream! Ave Mujica - 08 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3948,7 +3948,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[喵萌Production&LoliHouse] BanG Dream! Ave Mujica - 07 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌Production&LoliHouse] BanG Dream! Ave Mujica - 07 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3956,7 +3956,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 异修罗 第二季 / Ishura S2 - 07 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 異修羅 第二季 / Ishura S2 - 07 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3974,7 +3974,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[我的幸福婚姻 2期 / Watashi no Shiawase na Kekkon S2][07][1080p][简日双语]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[我的幸福婚姻 2期 / Watashi no Shiawase na Kekkon S2][07][1080p][簡日雙語]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3996,7 +3996,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 群花绽放,仿如修罗 / Hana wa Saku Shura no Gotoku - 07 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 羣花綻放,仿如修羅 / Hana wa Saku Shura no Gotoku - 07 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4004,7 +4004,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 精灵来日 / 歡迎來到日本,妖精小姐。 / 日本へようこそエルフさん。 / Nihon e Youkoso Elf-san. - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 精靈來日 / 歡迎來到日本,妖精小姐。 / 日本へようこそエルフさん。 / Nihon e Youkoso Elf-san. - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4019,7 +4019,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GalaxyRailroad-888] 游戏王GO RUSH!! Yu-Gi-Oh! GO RUSH !! 145 720P [GB_简中]")
+ val r = parse("[GalaxyRailroad-888] 遊戲王GO RUSH!! Yu-Gi-Oh! GO RUSH !! 145 720P [GB_簡中]")
assertEquals("145..145", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4033,7 +4033,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[凡人修仙传][第131集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[凡人修仙傳][第131集][國語中字][WEB-MKV][2160P]")
assertEquals("131..131", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -4044,14 +4044,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689967-689965-689964-689963-689962-689961-689960-689959-689958-689957`() {
kotlin.run {
- val r = parse("【极影字幕·毁片党】 这家公司里有我喜欢的人 第07集 GB_CN HEVC_opus 1080p")
+ val r = parse("【極影字幕·毀片黨】 這家公司裏有我喜歡的人 第07集 GB_CN HEVC_opus 1080p")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[黄昏旅店 / Tasokare Hotel][08][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[黃昏旅店 / Tasokare Hotel][08][1080p][簡日雙語][招募翻譯]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4065,7 +4065,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【豌豆字幕组】[药屋少女的呢喃(药师少女的独语)/ Kusuriya no Hitorigoto][31][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組】[藥屋少女的呢喃(藥師少女的獨語)/ Kusuriya no Hitorigoto][31][簡體][1080P][MP4]")
assertEquals("31..31", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4080,7 +4080,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[不当舔狗制作组] BanG Dream! Ave Mujica - 08 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ parse("[不當舔狗製作組] BanG Dream! Ave Mujica - 08 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -4088,7 +4088,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[不当舔狗制作组] BanG Dream! Ave Mujica - 08 [CR WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ parse("[不當舔狗製作組] BanG Dream! Ave Mujica - 08 [CR WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4103,14 +4103,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[银色子弹字幕组][名侦探柯南][特别篇WOOO 迷侦探!?毛利小五郎&演员优木真央美的烦恼][WEBRIP][简日双语MP4/繁日雙語MP4/简繁日多语MKV][1080P]")
+ parse("[銀色子彈字幕組][名偵探柯南][特別篇WOOO 迷偵探!?毛利小五郎&演員優木真央美的煩惱][WEBRIP][簡日雙語MP4/繁日雙語MP4/簡繁日多語MKV][1080P]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银色子弹字幕组][名侦探柯南][第59集 首次跑腿杀人事件][WEBRIP][简日双语MP4/繁日雙語MP4/简繁日多语MKV][1080P]")
+ val r = parse("[銀色子彈字幕組][名偵探柯南][第59集 首次跑腿殺人事件][WEBRIP][簡日雙語MP4/繁日雙語MP4/簡繁日多語MKV][1080P]")
assertEquals("59..59", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4122,7 +4122,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689956-689955-689954-689953-689952-689951-689950-689949-689948-689947`() {
kotlin.run {
val r =
- parse("[DBD-Raws][噗妮露是可爱史莱姆/Puniru wa Kawaii Slime][01-06TV][1080P][BDRip][HEVC-10bit][FLACx2][MKV](ぷにるはかわいいスライム)")
+ parse("[DBD-Raws][噗妮露是可愛史萊姆/Puniru wa Kawaii Slime][01-06TV][1080P][BDRip][HEVC-10bit][FLACx2][MKV](ぷにるはかわいいスライム)")
assertEquals("01..06", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4150,7 +4150,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 全修。 / Zenshuu. [07][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 全修。 / Zenshuu. [07][1080p][簡繁內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4164,7 +4164,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 全修。 / Zenshuu. [07][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 全修。 / Zenshuu. [07][1080p][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4172,7 +4172,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[澄空学园&动漫国字幕组&LoliHouse] 灰色: 幻影扳机 / グリザイア: ファントムトリガー / Grisaia: Phantom Trigger - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[澄空學園&動漫國字幕組&LoliHouse] 灰色: 幻影扳機 / グリザイア: ファントムトリガー / Grisaia: Phantom Trigger - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4188,7 +4188,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[澄空学园&动漫国字幕组&LoliHouse] 灰色: 幻影扳机 / グリザイア: ファントムトリガー / Grisaia: Phantom Trigger - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[澄空學園&動漫國字幕組&LoliHouse] 灰色: 幻影扳機 / グリザイア: ファントムトリガー / Grisaia: Phantom Trigger - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4200,21 +4200,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689946-689945-689944-689943-689942-689941-689940-689939-689938-689937`() {
kotlin.run {
val r =
- parse("[澄空学园&动漫国字幕组&LoliHouse] 灰色: 幻影扳机 / グリザイア: ファントムトリガー / Grisaia: Phantom Trigger - 05 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[澄空學園&動漫國字幕組&LoliHouse] 灰色: 幻影扳機 / グリザイア: ファントムトリガー / Grisaia: Phantom Trigger - 05 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[群花綻放,彷如修羅 / Hana wa Saku Shura no Gotoku][07][1080p][繁日雙語][招募翻譯]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[羣花綻放,彷如修羅 / Hana wa Saku Shura no Gotoku][07][1080p][繁日雙語][招募翻譯]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[群花绽放,彷如修罗 / Hana wa Saku Shura no Gotoku][07][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[羣花綻放,彷如修羅 / Hana wa Saku Shura no Gotoku][07][1080p][簡日雙語][招募翻譯]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4237,7 +4237,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【澄空学园&动漫国字幕组】★01月新番[灰色 : 幻影扳机][05-07][1080P][简体][MP4]")
+ val r = parse("【澄空學園&動漫國字幕組】★01月新番[灰色 : 幻影扳機][05-07][1080P][簡體][MP4]")
assertEquals("05..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4251,7 +4251,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[Amor压制组][药师少女的独语 藥師少女的獨語 Kusuriya no Hitorigoto][31][简繁内封][WEBDL][1080P][MKV]")
+ val r = parse("[Amor壓制組][藥師少女的獨語 藥師少女的獨語 Kusuriya no Hitorigoto][31][簡繁內封][WEBDL][1080P][MKV]")
assertEquals("31..31", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4259,7 +4259,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [19] [1080p] [繁日内嵌] [KoVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [19] [1080p] [繁日內嵌] [KoVer] [2025年1月番]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4267,7 +4267,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [19] [1080p] [简日内嵌] [KoVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [19] [1080p] [簡日內嵌] [KoVer] [2025年1月番]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4279,28 +4279,28 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689936-689935-689934-689933-689932-689931-689930-689929-689928-689927`() {
kotlin.run {
val r =
- parse("[LoliHouse] 浪客剑心 -明治剑客浪漫谭- 京都动乱 / Rurouni Kenshin (2023) - 43 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 浪客劍心 -明治劍客浪漫譚- 京都動亂 / Rurouni Kenshin (2023) - 43 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("43..43", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[镇魂街 第4季][第12-15集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[鎮魂街 第4季][第12-15集][國語中字][WEB-MKV][2160P]")
assertEquals("12..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 无名记忆 第二季 / Unnamed Memory Act.2 [19] [1080p] [繁日内嵌] [2025年1月番]")
+ val r = parse("[獵戶手抄部] 無名記憶 第二季 / Unnamed Memory Act.2 [19] [1080p] [繁日內嵌] [2025年1月番]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 无名记忆 第二季 / Unnamed Memory Act.2 [19] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶手抄部] 無名記憶 第二季 / Unnamed Memory Act.2 [19] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4328,7 +4328,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】【龙珠DAIMA Dragon Ball DAIMA】【18】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【10月新番】【龍珠DAIMA Dragon Ball DAIMA】【18】【GB_MP4】【1920X1080】")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4354,7 +4354,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689926-689925-689924-689923-689922-689920-689919-689918-689917-689915`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】【龙珠DAIMA Dragon Ball DAIMA】【18】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【10月新番】【龍珠DAIMA Dragon Ball DAIMA】【18】【GB_MP4】【1280X720】")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4362,7 +4362,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[丸子家族][樱桃小丸子第二期(Chibi Maruko-chan II)][1467]藤木教永泽溜冰&小丸子想在危机中利用智慧[2025.02.16][GB][1080P][MP4]")
+ parse("[丸子家族][櫻桃小丸子第二期(Chibi Maruko-chan II)][1467]藤木教永澤溜冰&小丸子想在危機中利用智慧[2025.02.16][GB][1080P][MP4]")
assertEquals("1467..1467", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4384,7 +4384,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[斗罗大陆2绝世唐门][第89集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[斗羅大陸2絕世唐門][第89集][國語中字][WEB-MKV][2160P]")
assertEquals("89..89", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -4392,7 +4392,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 不幸职业【鉴定士】实则最强 / Fuguushoku 'Kanteishi' ga Jitsu wa Saikyou Datta - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 不幸職業【鑑定士】實則最強 / Fuguushoku 'Kanteishi' ga Jitsu wa Saikyou Datta - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4400,7 +4400,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 虽然我是注定没落的贵族,闲来无事只好来深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 雖然我是註定沒落的貴族,閒來無事只好來深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4408,7 +4408,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 无名记忆 Act.2 / 無名記憶 Act.2 / Unnamed Memory Act.2 - 19 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 無名記憶 Act.2 / 無名記憶 Act.2 / Unnamed Memory Act.2 - 19 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4416,7 +4416,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[北宇治字幕组&LoliHouse] 坂本日常 / SAKAMOTO DAYS - 07 [WebRip 1080p HEVC-10bit AACx2][简繁日内封字幕]")
+ parse("[北宇治字幕組&LoliHouse] 坂本日常 / SAKAMOTO DAYS - 07 [WebRip 1080p HEVC-10bit AACx2][簡繁日內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4442,7 +4442,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][08][WebRip][1080P][AVC 8bit][简体内嵌]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][08][WebRip][1080P][AVC 8bit][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4450,28 +4450,28 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 想星的大天使 Myth of Emotions / Sousei no Aquarion: Myth of Emotions - 07 [WebRip 1080p HEVC-10bit AAC][无字幕]")
+ parse("[LoliHouse] 想星的大天使 Myth of Emotions / Sousei no Aquarion: Myth of Emotions - 07 [WebRip 1080p HEVC-10bit AAC][無字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 坂本日常 / SAKAMOTO DAYS [07][WebRip][HEVC_AAC][简日內嵌]")
+ val r = parse("[北宇治字幕組] 坂本日常 / SAKAMOTO DAYS [07][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 坂本日常 / SAKAMOTO DAYS [07][WebRip][HEVC_AAC][繁日內嵌]")
+ val r = parse("[北宇治字幕組] 坂本日常 / SAKAMOTO DAYS [07][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 坂本日常 / SAKAMOTO DAYS [07][WebRip][HEVC_AAC][简繁日內封]")
+ val r = parse("[北宇治字幕組] 坂本日常 / SAKAMOTO DAYS [07][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4487,7 +4487,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[Rev][DBD-Raws][魔法纪录 魔法少女小圆外传 最终季 浅梦的黎明/Magia Record Mahou Shoujo Madoka Magica Gaiden Final - Asaki Yume no Akatsuki][01-04TV全集][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV](マギアレコード 魔法少女まどか☆マギカ外伝 Final Season -浅き夢の暁-)")
+ parse("[Rev][DBD-Raws][魔法紀錄 魔法少女小圓外傳 最終季 淺夢的黎明/Magia Record Mahou Shoujo Madoka Magica Gaiden Final - Asaki Yume no Akatsuki][01-04TV全集][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV](マギアレコード 魔法少女まどか☆マギカ外伝 Final Season -淺き夢の暁-)")
assertEquals("01..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4495,7 +4495,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[DBD-Raws][魔法纪录 魔法少女小圆外传 第二季 觉醒前夜/Magia Record Mahou Shoujo Madoka Magica Gaiden S2 - Kakusei Zen`ya][01-08TV全集+特典][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV](マギアレコード 魔法少女まどか☆マギカ外伝 2nd SEASON -覚醒前夜-)")
+ parse("[DBD-Raws][魔法紀錄 魔法少女小圓外傳 第二季 覺醒前夜/Magia Record Mahou Shoujo Madoka Magica Gaiden S2 - Kakusei Zen`ya][01-08TV全集+特典][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV](マギアレコード 魔法少女まどか☆マギカ外伝 2nd SEASON -覚醒前夜-)")
assertEquals("01..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4503,7 +4503,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[芝士动物朋友] 石纪元 科学与未来 / Dr.STONE SCIENCE FUTURE [02][CR-WebRip][1080p][HEVC+AAC][简繁内封](新石纪 第四季 S4)")
+ parse("[芝士動物朋友] 石紀元 科學與未來 / Dr.STONE SCIENCE FUTURE [02][CR-WebRip][1080p][HEVC+AAC][簡繁內封](新石紀 第四季 S4)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4514,14 +4514,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689895-689894-689893-689892-689891-689890-689889-689888-689887-689886`() {
kotlin.run {
- val r = parse("【今晚月色真美】[青之箱 / アオのハコ / Ao no Hako][21][WEBrip][1080P][简日双语]")
+ val r = parse("【今晚月色真美】[青之箱 / アオのハコ / Ao no Hako][21][WEBrip][1080P][簡日雙語]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌Production】★01月新番★[BanG Dream! Ave Mujica][08][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌Production】★01月新番★[BanG Dream! Ave Mujica][08][1080p][簡日雙語][招募翻譯]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4536,7 +4536,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[SweetSub&LoliHouse] 刹那之花 / Momentary Lily - 07 [WebRip 1080p HEVC-10bit AAC][简日内封字幕]")
+ parse("[SweetSub&LoliHouse] 剎那之花 / Momentary Lily - 07 [WebRip 1080p HEVC-10bit AAC][簡日內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4559,7 +4559,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[异修罗 第二季 / Ishura S2][07][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[異修羅 第二季 / Ishura S2][07][1080p][簡日雙語][招募翻譯]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4581,7 +4581,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[完美世界][第203集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[完美世界][第203集][國語中字][WEB-MKV][2160P]")
assertEquals("203..203", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -4600,7 +4600,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] 坂本日常 - 02 [NF WebRip AI2160p HEVC-10bit E-AC-3][日英双语音频 官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 坂本日常 - 02 [NF WebRip AI2160p HEVC-10bit E-AC-3][日英雙語音頻 官方簡繁內封字幕]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT, ENG, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id
})
@@ -4615,7 +4615,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] 坂本日常 - 02 [NF WebRip 1080p HEVC-10bit E-AC-3][日英双语音频 官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 坂本日常 - 02 [NF WebRip 1080p HEVC-10bit E-AC-3][日英雙語音頻 官方簡繁內封字幕]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT, ENG, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id
})
@@ -4632,7 +4632,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 天久鹰央的推理病历表 / Ameku Takao's Detective Karte - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 天久鷹央的推理病歷表 / Ameku Takao's Detective Karte - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4640,7 +4640,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [19] [1080p] [繁日内嵌] [JaVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [19] [1080p] [繁日內嵌] [JaVer] [2025年1月番]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4648,7 +4648,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [19] [1080p] [简日内嵌] [JaVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [19] [1080p] [簡日內嵌] [JaVer] [2025年1月番]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4663,7 +4663,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[DBD制作组][4K(2160P)+HDR+1080P][BanG Dream! Ave Mujica][08][WEB-DL][简日双语内嵌][AAC][MKV]")
+ parse("[DBD製作組][4K(2160P)+HDR+1080P][BanG Dream! Ave Mujica][08][WEB-DL][簡日雙語內嵌][AAC][MKV]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4675,7 +4675,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689875-689874-689871-689870-689869-689868-689867-689866-689865-689859`() {
kotlin.run {
val r =
- parse("[猎户压制部] 香格里拉·开拓异境~粪作猎手挑战神作 第二季 / Shangri-La Frontier S2 [44] [1080p] [繁日内嵌] [2024年10月番]")
+ parse("[獵戶壓制部] 香格里拉·開拓異境~糞作獵手挑戰神作 第二季 / Shangri-La Frontier S2 [44] [1080p] [繁日內嵌] [2024年10月番]")
assertEquals("44..44", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4683,7 +4683,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户压制部] 香格里拉·开拓异境~粪作猎手挑战神作 第二季 / Shangri-La Frontier S2 [44] [1080p] [简日内嵌] [2024年10月番]")
+ parse("[獵戶壓制部] 香格里拉·開拓異境~糞作獵手挑戰神作 第二季 / Shangri-La Frontier S2 [44] [1080p] [簡日內嵌] [2024年10月番]")
assertEquals("44..44", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4691,7 +4691,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[S1百综字幕组]BanG Dream! Ave Mujica [08][2160p][Bilibili][Web-DL][HDR][HEVC_AAC][简日双语]")
+ parse("[S1百綜字幕組]BanG Dream! Ave Mujica [08][2160p][Bilibili][Web-DL][HDR][HEVC_AAC][簡日雙語]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -4714,7 +4714,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[DBD-Raws][魔法纪录 魔法少女小圆外传 第一季/Magia Record Mahou Shoujo Madoka Magica Gaiden S1][01-13TV全集][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV](マギアレコード 魔法少女まどか☆マギカ外伝 S1)")
+ parse("[DBD-Raws][魔法紀錄 魔法少女小圓外傳 第一季/Magia Record Mahou Shoujo Madoka Magica Gaiden S1][01-13TV全集][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV](マギアレコード 魔法少女まどか☆マギカ外伝 S1)")
assertEquals("01..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4722,21 +4722,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[悠哈璃羽字幕社&LoliHouse] 战队红战士在异世界当冒险者 / Sentai Red Isekai de Boukensha ni Naru - 02 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[悠哈璃羽字幕社&LoliHouse] 戰隊紅戰士在異世界當冒險者 / Sentai Red Isekai de Boukensha ni Naru - 02 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][07][WebRip][1080P][AVC 8bit][简日内嵌]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][07][WebRip][1080P][AVC 8bit][簡日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] Re:从零开始的异世界生活 第三季 - 11 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] Re:從零開始的異世界生活 第三季 - 11 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -4744,7 +4744,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 迟早是最强的炼金术师? / Izure Saikyou no Renkinjutsushi? - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 遲早是最強的鍊金術師? / Izure Saikyou no Renkinjutsushi? - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4756,7 +4756,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689857-689856-689855-689854-689853-689852-689851-689849-689848-689847`() {
kotlin.run {
val r =
- parse("[DBD-Raws][剧场版 魔法科高中的劣等生 呼唤繁星的少女/Gekijouban Mahouka Koukou no Rettousei Hoshi wo Yobu Shoujo][正片+特典映像][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC+DTS][MKV](劇場版 魔法科高校の劣等生 星を呼ぶ少女)")
+ parse("[DBD-Raws][劇場版 魔法科高中的劣等生 呼喚繁星的少女/Gekijouban Mahouka Koukou no Rettousei Hoshi wo Yobu Shoujo][正片+特典映像][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC+DTS][MKV](劇場版 魔法科高校の劣等生 星を呼ぶ少女)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4764,7 +4764,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[DBD-Raws][魔法科高中的劣等生 追忆篇/Mahouka Koukou no Rettousei Tsuioku Hen][正片+特典映像][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV](魔法科高校の劣等生 追憶編)")
+ parse("[DBD-Raws][魔法科高中的劣等生 追憶篇/Mahouka Koukou no Rettousei Tsuioku Hen][正片+特典映像][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV](魔法科高校の劣等生 追憶編)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4772,7 +4772,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[DBD-Raws][魔法科高中的劣等生 来访者篇(第二季)/Mahouka Koukou no Rettousei Raihousha Hen(S2)][01-13TV全集+特典映像][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV](魔法科高校の劣等生 来訪者編(S2))")
+ parse("[DBD-Raws][魔法科高中的劣等生 來訪者篇(第二季)/Mahouka Koukou no Rettousei Raihousha Hen(S2)][01-13TV全集+特典映像][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV](魔法科高校の劣等生 來訪者編(S2))")
assertEquals("01..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4786,7 +4786,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[SweetSub][小市民系列][Shoushimin Series][01-10 精校合集][BDRip][1080P][AVC 8bit][简日双语]")
+ val r = parse("[SweetSub][小市民系列][Shoushimin Series][01-10 精校合集][BDRip][1080P][AVC 8bit][簡日雙語]")
assertEquals("01..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4808,7 +4808,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[DBD-Raws][魔法科高中的劣等生 第一季/Mahouka Koukou no Rettousei S1][01-26TV全集+特典映像][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV](魔法科高校の劣等生 S1)")
+ parse("[DBD-Raws][魔法科高中的劣等生 第一季/Mahouka Koukou no Rettousei S1][01-26TV全集+特典映像][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV](魔法科高校の劣等生 S1)")
assertEquals("01..26", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4834,21 +4834,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689845-689842-689841-689840-689839-689838-689837-689836-689833-689832`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&VCB-Studio] 间谍过家家 / 间谍家家酒 / SPYxFAMILY 10-bit 1080p HEVC BDRip [S1-S2 + MOVIE Fin]")
+ parse("[喵萌奶茶屋&VCB-Studio] 間諜過家家 / 間諜家家酒 / SPYxFAMILY 10-bit 1080p HEVC BDRip [S1-S2 + MOVIE Fin]")
assertEquals("S1+S2+S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] Re:从零开始的异世界生活 第三季 - 11 [CR WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] Re:從零開始的異世界生活 第三季 - 11 [CR WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[无名记忆 Act.2 / Unnamed Memory Act.2][19][1080p][简日双语][招募翻译时轴]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[無名記憶 Act.2 / Unnamed Memory Act.2][19][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4880,7 +4880,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("【悠哈璃羽字幕社】[战队红战士在异世界当冒险者_Sentai Red Isekai de Boukensha ni Naru][02][x264 1080p][CHS]")
+ parse("【悠哈璃羽字幕社】[戰隊紅戰士在異世界當冒險者_Sentai Red Isekai de Boukensha ni Naru][02][x264 1080p][CHS]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4895,7 +4895,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] 坂本日常 - 01 [NF WebRip AI2160p HEVC-10bit E-AC-3][日英双语音频 官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 坂本日常 - 01 [NF WebRip AI2160p HEVC-10bit E-AC-3][日英雙語音頻 官方簡繁內封字幕]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, ENG, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id
})
@@ -4904,7 +4904,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 地。-关于地球的运动- / Chi. Chikyuu no Undou ni Tsuite [19][WebRip][HEVC_AAC][简繁日内封]")
+ parse("[北宇治字幕組] 地。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite [19][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4916,7 +4916,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689831-689830-689829-689828-689827-689826-689825-689824-689823-689822`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 地。-关于地球的运动- / Chi. Chikyuu no Undou ni Tsuite [19][WebRip][HEVC_AAC][简日内嵌]")
+ parse("[北宇治字幕組] 地。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite [19][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4924,7 +4924,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 地。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite [19][WebRip][HEVC_AAC][繁日內嵌]")
+ parse("[北宇治字幕組] 地。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite [19][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4932,28 +4932,28 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 青之箱 / 青春之箱 / 青春盒子 / 蓝箱 / Ao no Hako / Blue Box [18][WebRip][HEVC_AAC][简繁日内封]")
+ parse("[北宇治字幕組] 青之箱 / 青春之箱 / 青春盒子 / 藍箱 / Ao no Hako / Blue Box [18][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 青之箱 / 蓝箱 / Ao no Hako / Blue Box [18][WebRip][HEVC_AAC][简日内嵌]")
+ val r = parse("[北宇治字幕組] 青之箱 / 藍箱 / Ao no Hako / Blue Box [18][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 青春之箱 / 青春盒子 / Ao no Hako / Blue Box [18][WebRip][HEVC_AAC][繁日內嵌]")
+ val r = parse("[北宇治字幕組] 青春之箱 / 青春盒子 / Ao no Hako / Blue Box [18][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[不当舔狗制作组] 坂本日常 - 01 [NF WebRip 1080p HEVC-10bit E-AC-3][日英双语音频 官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 坂本日常 - 01 [NF WebRip 1080p HEVC-10bit E-AC-3][日英雙語音頻 官方簡繁內封字幕]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, ENG, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id
})
@@ -4975,7 +4975,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组] 蜂蜜柠檬苏打水 Honey Lemon Soda [06][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 蜂蜜檸檬蘇打水 Honey Lemon Soda [06][簡體雙語][1080p]招募翻譯")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4983,7 +4983,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[悠哈璃羽字幕社&LoliHouse] 天久鹰央的推理病历表 / Ameku Takao's Detective Karte - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[悠哈璃羽字幕社&LoliHouse] 天久鷹央的推理病歷表 / Ameku Takao's Detective Karte - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4995,7 +4995,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689821-689820-689819-689818-689817-689816-689815-689814-689813-689811`() {
kotlin.run {
val r =
- parse("[猎户手抄部] 红战士在异世界成了冒险者 / Sentai Red Isekai de Boukensha ni Naru [06] [1080p] [繁日内嵌] [2025年1月番]")
+ parse("[獵戶手抄部] 紅戰士在異世界成了冒險者 / Sentai Red Isekai de Boukensha ni Naru [06] [1080p] [繁日內嵌] [2025年1月番]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5003,7 +5003,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户手抄部] 战队红战士在异世界当冒险者 / Sentai Red Isekai de Boukensha ni Naru [06] [1080p] [简日内嵌] [2025年1月番]")
+ parse("[獵戶手抄部] 戰隊紅戰士在異世界當冒險者 / Sentai Red Isekai de Boukensha ni Naru [06] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5018,7 +5018,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[DBD-Raws][剧场版 为美好的世界献上祝福! 红传说/Kono Subarashii Sekai ni Shukufuku o! Kurenai Densetsu][1080P][BDRip][HEVC-10bit][简繁外挂][FLACx2][MKV](この素晴らしい世界に祝福を! 紅伝説)")
+ parse("[DBD-Raws][劇場版 爲美好的世界獻上祝福! 紅傳說/Kono Subarashii Sekai ni Shukufuku o! Kurenai Densetsu][1080P][BDRip][HEVC-10bit][簡繁外掛][FLACx2][MKV](この素晴らしい世界に祝福を! 紅伝説)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5026,7 +5026,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[DBD-Raws][为美好的世界献上祝福! 第二季/Kono Subarashii Sekai ni Shukufuku o! 2][01-10TV全集+OVA][1080P][BDRip][HEVC-10bit][简繁外挂][FLACx2][MKV](この素晴らしい世界に祝福を! 2)")
+ parse("[DBD-Raws][爲美好的世界獻上祝福! 第二季/Kono Subarashii Sekai ni Shukufuku o! 2][01-10TV全集+OVA][1080P][BDRip][HEVC-10bit][簡繁外掛][FLACx2][MKV](この素晴らしい世界に祝福を! 2)")
assertEquals("01..10+OVA", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5034,7 +5034,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[DBD-Raws][为美好的世界献上祝福! 第一季/Kono Subarashii Sekai ni Shukufuku o!][01-10TV全集+OVA+特典映像][1080P][BDRip][HEVC-10bit][简繁外挂][FLACx2][MKV](この素晴らしい世界に祝福を!)")
+ parse("[DBD-Raws][爲美好的世界獻上祝福! 第一季/Kono Subarashii Sekai ni Shukufuku o!][01-10TV全集+OVA+特典映像][1080P][BDRip][HEVC-10bit][簡繁外掛][FLACx2][MKV](この素晴らしい世界に祝福を!)")
assertEquals("01..10+OVA", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5048,7 +5048,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[神印王座][第146-147集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[神印王座][第146-147集][國語中字][WEB-MKV][2160P]")
assertEquals("146..147", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -5056,7 +5056,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 平凡上班族到异世界当上了四天王的故事 / Sararyman ga Isekai ni Ittara Shitennou ni Natta Hanashi - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 平凡上班族到異世界當上了四天王的故事 / Sararyman ga Isekai ni Ittara Shitennou ni Natta Hanashi - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5064,7 +5064,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[夜莺家族][樱桃小丸子第二期(Chibi Maruko-chan II)][1467]藤木教永泽滑冰&小丸子机智应对危机[2025.02.16][GB_JP][1080P][MP4]")
+ parse("[夜鶯家族][櫻桃小丸子第二期(Chibi Maruko-chan II)][1467]藤木教永澤滑冰&小丸子機智應對危機[2025.02.16][GB_JP][1080P][MP4]")
assertEquals("1467..1467", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5075,28 +5075,28 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689810-689809-689808-689807-689804-689801-689800-689799-689798-689797`() {
kotlin.run {
- val r = parse("[風車字幕組十四周年][名偵探柯南][1142-1143][亂步邸殺人事件(前後篇)][1080P][繁體][MP4]")
+ val r = parse("[風車字幕組十四週年][名偵探柯南][1142-1143][亂步邸殺人事件(前後篇)][1080P][繁體][MP4]")
assertEquals("1142..1143", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[风车字幕组十四周年][名侦探柯南][1142-1143][乱步邸杀人事件(前后篇)][1080P][简体][MP4]")
+ val r = parse("[風車字幕組十四週年][名偵探柯南][1142-1143][亂步邸殺人事件(前後篇)][1080P][簡體][MP4]")
assertEquals("1142..1143", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[風車字幕組十四周年][名偵探柯南][1141][看家的毛利一家][1080P][繁體][MP4]")
+ val r = parse("[風車字幕組十四週年][名偵探柯南][1141][看家的毛利一家][1080P][繁體][MP4]")
assertEquals("1141..1141", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[风车字幕组十四周年][名侦探柯南][1141][看家的毛利一家][1080P][简体][MP4]")
+ val r = parse("[風車字幕組十四週年][名偵探柯南][1141][看家的毛利一家][1080P][簡體][MP4]")
assertEquals("1141..1141", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5112,7 +5112,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 这公司有我喜欢的人 / この会社に好きな人がいます / Kono Kaisha ni Suki na Hito ga Imasu - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 這公司有我喜歡的人 / この會社に好きな人がいます / Kono Kaisha ni Suki na Hito ga Imasu - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5120,7 +5120,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 鹿乃子乃子乃子虎视眈眈 / Shikanoko Nokonoko Koshitantan [12][WebRip][HEVC_AAC][简繁日内封]")
+ parse("[北宇治字幕組] 鹿乃子乃子乃子虎視眈眈 / Shikanoko Nokonoko Koshitantan [12][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5128,7 +5128,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 鹿乃子乃子乃子虎视眈眈 / Shikanoko Nokonoko Koshitantan [12][WebRip][HEVC_AAC][简日内嵌]")
+ parse("[北宇治字幕組] 鹿乃子乃子乃子虎視眈眈 / Shikanoko Nokonoko Koshitantan [12][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5136,7 +5136,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 鹿乃子乃子乃子虎視眈眈 / Shikanoko Nokonoko Koshitantan [12][WebRip][HEVC_AAC][繁日內嵌]")
+ parse("[北宇治字幕組] 鹿乃子乃子乃子虎視眈眈 / Shikanoko Nokonoko Koshitantan [12][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5144,7 +5144,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 鹿乃子乃子乃子虎视眈眈 / Shikanoko Nokonoko Koshitantan [11][WebRip][HEVC_AAC][简繁日内封]")
+ parse("[北宇治字幕組] 鹿乃子乃子乃子虎視眈眈 / Shikanoko Nokonoko Koshitantan [11][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5156,7 +5156,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689796-689795-689792-689790-689789-689775-689774-689773-689772-689771`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 鹿乃子乃子乃子虎视眈眈 / Shikanoko Nokonoko Koshitantan [11][WebRip][HEVC_AAC][简日内嵌]")
+ parse("[北宇治字幕組] 鹿乃子乃子乃子虎視眈眈 / Shikanoko Nokonoko Koshitantan [11][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5164,7 +5164,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 鹿乃子乃子乃子虎視眈眈 / Shikanoko Nokonoko Koshitantan [11][WebRip][HEVC_AAC][繁日內嵌]")
+ parse("[北宇治字幕組] 鹿乃子乃子乃子虎視眈眈 / Shikanoko Nokonoko Koshitantan [11][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5172,7 +5172,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 结缘甘神神社 / Amagami-san Chi no Enmusubi - 19 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 結緣甘神神社 / Amagami-san Chi no Enmusubi - 19 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5180,7 +5180,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 最弱技能《果实大师》 ~关于能无限食用技能果实(吃了就会死)这件事~ / Kinomi Master - 08 [WebRip 1080p HEVC-10bit AAC][无字幕]")
+ parse("[LoliHouse] 最弱技能《果實大師》 ~關於能無限食用技能果實(喫了就會死)這件事~ / Kinomi Master - 08 [WebRip 1080p HEVC-10bit AAC][無字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5188,7 +5188,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&VCB-Studio] 夏日重现 / Summer Time Rendering / サマータイムレンダ 10-bit 1080p HEVC BDRip [Reseed Fin]")
+ parse("[喵萌奶茶屋&VCB-Studio] 夏日重現 / Summer Time Rendering / サマータイムレンダ 10-bit 1080p HEVC BDRip [Reseed Fin]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5196,21 +5196,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[ANi] Hana wa Saku Shura no Gotoku / 群花綻放、彷如修羅 - 07 [1080P][Baha][WEB-DL][AAC AVC][CHT][MP4]")
+ parse("[ANi] Hana wa Saku Shura no Gotoku / 羣花綻放、彷如修羅 - 07 [1080P][Baha][WEB-DL][AAC AVC][CHT][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[黑白字幕组]全修。 / Zenshuu. [07] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ val r = parse("[黑白字幕組]全修。 / Zenshuu. [07] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[黑白字幕组]全修。 / Zenshuu. [07] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ val r = parse("[黑白字幕組]全修。 / Zenshuu. [07] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5218,7 +5218,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[桜都字幕组] 「只能触摸一分钟哦...」合租房的秘密规则。 / 「1 Funkan dake Furete mo Ii yo...」 Share House no Himitsu Rule. [06][1080p][简繁内封]")
+ parse("[桜都字幕組] 「只能觸摸一分鐘哦...」合租房的祕密規則。 / 「1 Funkan dake Furete mo Ii yo...」 Share House no Himitsu Rule. [06][1080p][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5226,7 +5226,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[桜都字幕組] 「只能觸摸一分鐘哦...」合租房的秘密規則。 / 「1 Funkan dake Furete mo Ii yo...」 Share House no Himitsu Rule. [06][1080p][繁體內嵌]")
+ parse("[桜都字幕組] 「只能觸摸一分鐘哦...」合租房的祕密規則。 / 「1 Funkan dake Furete mo Ii yo...」 Share House no Himitsu Rule. [06][1080p][繁體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5238,14 +5238,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689770-689769-689768-689767-689766-689765-689764-689763-689762-689761`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 「只能触摸一分钟哦...」合租房的秘密规则。 / 「1 Funkan dake Furete mo Ii yo...」 Share House no Himitsu Rule. [06][1080p][简体内嵌]")
+ parse("[桜都字幕組] 「只能觸摸一分鐘哦...」合租房的祕密規則。 / 「1 Funkan dake Furete mo Ii yo...」 Share House no Himitsu Rule. [06][1080p][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社&西农YUI汉化组】[暗芝居 第十四季_Yami Shibai 14][07][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社&西農YUI漢化組】[暗芝居 第十四季_Yami Shibai 14][07][x264 1080p][CHS]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5266,7 +5266,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社&西农YUI汉化组】[暗芝居 第十四季_Yami Shibai 14][06][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社&西農YUI漢化組】[暗芝居 第十四季_Yami Shibai 14][06][x264 1080p][CHS]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5274,7 +5274,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[Billion Meta Lab] 昙花一现的百合 Momentary Lily [06][1080P][HEVC 10bit][简繁日内封][检索:刹那之花]")
+ parse("[Billion Meta Lab] 曇花一現的百合 Momentary Lily [06][1080P][HEVC 10bit][簡繁日內封][檢索:剎那之花]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5288,7 +5288,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[Billion Meta Lab] 昙花一现的百合 Momentary Lily [06][1080P][简日内嵌][检索:刹那之花]")
+ val r = parse("[Billion Meta Lab] 曇花一現的百合 Momentary Lily [06][1080P][簡日內嵌][檢索:剎那之花]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5296,7 +5296,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户手抄部] 地。-关于地球的运动- / Chi. Chikyuu no Undou ni Tsuite [21] [1080p] [繁日内嵌] [2024年10月番]")
+ parse("[獵戶手抄部] 地。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite [21] [1080p] [繁日內嵌] [2024年10月番]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5304,7 +5304,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户手抄部] 地。-关于地球的运动- / Chi. Chikyuu no Undou ni Tsuite [21] [1080p] [简日内嵌] [2024年10月番]")
+ parse("[獵戶手抄部] 地。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite [21] [1080p] [簡日內嵌] [2024年10月番]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5324,28 +5324,28 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 魔法使的约定 / Mahoutsukai no Yakusoku - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 魔法使的約定 / Mahoutsukai no Yakusoku - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[Strange-Raw] POKÉTOON [17] [WEB-DL] [1080P AVC-8Bits AAC 2.0×2] [简体内嵌字幕]")
+ val r = parse("[Strange-Raw] POKÉTOON [17] [WEB-DL] [1080P AVC-8Bits AAC 2.0×2] [簡體內嵌字幕]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[夜莺家族&YYQ字幕组]New Doraemon 哆啦A梦新番[850][2025.02.15][AVC][1080P][GB_JP]")
+ val r = parse("[夜鶯家族&YYQ字幕組]New Doraemon 哆啦A夢新番[850][2025.02.15][AVC][1080P][GB_JP]")
assertEquals("850..850", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云歌字幕组][1月新番][欢迎来到日本,精灵小姐][06][HEVC][x265 10bit][1080p][简日双语]")
+ val r = parse("[雲歌字幕組][1月新番][歡迎來到日本,精靈小姐][06][HEVC][x265 10bit][1080p][簡日雙語]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5359,7 +5359,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[漫猫字幕组][1月新番][BanG Dream! Ave Mujica][05][1080p][MP4][简中]")
+ val r = parse("[漫貓字幕組][1月新番][BanG Dream! Ave Mujica][05][1080p][MP4][簡中]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5373,7 +5373,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[漫猫字幕组][1月新番][BanG Dream! Ave Mujica][06][1080p][MP4][简中]")
+ val r = parse("[漫貓字幕組][1月新番][BanG Dream! Ave Mujica][06][1080p][MP4][簡中]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5400,21 +5400,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("【幻樱字幕组】【1月新番】【魔法制造者 ~异世界魔法的制作方法~ Magic Maker ~Isekai Mahou no Tsukurikata~】【06】【GB_MP4】【1920X1080】")
+ parse("【幻櫻字幕組】【1月新番】【魔法製造者 ~異世界魔法的製作方法~ Magic Maker ~Isekai Mahou no Tsukurikata~】【06】【GB_MP4】【1920X1080】")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[遮天][第97集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[遮天][第97集][國語中字][WEB-MKV][2160P]")
assertEquals("97..97", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[冷番补完字幕组][BanG Dream! Ave Mujica][2025][WEB][06][1080p][内封简繁中字]")
+ val r = parse("[冷番補完字幕組][BanG Dream! Ave Mujica][2025][WEB][06][1080p][內封簡繁中字]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5422,7 +5422,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 大叔转生恶役大小姐 / Akuyaku Reijou Tensei Ojisan - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 大叔轉生惡役大小姐 / Akuyaku Reijou Tensei Ojisan - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5430,7 +5430,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 大叔转生恶役大小姐 / Akuyaku Reijou Tensei Ojisan - 05 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 大叔轉生惡役大小姐 / Akuyaku Reijou Tensei Ojisan - 05 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5438,7 +5438,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 大叔转生恶役大小姐 / Akuyaku Reijou Tensei Ojisan - 04 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 大叔轉生惡役大小姐 / Akuyaku Reijou Tensei Ojisan - 04 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5446,7 +5446,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 大叔转生恶役大小姐 / Akuyaku Reijou Tensei Ojisan - 03 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 大叔轉生惡役大小姐 / Akuyaku Reijou Tensei Ojisan - 03 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5454,7 +5454,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 大叔转生恶役大小姐 / Akuyaku Reijou Tensei Ojisan - 02 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]v2")
+ parse("[LoliHouse] 大叔轉生惡役大小姐 / Akuyaku Reijou Tensei Ojisan - 02 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]v2")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5462,7 +5462,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 大叔转生恶役大小姐 / Akuyaku Reijou Tensei Ojisan - 01 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]v2")
+ parse("[LoliHouse] 大叔轉生惡役大小姐 / Akuyaku Reijou Tensei Ojisan - 01 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]v2")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5474,7 +5474,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689711-689709-689707-689706-689703-689702-689701-689700-689699-689698`() {
kotlin.run {
val r =
- parse("[DBD-Raws][4K_HDR][超时空要塞 可曾记得爱/The Super Dimension Fortress Macross - Do You Remember Love?][完全版+院线版][2160P][UHDBDRip][HEVC-10bit][简繁日双语外挂][FLAC][MKV](Choujikuu Yousai Macross: Ai Oboete Imasuka/超時空要塞マクロス 愛・おぼえていますか)")
+ parse("[DBD-Raws][4K_HDR][超時空要塞 可曾記得愛/The Super Dimension Fortress Macross - Do You Remember Love?][完全版+院線版][2160P][UHDBDRip][HEVC-10bit][簡繁日雙語外掛][FLAC][MKV](Choujikuu Yousai Macross: Ai Oboete Imasuka/超時空要塞マクロス 愛・おぼえていますか)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -5490,7 +5490,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[诸神字幕组][群花绽放、彷如修罗][Hana wa Saku, Shura no Gotoku][01][TVRip][简繁日语字幕][1080P][HEVC MKV]")
+ parse("[諸神字幕組][羣花綻放、彷如修羅][Hana wa Saku, Shura no Gotoku][01][TVRip][簡繁日語字幕][1080P][HEVC MKV]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5498,7 +5498,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[诸神字幕组][群花绽放、彷如修罗][Hana wa Saku, Shura no Gotoku][01][TVRip][简日双语字幕][1080P][CHS MP4]")
+ parse("[諸神字幕組][羣花綻放、彷如修羅][Hana wa Saku, Shura no Gotoku][01][TVRip][簡日雙語字幕][1080P][CHS MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5506,7 +5506,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[VCB-Studio] 转生为第七王子,随心所欲的魔法学习之路 / Tensei shitara Dainana Ouji Datta node, Kimama ni Majutsu wo Kiwamemasu / 転生したら第七王子だったので、気ままに魔術を極めます 10-bit 1080p HEVC BDRip [Fin]")
+ parse("[VCB-Studio] 轉生爲第七王子,隨心所欲的魔法學習之路 / Tensei shitara Dainana Ouji Datta node, Kimama ni Majutsu wo Kiwamemasu / 転生したら第七王子だったので、気ままに魔術を極めます 10-bit 1080p HEVC BDRip [Fin]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5514,7 +5514,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[北宇治字幕组&LoliHouse] 坂本日常 / SAKAMOTO DAYS - 06 [WebRip 1080p HEVC-10bit AACx2][简繁日内封字幕]")
+ parse("[北宇治字幕組&LoliHouse] 坂本日常 / SAKAMOTO DAYS - 06 [WebRip 1080p HEVC-10bit AACx2][簡繁日內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5522,7 +5522,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 黑岩目高不把我的可爱放在眼里 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai - 07 [WebRip 1080p HEVC-10bit AAC][无字幕]")
+ parse("[LoliHouse] 黑巖目高不把我的可愛放在眼裏 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai - 07 [WebRip 1080p HEVC-10bit AAC][無字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5530,7 +5530,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[北宇治字幕组&LoliHouse] 地。-关于地球的运动- / Chi. Chikyuu no Undou ni Tsuite 18 [WebRip 1080p HEVC-10bit AAC ASSx2][简繁日内封字幕]")
+ parse("[北宇治字幕組&LoliHouse] 地。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite 18 [WebRip 1080p HEVC-10bit AAC ASSx2][簡繁日內封字幕]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5538,7 +5538,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[北宇治字幕组&LoliHouse] 地。-关于地球的运动- / Chi. Chikyuu no Undou ni Tsuite 17 [WebRip 1080p HEVC-10bit AAC ASSx2][简繁日内封字幕]")
+ parse("[北宇治字幕組&LoliHouse] 地。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite 17 [WebRip 1080p HEVC-10bit AAC ASSx2][簡繁日內封字幕]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5594,7 +5594,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】【龙珠DAIMA Dragon Ball DAIMA】【17】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【10月新番】【龍珠DAIMA Dragon Ball DAIMA】【17】【GB_MP4】【1920X1080】")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5608,7 +5608,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】【龙珠DAIMA Dragon Ball DAIMA】【17】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【10月新番】【龍珠DAIMA Dragon Ball DAIMA】【17】【GB_MP4】【1280X720】")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5616,7 +5616,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[霜庭云花Sub][欢迎来到日本 妖精小姐 / 日本へようこそエルフさん。 / Nihon e Youkoso Elf-san.][03][1080P][AVC AAC][简日双语][WebRip]")
+ parse("[霜庭雲花Sub][歡迎來到日本 妖精小姐 / 日本へようこそエルフさん。 / Nihon e Youkoso Elf-san.][03][1080P][AVC AAC][簡日雙語][WebRip]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5624,7 +5624,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[霜庭云花Sub][欢迎来到日本 妖精小姐 / 日本へようこそエルフさん。 / Nihon e Youkoso Elf-san.][04][1080P][AVC AAC][简日双语][WebRip]")
+ parse("[霜庭雲花Sub][歡迎來到日本 妖精小姐 / 日本へようこそエルフさん。 / Nihon e Youkoso Elf-san.][04][1080P][AVC AAC][簡日雙語][WebRip]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5642,56 +5642,56 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[霜庭云花Sub][BanG Dream! Ave Mujica][06][1080P][AVC AAC][简日双语][WebRip]")
+ val r = parse("[霜庭雲花Sub][BanG Dream! Ave Mujica][06][1080P][AVC AAC][簡日雙語][WebRip]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕組] 群花綻放、彷如修羅 / Hana wa Saku, Shura no Gotoku [06][1080p][繁體內嵌]")
+ val r = parse("[桜都字幕組] 羣花綻放、彷如修羅 / Hana wa Saku, Shura no Gotoku [06][1080p][繁體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 群花绽放、彷如修罗 / Hana wa Saku, Shura no Gotoku [06][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 羣花綻放、彷如修羅 / Hana wa Saku, Shura no Gotoku [06][1080p][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 群花绽放、彷如修罗 / Hana wa Saku, Shura no Gotoku [06][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 羣花綻放、彷如修羅 / Hana wa Saku, Shura no Gotoku [06][1080p][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[萌樱字幕组] BanG Dream! Ave Mujica [06][1080p]")
+ val r = parse("[萌櫻字幕組] BanG Dream! Ave Mujica [06][1080p]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] BanG Dream! Ave Mujica / 颂乐人偶 [05][WebRip][HEVC_AAC][简繁日内封]")
+ val r = parse("[北宇治字幕組] BanG Dream! Ave Mujica / 頌樂人偶 [05][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] BanG Dream! Ave Mujica / 頌樂人偶 [05][WebRip][HEVC_AAC][繁日內嵌]")
+ val r = parse("[北宇治字幕組] BanG Dream! Ave Mujica / 頌樂人偶 [05][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] BanG Dream! Ave Mujica / 颂乐人偶 [05][WebRip][HEVC_AAC][简日内嵌]")
+ val r = parse("[北宇治字幕組] BanG Dream! Ave Mujica / 頌樂人偶 [05][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5699,7 +5699,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 药屋少女的呢喃 / 药屋少女的独语 / Kusuriya no Hitorigoto [30][WebRip][HEVC_AAC][简繁日内封]")
+ parse("[北宇治字幕組] 藥屋少女的呢喃 / 藥屋少女的獨語 / Kusuriya no Hitorigoto [30][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("30..30", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5711,7 +5711,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689673-689672-689671-689670-689669-689668-689666-689665-689664-689663`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 药屋少女的呢喃 / 药屋少女的独语 / Kusuriya no Hitorigoto [30][WebRip][HEVC_AAC][简日内嵌]")
+ parse("[北宇治字幕組] 藥屋少女的呢喃 / 藥屋少女的獨語 / Kusuriya no Hitorigoto [30][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("30..30", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5719,7 +5719,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 藥屋少女的呢喃 / 藥屋少女的獨語 / Kusuriya no Hitorigoto [30][WebRip][HEVC_AAC][繁日內嵌]")
+ parse("[北宇治字幕組] 藥屋少女的呢喃 / 藥屋少女的獨語 / Kusuriya no Hitorigoto [30][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("30..30", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5727,7 +5727,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[桜都字幕组] 「只能触摸一分钟哦...」合租房的秘密规则。 / 「1 Funkan dake Furete mo Ii yo...」 Share House no Himitsu Rule. [05][1080p][简繁内封]")
+ parse("[桜都字幕組] 「只能觸摸一分鐘哦...」合租房的祕密規則。 / 「1 Funkan dake Furete mo Ii yo...」 Share House no Himitsu Rule. [05][1080p][簡繁內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5735,7 +5735,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[桜都字幕組] 「只能觸摸一分鐘哦...」合租房的秘密規則。 / 「1 Funkan dake Furete mo Ii yo...」 Share House no Himitsu Rule. [05][1080p][繁體內嵌]")
+ parse("[桜都字幕組] 「只能觸摸一分鐘哦...」合租房的祕密規則。 / 「1 Funkan dake Furete mo Ii yo...」 Share House no Himitsu Rule. [05][1080p][繁體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5743,14 +5743,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[桜都字幕组] 「只能触摸一分钟哦...」合租房的秘密规则。 / 「1 Funkan dake Furete mo Ii yo...」 Share House no Himitsu Rule. [05][1080p][简体内嵌]")
+ parse("[桜都字幕組] 「只能觸摸一分鐘哦...」合租房的祕密規則。 / 「1 Funkan dake Furete mo Ii yo...」 Share House no Himitsu Rule. [05][1080p][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[轻之国度字幕组][恋语轻唱/恰如细语般的恋歌][01-12][720P][MP4]")
+ val r = parse("[輕之國度字幕組][戀語輕唱/恰如細語般的戀歌][01-12][720P][MP4]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5758,7 +5758,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[漫猫字幕社&猫恋汉化组][1月新番][药屋少女的呢喃][Kusuriya no Hitorigoto][30][1080P][MP4][GB&JP][简日双语]")
+ parse("[漫貓字幕社&貓戀漢化組][1月新番][藥屋少女的呢喃][Kusuriya no Hitorigoto][30][1080P][MP4][GB&JP][簡日雙語]")
assertEquals("30..30", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5773,7 +5773,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[吞噬星空][第158-159集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[吞噬星空][第158-159集][國語中字][WEB-MKV][2160P]")
assertEquals("158..159", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -5799,7 +5799,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[桜都字幕组] 我和班上最讨厌的女生结婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [07][1080p][简繁内封]")
+ parse("[桜都字幕組] 我和班上最討厭的女生結婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [07][1080p][簡繁內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5815,7 +5815,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[桜都字幕组] 我和班上最讨厌的女生结婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [07][1080p][简体内嵌]")
+ parse("[桜都字幕組] 我和班上最討厭的女生結婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [07][1080p][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5829,7 +5829,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[天久鹰央的推理病历表_Ameku Takao no Suiri Karte][06][1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[天久鷹央的推理病歷表_Ameku Takao no Suiri Karte][06][1080p][CHS]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5837,14 +5837,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[NEO·QSW]想星的阿克艾利昂 情感神话 想星のアクエリオン Aquarion: Myth of Emotions 05[WEBRIP AVC 1080P](搜索用:想星的大天使)")
+ parse("[NEO·QSW]想星的阿克艾利昂 情感神話 想星のアクエリオン Aquarion: Myth of Emotions 05[WEBRIP AVC 1080P](搜索用:想星的大天使)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 灰色:幻影扳机 / Grisaia:Phantom Trigger [07][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 灰色:幻影扳機 / Grisaia:Phantom Trigger [07][1080p][簡繁內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5858,7 +5858,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 灰色:幻影扳机 / Grisaia:Phantom Trigger [07][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 灰色:幻影扳機 / Grisaia:Phantom Trigger [07][1080p][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5869,7 +5869,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689649-689648-689647-689646-689645-689644-689643-689642-689641-689640`() {
kotlin.run {
- val r = parse("[桜都字幕组] 灰色:幻影扳机 / Grisaia:Phantom Trigger [06][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 灰色:幻影扳機 / Grisaia:Phantom Trigger [06][1080p][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5884,21 +5884,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[NEO·QSW]想星的阿克艾利昂 情感神话 想星のアクエリオン Aquarion: Myth of Emotions 04[WEBRIP AVC 1080P](搜索用:想星的大天使)")
+ parse("[NEO·QSW]想星的阿克艾利昂 情感神話 想星のアクエリオン Aquarion: Myth of Emotions 04[WEBRIP AVC 1080P](搜索用:想星的大天使)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 灰色:幻影扳机 / Grisaia:Phantom Trigger [06][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 灰色:幻影扳機 / Grisaia:Phantom Trigger [06][1080p][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 灰色:幻影扳机 / Grisaia:Phantom Trigger [05][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 灰色:幻影扳機 / Grisaia:Phantom Trigger [05][1080p][簡繁內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5912,14 +5912,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 灰色:幻影扳机 / Grisaia:Phantom Trigger [05][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 灰色:幻影扳機 / Grisaia:Phantom Trigger [05][1080p][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[VCB-Studio] 异世界失格 / Isekai Shikkaku / 異世界失格 10-bit 1080p HEVC BDRip [Fin]")
+ val r = parse("[VCB-Studio] 異世界失格 / Isekai Shikkaku / 異世界失格 10-bit 1080p HEVC BDRip [Fin]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5927,14 +5927,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[DBD-Raws][星铳士俾斯麦/Sei Juushi Bismarck][01-51TV全集][美版/USA.Ver][1080P][BDRip][HEVC-10bit][FLAC][MKV](星銃士 ビスマルク/Star Musketeer Bismark)")
+ parse("[DBD-Raws][星銃士俾斯麥/Sei Juushi Bismarck][01-51TV全集][美版/USA.Ver][1080P][BDRip][HEVC-10bit][FLAC][MKV](星銃士 ビスマルク/Star Musketeer Bismark)")
assertEquals("01..51", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[萌樱字幕组] 药屋少女的呢喃 [29][1080p][简繁日内封]")
+ val r = parse("[萌櫻字幕組] 藥屋少女的呢喃 [29][1080p][簡繁日內封]")
assertEquals("29..29", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5990,7 +5990,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[新沸羊羊制作] S级怪兽《贝希摩斯》被误认成小猫,成为精灵女孩的骑士(宠物)一起生活 - 08 [AMZN WebRip AI2160p HEVC-10bit E-AC-3][官方简繁内封字幕]")
+ parse("[新沸羊羊製作] S級怪獸《貝希摩斯》被誤認成小貓,成爲精靈女孩的騎士(寵物)一起生活 - 08 [AMZN WebRip AI2160p HEVC-10bit E-AC-3][官方簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -6040,21 +6040,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[冻牌 / Touhai: Ura Rate Mahjong Touhai Roku][18][1080p][简体][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[凍牌 / Touhai: Ura Rate Mahjong Touhai Roku][18][1080p][簡體][招募翻譯]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【FSD粉羽社】魔法使光之美少女!!~MIRAI DAYS~[05][1080P][简体中字]")
+ val r = parse("【FSD粉羽社】魔法使光之美少女!!~MIRAI DAYS~[05][1080P][簡體中字]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[新沸羊羊制作] 我独自升级 第二季 -起于暗影- - 07 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[新沸羊羊製作] 我獨自升級 第二季 -起於暗影- - 07 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -6069,7 +6069,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[喵萌奶茶屋&LoliHouse] 金牌得主 / Medalist - 07 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ val r = parse("[喵萌奶茶屋&LoliHouse] 金牌得主 / Medalist - 07 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6077,7 +6077,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[豌豆字幕组&LoliHouse] 青之驱魔师 终夜篇 / Ao no Exorcist Yosuga-hen - 07 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&LoliHouse] 青之驅魔師 終夜篇 / Ao no Exorcist Yosuga-hen - 07 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6091,7 +6091,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[金牌得主 / Medalist][07][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[金牌得主 / Medalist][07][1080p][簡日雙語][招募翻譯]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6109,28 +6109,28 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【豌豆字幕组】[青之驱魔师 终夜篇 / Ao no Exorcist _Yosuga Hen][07v2][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組】[青之驅魔師 終夜篇 / Ao no Exorcist _Yosuga Hen][07v2][簡體][1080P][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 坂本日常 / SAKAMOTO DAYS [06][WebRip][HEVC_AAC][简繁日內封]")
+ val r = parse("[北宇治字幕組] 坂本日常 / SAKAMOTO DAYS [06][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 坂本日常 / SAKAMOTO DAYS [06][WebRip][HEVC_AAC][简日內嵌]")
+ val r = parse("[北宇治字幕組] 坂本日常 / SAKAMOTO DAYS [06][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 坂本日常 / SAKAMOTO DAYS [06][WebRip][HEVC_AAC][繁日內嵌]")
+ val r = parse("[北宇治字幕組] 坂本日常 / SAKAMOTO DAYS [06][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -6138,7 +6138,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户手抄部] 神剑闯江湖 -明治剑客浪漫谭- 京都动乱 / Rurouni Kenshin:Meiji Kenkaku Romantan - Kyoto Douran [42] [1080p] [繁日内嵌] [2024年10月番]")
+ parse("[獵戶手抄部] 神劍闖江湖 -明治劍客浪漫譚- 京都動亂 / Rurouni Kenshin:Meiji Kenkaku Romantan - Kyoto Douran [42] [1080p] [繁日內嵌] [2024年10月番]")
assertEquals("42..42", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6146,7 +6146,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户手抄部] 浪客剑心 -明治剑客浪漫谭- 京都动乱 / Rurouni Kenshin: Meiji Kenkaku Romantan - Kyoto Douran [42] [1080p] [简日内嵌] [2024年10月番]")
+ parse("[獵戶手抄部] 浪客劍心 -明治劍客浪漫譚- 京都動亂 / Rurouni Kenshin: Meiji Kenkaku Romantan - Kyoto Douran [42] [1080p] [簡日內嵌] [2024年10月番]")
assertEquals("42..42", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6154,7 +6154,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[Strange-Raw] 战队红战士在异世界当冒险者 第一季 / Sentai Red Isekai de Boukensha ni Naru S01 [06] [Bilibili] [WEB-DL] [1080P AVC-8Bits AAC 2.0] [简日内嵌字幕]")
+ parse("[Strange-Raw] 戰隊紅戰士在異世界當冒險者 第一季 / Sentai Red Isekai de Boukensha ni Naru S01 [06] [Bilibili] [WEB-DL] [1080P AVC-8Bits AAC 2.0] [簡日內嵌字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6162,14 +6162,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 青之箱 / 青春之箱 / 青春盒子 / 蓝箱 / Ao no Hako / Blue Box [17][WebRip][HEVC_AAC][简繁日内封]")
+ parse("[北宇治字幕組] 青之箱 / 青春之箱 / 青春盒子 / 藍箱 / Ao no Hako / Blue Box [17][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 青春之箱 / 青春盒子 / Ao no Hako / Blue Box [17][WebRip][HEVC_AAC][繁日內嵌]")
+ val r = parse("[北宇治字幕組] 青春之箱 / 青春盒子 / Ao no Hako / Blue Box [17][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -6180,14 +6180,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689605-689604-689603-689602-689599-689598-689597-689596-689595-689593`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 青之箱 / 蓝箱 / Ao no Hako / Blue Box [17][WebRip][HEVC_AAC][简日内嵌]")
+ val r = parse("[北宇治字幕組] 青之箱 / 藍箱 / Ao no Hako / Blue Box [17][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【SW字幕组】[宠物小精灵 / 宝可梦 地平线 烈空坐之升龙崛起][77-83][简日双语字幕][1080P][AVC][MP4][CHS_JP]")
+ val r = parse("【SW字幕組】[寵物小精靈 / 寶可夢 地平線 烈空坐之升龍崛起][77-83][簡日雙語字幕][1080P][AVC][MP4][CHS_JP]")
assertEquals("77..83", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6195,7 +6195,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[哆啦字幕组][哆啦A梦大山版附映中篇 Doraemon1979][2000.3.11][1080P][WEB][简日&繁日][奶奶的回忆][数码修复版][MKV]")
+ parse("[哆啦字幕組][哆啦A夢大山版附映中篇 Doraemon1979][2000.3.11][1080P][WEB][簡日&繁日][奶奶的回憶][數碼修復版][MKV]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6203,7 +6203,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] S级怪兽《贝希摩斯》被误认成小猫,成为精灵女孩的骑士(宠物)一起生活 / Beheneko - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] S級怪獸《貝希摩斯》被誤認成小貓,成爲精靈女孩的騎士(寵物)一起生活 / Beheneko - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6219,14 +6219,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[MingY] 剧场总集篇 孤独摇滚! Re: / Bocchi the Rock! Re [剧场版][BDRip][1080p][HEVC OPUS][简日内嵌]")
+ parse("[MingY] 劇場總集篇 孤獨搖滾! Re: / Bocchi the Rock! Re [劇場版][BDRip][1080p][HEVC OPUS][簡日內嵌]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[雪飄工作室][ひみつのアイプリ/Himitsu_no_Aipri/秘密的美妙公主][45][简繁外挂](检索:/美妙旋律/美妙天堂/美妙頻道/美妙魔法)")
+ val r = parse("[雪飄工作室][ひみつのアイプリ/Himitsu_no_Aipri/祕密的美妙公主][45][簡繁外掛](檢索:/美妙旋律/美妙天堂/美妙頻道/美妙魔法)")
assertEquals("45..45", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -6234,7 +6234,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[雪飄工作室][ひみつのアイプリ/Himitsu_no_Aipri/秘密的美妙公主][720P][45][繁](检索:/美妙旋律/美妙天堂/美妙頻道/美妙魔法)")
+ parse("[雪飄工作室][ひみつのアイプリ/Himitsu_no_Aipri/祕密的美妙公主][720P][45][繁](檢索:/美妙旋律/美妙天堂/美妙頻道/美妙魔法)")
assertEquals("45..45", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6242,14 +6242,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] Shangri-La Frontier / 香格里拉·开拓异境~粪作猎手挑战神作~ - 44 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] Shangri-La Frontier / 香格里拉·開拓異境~糞作獵手挑戰神作~ - 44 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("44..44", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][仙逆][Renegade Immortal][2023][76][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][仙逆][Renegade Immortal][2023][76][AVC][GB][1080P]")
assertEquals("76..76", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6261,7 +6261,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689592-689591-689590-689589-689588-689586-689585-689584-689583-689582`() {
kotlin.run {
val r =
- parse("[LoliHouse] 不幸职业【鉴定士】实则最强 / Fuguushoku 'Kanteishi' ga Jitsu wa Saikyou Datta - 05 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 不幸職業【鑑定士】實則最強 / Fuguushoku 'Kanteishi' ga Jitsu wa Saikyou Datta - 05 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6269,7 +6269,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 不幸职业【鉴定士】实则最强 / Fuguushoku 'Kanteishi' ga Jitsu wa Saikyou Datta - 04 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 不幸職業【鑑定士】實則最強 / Fuguushoku 'Kanteishi' ga Jitsu wa Saikyou Datta - 04 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6277,7 +6277,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 不幸职业【鉴定士】实则最强 / Fuguushoku 'Kanteishi' ga Jitsu wa Saikyou Datta - 03 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 不幸職業【鑑定士】實則最強 / Fuguushoku 'Kanteishi' ga Jitsu wa Saikyou Datta - 03 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6285,7 +6285,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 虽然我是注定没落的贵族,闲来无事只好来深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita - 05 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 雖然我是註定沒落的貴族,閒來無事只好來深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita - 05 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6300,28 +6300,28 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[仙逆][第76集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[仙逆][第76集][國語中字][WEB-MKV][2160P]")
assertEquals("76..76", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][长生界][The Eternal Realm][2024][17][HEVC][GB][4K]")
+ val r = parse("[GM-Team][國漫][長生界][The Eternal Realm][2024][17][HEVC][GB][4K]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][长生界][The Eternal Realm][2024][16][HEVC][GB][4K]")
+ val r = parse("[GM-Team][國漫][長生界][The Eternal Realm][2024][16][HEVC][GB][4K]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][长生界][The Eternal Realm][2024][15][HEVC][GB][4K]")
+ val r = parse("[GM-Team][國漫][長生界][The Eternal Realm][2024][15][HEVC][GB][4K]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -6329,7 +6329,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[VCB-Studio] 空战魔导士候补生的教官 / Kuusen Madoushi Kouhosei no Kyoukan / 空戦魔導士候補生の教官 10-bit 1080p HEVC BDRip [Fin]")
+ parse("[VCB-Studio] 空戰魔導士候補生的教官 / Kuusen Madoushi Kouhosei no Kyoukan / 空戦魔導士候補生の教官 10-bit 1080p HEVC BDRip [Fin]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6341,49 +6341,49 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689581-689579-689578-689577-689576-689575-689574-689573-689572-689571`() {
kotlin.run {
val r =
- parse("[DBD-Raws][为美好的世界献上祝福! 第三季/Kono Subarashii Sekai ni Shukufuku o! 3][01-11TV全集+特典映像][1080P][BDRip][HEVC-10bit][简繁外挂][FLACx2][MKV](この素晴らしい世界に祝福を! 3)")
+ parse("[DBD-Raws][爲美好的世界獻上祝福! 第三季/Kono Subarashii Sekai ni Shukufuku o! 3][01-11TV全集+特典映像][1080P][BDRip][HEVC-10bit][簡繁外掛][FLACx2][MKV](この素晴らしい世界に祝福を! 3)")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][吞噬星空][Swallowed Star][2021][158][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][吞噬星空][Swallowed Star][2021][158][AVC][GB][1080P]")
assertEquals("158..158", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][吞噬星空][Swallowed Star][2021][157][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][吞噬星空][Swallowed Star][2021][157][AVC][GB][1080P]")
assertEquals("157..157", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][吞噬星空][Swallowed Star][2021][156][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][吞噬星空][Swallowed Star][2021][156][AVC][GB][1080P]")
assertEquals("156..156", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][仙逆][Renegade Immortal][2023][75][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][仙逆][Renegade Immortal][2023][75][AVC][GB][1080P]")
assertEquals("75..75", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][仙逆][Renegade Immortal][2023][74][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][仙逆][Renegade Immortal][2023][74][AVC][GB][1080P]")
assertEquals("74..74", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GM-Team][国漫][仙逆][Renegade Immortal][2023][73][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][仙逆][Renegade Immortal][2023][73][AVC][GB][1080P]")
assertEquals("73..73", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6391,7 +6391,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 离开A级队伍的我,和从前的弟子往迷宫深处迈进 / Aparida - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 離開A級隊伍的我,和從前的弟子往迷宮深處邁進 / Aparida - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6399,7 +6399,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 我与尼特女忍者的莫名同居生活 / NEET Kunoichi - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 我與尼特女忍者的莫名同居生活 / NEET Kunoichi - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6407,7 +6407,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[DBD-Raws][超时空要塞 可曾记得爱/The Super Dimension Fortress Macross - Do You Remember Love?][完全版+院线版][1080P][BDRip][HEVC-10bit][简繁日双语外挂][FLAC][MKV](Choujikuu Yousai Macross: Ai Oboete Imasuka/超時空要塞マクロス 愛・おぼえていますか)")
+ parse("[DBD-Raws][超時空要塞 可曾記得愛/The Super Dimension Fortress Macross - Do You Remember Love?][完全版+院線版][1080P][BDRip][HEVC-10bit][簡繁日雙語外掛][FLAC][MKV](Choujikuu Yousai Macross: Ai Oboete Imasuka/超時空要塞マクロス 愛・おぼえていますか)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6419,7 +6419,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689568-689567-689566-689563-689561-689560-689559-689557-689556-689555`() {
kotlin.run {
val r =
- parse("[雪飘工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/与你同为 偶像光之美少女♪][1080p][03][简繁外挂](检索:Q娃)")
+ parse("[雪飄工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/與你同爲 偶像光之美少女♪][1080p][03][簡繁外掛](檢索:Q娃)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6427,7 +6427,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[雪飘工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/与你同为 偶像光之美少女♪][720p][03][简体内嵌](检索:Q娃)")
+ parse("[雪飄工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/與你同爲 偶像光之美少女♪][720p][03][簡體內嵌](檢索:Q娃)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6435,7 +6435,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[雪飄工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/与你同为 偶像光之美少女♪][720p][03][繁體內嵌](檢索:Q娃)")
+ parse("[雪飄工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/與你同爲 偶像光之美少女♪][720p][03][繁體內嵌](檢索:Q娃)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6443,7 +6443,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 我独自升级 -起于暗影- / Ore dake Level Up na Ken / Solo Leveling - 19 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 我獨自升級 -起於暗影- / Ore dake Level Up na Ken / Solo Leveling - 19 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6451,7 +6451,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 黄昏旅店 / Tasokare Hotel - 07 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 黃昏旅店 / Tasokare Hotel - 07 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6459,7 +6459,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 黄昏旅店 / Tasokare Hotel - 06 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 黃昏旅店 / Tasokare Hotel - 06 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6467,7 +6467,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 黄昏旅店 / Tasokare Hotel - 05 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 黃昏旅店 / Tasokare Hotel - 05 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6540,7 +6540,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[雪飘工作室][魔法つかいプリキュア!!~MIRAI DAYS~/Maho_Girls_Precure!!/魔法少女 光之美少女!!~未来的日子~][1080p][06][简繁外挂](检索:Q娃)")
+ parse("[雪飄工作室][魔法つかいプリキュア!!~MIRAI DAYS~/Maho_Girls_Precure!!/魔法少女 光之美少女!!~未來的日子~][1080p][06][簡繁外掛](檢索:Q娃)")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6548,7 +6548,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[雪飘工作室][魔法つかいプリキュア!!~MIRAI DAYS~/Maho_Girls_Precure!!/魔法少女 光之美少女!!~未来的日子~][720p][06][简体内嵌](检索:Q娃)")
+ parse("[雪飄工作室][魔法つかいプリキュア!!~MIRAI DAYS~/Maho_Girls_Precure!!/魔法少女 光之美少女!!~未來的日子~][720p][06][簡體內嵌](檢索:Q娃)")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6563,7 +6563,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&澄空学园&华盟字幕社&千夏字幕组】★10月新番[冻牌][18][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組&澄空學園&華盟字幕社&千夏字幕組】★10月新番[凍牌][18][1080P][簡體][MP4]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6613,21 +6613,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银色子弹字幕组][名侦探柯南][第1153集 屋久岛的山姬(前篇)][WEBRIP][简繁日多语MKV][1080P]")
+ val r = parse("[銀色子彈字幕組][名偵探柯南][第1153集 屋久島的山姬(前篇)][WEBRIP][簡繁日多語MKV][1080P]")
assertEquals("1153..1153", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银色子弹字幕组][名侦探柯南][第1153集 屋久島的山姬(前篇)][WEBRIP][繁日雙語MP4][1080P]")
+ val r = parse("[銀色子彈字幕組][名偵探柯南][第1153集 屋久島的山姬(前篇)][WEBRIP][繁日雙語MP4][1080P]")
assertEquals("1153..1153", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银色子弹字幕组][名侦探柯南][第1153集 屋久岛的山姬(前篇)][WEBRIP][简日双语MP4][1080P]")
+ val r = parse("[銀色子彈字幕組][名偵探柯南][第1153集 屋久島的山姬(前篇)][WEBRIP][簡日雙語MP4][1080P]")
assertEquals("1153..1153", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6683,7 +6683,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[黑白字幕组]我的可爱对黑岩目高不管用 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai [06] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]我的可愛對黑巖目高不管用 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai [06] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6691,7 +6691,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[黑白字幕组]我的可爱对黑岩目高不管用 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai [06] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]我的可愛對黑巖目高不管用 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai [06] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6714,14 +6714,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[新沸羊羊制作] 龙珠大魔 - 18 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[新沸羊羊製作] 龍珠大魔 - 18 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【DBFC字幕组】【龙珠 大魔】【018】【中日双语字幕】【1080P】【MP4】")
+ val r = parse("【DBFC字幕組】【龍珠 大魔】【018】【中日雙語字幕】【1080P】【MP4】")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6729,7 +6729,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[Strange-Raw] 坂本日常 第一季 / SAKAMOTO DAYS S01 [06] [Bilibili] [WEB-DL] [1080P AVC-8Bits AAC 2.0] [简日内嵌字幕]")
+ parse("[Strange-Raw] 坂本日常 第一季 / SAKAMOTO DAYS S01 [06] [Bilibili] [WEB-DL] [1080P AVC-8Bits AAC 2.0] [簡日內嵌字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6741,7 +6741,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689517-689514-689513-689512-689511-689510-689509-689508-689507-689506`() {
kotlin.run {
val r =
- parse("[LoliHouse] 我和班上最讨厌的女生结婚了。 / クラスの大嫌いな女子と結婚することになった。 / Kurakon - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 我和班上最討厭的女生結婚了。 / クラスの大嫌いな女子と結婚することになった。 / Kurakon - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6749,14 +6749,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 精灵来日 / 歡迎來到日本,妖精小姐。 / 日本へようこそエルフさん。 / Nihon e Youkoso Elf-san. - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 精靈來日 / 歡迎來到日本,妖精小姐。 / 日本へようこそエルフさん。 / Nihon e Youkoso Elf-san. - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[新沸羊羊制作] 药师少女的独语 第二季 - 06 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[新沸羊羊製作] 藥師少女的獨語 第二季 - 06 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -6770,21 +6770,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[风车字幕组][名侦探柯南][1140][女子推理社3][1080P][简体][MP4]")
+ val r = parse("[風車字幕組][名偵探柯南][1140][女子推理社3][1080P][簡體][MP4]")
assertEquals("1140..1140", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕·毁片党】 这家公司里有我喜欢的人 第06集 GB_CN HEVC_opus 1080p")
+ val r = parse("【極影字幕·毀片黨】 這家公司裏有我喜歡的人 第06集 GB_CN HEVC_opus 1080p")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[斗破苍穹年番][第134集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[鬥破蒼穹年番][第134集][國語中字][WEB-MKV][2160P]")
assertEquals("134..134", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -6799,7 +6799,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[H-Enc] 义妹生活 / Gimai Seikatsu (BDRip 1080p HEVC FLAC)")
+ val r = parse("[H-Enc] 義妹生活 / Gimai Seikatsu (BDRip 1080p HEVC FLAC)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6807,7 +6807,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 迟早是最强的炼金术师? / Izure Saikyou no Renkinjutsushi? - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 遲早是最強的鍊金術師? / Izure Saikyou no Renkinjutsushi? - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6819,7 +6819,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689505-689504-689503-689501-689500-689497-689496-689495-689494-689493`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 异修罗 第二季 / Ishura S2 - 06 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 異修羅 第二季 / Ishura S2 - 06 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6835,7 +6835,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("【百冬练习组】【Re: 从零开始的异世界的生活_Re꞉ Zero kara Hajimeru Isekai Seikatsu】[60][WebRip 1080p AVC AAC][简体]")
+ parse("【百冬練習組】【Re: 從零開始的異世界的生活_Re꞉ Zero kara Hajimeru Isekai Seikatsu】[60][WebRip 1080p AVC AAC][簡體]")
assertEquals("60..60", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6843,7 +6843,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[VCB-Studio] 圣剑使的禁咒咏唱 / Seiken Tsukai no World Break / 聖剣使いの禁呪詠唱 10-bit 1080p HEVC BDRip [Fin]")
+ parse("[VCB-Studio] 聖劍使的禁咒詠唱 / Seiken Tsukai no World Break / 聖剣使いの禁呪詠唱 10-bit 1080p HEVC BDRip [Fin]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6851,7 +6851,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[DBD-Raws][小市民系列/Shoushimin Series][01-10TV全集+特典映像][1080P][BDRip][HEVC-10bit][简繁日双语外挂][FLAC][MKV](小市民シリーズ)")
+ parse("[DBD-Raws][小市民系列/Shoushimin Series][01-10TV全集+特典映像][1080P][BDRip][HEVC-10bit][簡繁日雙語外掛][FLAC][MKV](小市民シリーズ)")
assertEquals("01..10", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6859,7 +6859,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 无名记忆 Act.2 / 無名記憶 Act.2 / Unnamed Memory Act.2 - 18 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 無名記憶 Act.2 / 無名記憶 Act.2 / Unnamed Memory Act.2 - 18 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6867,7 +6867,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 龙珠 大魔 / Dragon Ball Daima - 18 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 龍珠 大魔 / Dragon Ball Daima - 18 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6881,7 +6881,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[蜂蜜柠檬苏打 / Honey Lemon Soda][04][1080p][简体]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[蜂蜜檸檬蘇打 / Honey Lemon Soda][04][1080p][簡體]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6899,14 +6899,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689492-689491-689490-689489-689488-689487-689486-689485-689484-689483`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[蜂蜜柠檬苏打 / Honey Lemon Soda][03][1080p][简体]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[蜂蜜檸檬蘇打 / Honey Lemon Soda][03][1080p][簡體]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[凡人修仙传][第130集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[凡人修仙傳][第130集][國語中字][WEB-MKV][2160P]")
assertEquals("130..130", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -6914,7 +6914,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★10月新番★[Chi。-关于地球的运动- / Chi. Chikyuu no Undou ni Tsuite][19][1080p][简日双语][招募翻译]")
+ parse("【喵萌奶茶屋】★10月新番★[Chi。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite][19][1080p][簡日雙語][招募翻譯]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6922,14 +6922,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★10月新番★[Chi。-关于地球的运动- / Chi. Chikyuu no Undou ni Tsuite][18][1080p][简日双语][招募翻译]")
+ parse("【喵萌奶茶屋】★10月新番★[Chi。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite][18][1080p][簡日雙語][招募翻譯]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[黄昏旅店 / Tasokare Hotel][07][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[黃昏旅店 / Tasokare Hotel][07][1080p][簡日雙語][招募翻譯]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6937,14 +6937,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 终究、与你相恋 / Douse, Koishite Shimaunda - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 終究、與你相戀 / Douse, Koishite Shimaunda - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【豌豆字幕组】[药屋少女的呢喃(药师少女的独语)/ Kusuriya no Hitorigoto][30][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組】[藥屋少女的呢喃(藥師少女的獨語)/ Kusuriya no Hitorigoto][30][簡體][1080P][MP4]")
assertEquals("30..30", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7022,7 +7022,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银色子弹字幕组][名侦探柯南][第57-58集 福尔摩斯迷杀人事件][WEBRIP][简日双语MP4/繁日雙語MP4/简繁日多语MKV][1080P]")
+ val r = parse("[銀色子彈字幕組][名偵探柯南][第57-58集 福爾摩斯迷殺人事件][WEBRIP][簡日雙語MP4/繁日雙語MP4/簡繁日多語MKV][1080P]")
assertEquals("57..58", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7037,7 +7037,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 想星的大天使 Myth of Emotions / Sousei no Aquarion: Myth of Emotions - 06 [WebRip 1080p HEVC-10bit AAC][无字幕]")
+ parse("[LoliHouse] 想星的大天使 Myth of Emotions / Sousei no Aquarion: Myth of Emotions - 06 [WebRip 1080p HEVC-10bit AAC][無字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7063,7 +7063,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[无名记忆 Act.2 / Unnamed Memory Act.2][18][1080p][简日双语][招募翻译时轴]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[無名記憶 Act.2 / Unnamed Memory Act.2][18][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7071,7 +7071,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[桜都字幕组] 在地下城寻求邂逅是否搞错了什么 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [13][1080p][繁体内嵌]")
+ parse("[桜都字幕組] 在地下城尋求邂逅是否搞錯了什麼 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [13][1080p][繁體內嵌]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7079,7 +7079,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[桜都字幕组] 在地下城寻求邂逅是否搞错了什么 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [13][1080p][简体内嵌]")
+ parse("[桜都字幕組] 在地下城尋求邂逅是否搞錯了什麼 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [13][1080p][簡體內嵌]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7087,7 +7087,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[桜都字幕组] 在地下城寻求邂逅是否搞错了什么 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [13][1080p][简繁内封]")
+ parse("[桜都字幕組] 在地下城尋求邂逅是否搞錯了什麼 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [13][1080p][簡繁內封]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7095,7 +7095,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[桜都字幕组] 在地下城寻求邂逅是否搞错了什么 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [12][1080p][繁体内嵌]")
+ parse("[桜都字幕組] 在地下城尋求邂逅是否搞錯了什麼 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [12][1080p][繁體內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7103,7 +7103,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[桜都字幕组] 在地下城寻求邂逅是否搞错了什么 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [12][1080p][简体内嵌]")
+ parse("[桜都字幕組] 在地下城尋求邂逅是否搞錯了什麼 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [12][1080p][簡體內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7111,7 +7111,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[桜都字幕组] 在地下城寻求邂逅是否搞错了什么 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [12][1080p][简繁内封]")
+ parse("[桜都字幕組] 在地下城尋求邂逅是否搞錯了什麼 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [12][1080p][簡繁內封]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7139,14 +7139,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689456-689455-689454-689453-689452-689451-689450-689449-689448-689447`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 群花绽放,仿如修罗 / Hana wa Saku Shura no Gotoku - 06 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 羣花綻放,仿如修羅 / Hana wa Saku Shura no Gotoku - 06 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组] 蜂蜜柠檬苏打水 Honey Lemon Soda [05][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 蜂蜜檸檬蘇打水 Honey Lemon Soda [05][簡體雙語][1080p]招募翻譯")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7154,21 +7154,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [18v2] [1080p] [繁日内嵌] [JaVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [18v2] [1080p] [繁日內嵌] [JaVer] [2025年1月番]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[群花綻放,彷如修羅 / Hana wa Saku Shura no Gotoku][06][1080p][繁日雙語][招募翻譯]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[羣花綻放,彷如修羅 / Hana wa Saku Shura no Gotoku][06][1080p][繁日雙語][招募翻譯]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[群花绽放,彷如修罗 / Hana wa Saku Shura no Gotoku][06][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[羣花綻放,彷如修羅 / Hana wa Saku Shura no Gotoku][06][1080p][簡日雙語][招募翻譯]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7176,7 +7176,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [18v2] [1080p] [简日内嵌] [JaVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [18v2] [1080p] [簡日內嵌] [JaVer] [2025年1月番]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7184,7 +7184,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [18] [1080p] [简日内嵌] [KoVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [18] [1080p] [簡日內嵌] [KoVer] [2025年1月番]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7199,7 +7199,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[Amor压制组][药师少女的独语 藥師少女的獨語 Kusuriya no Hitorigoto][30][简繁内封][WEBDL][1080P][MKV]")
+ val r = parse("[Amor壓制組][藥師少女的獨語 藥師少女的獨語 Kusuriya no Hitorigoto][30][簡繁內封][WEBDL][1080P][MKV]")
assertEquals("30..30", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7218,35 +7218,35 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689445-689444-689443-689442-689441-689440-689439-689438-689437-689436`() {
kotlin.run {
val r =
- parse("[LoliHouse] 浪客剑心 -明治剑客浪漫谭- 京都动乱 / Rurouni Kenshin (2023) - 42 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 浪客劍心 -明治劍客浪漫譚- 京都動亂 / Rurouni Kenshin (2023) - 42 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("42..42", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[梦蓝字幕组]New Doraemon 哆啦A梦新番[849][2025.02.08][AVC][1080P][GB_JP][MP4]")
+ val r = parse("[夢藍字幕組]New Doraemon 哆啦A夢新番[849][2025.02.08][AVC][1080P][GB_JP][MP4]")
assertEquals("849..849", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 群花绽放、彷如修罗 / Hana wa Saku, Shura no Gotoku [05][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 羣花綻放、彷如修羅 / Hana wa Saku, Shura no Gotoku [05][1080p][簡繁內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 群花绽放、彷如修罗 / Hana wa Saku, Shura no Gotoku [05][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 羣花綻放、彷如修羅 / Hana wa Saku, Shura no Gotoku [05][1080p][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕組] 群花綻放、彷如修羅 / Hana wa Saku, Shura no Gotoku [05][1080p][繁體內嵌]")
+ val r = parse("[桜都字幕組] 羣花綻放、彷如修羅 / Hana wa Saku, Shura no Gotoku [05][1080p][繁體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7254,7 +7254,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[桜都字幕组] 喜欢的冲绳妹说方言 / Okinawa de Suki ni Natta Ko ga Hougen Sugite Tsura Sugiru [06][1080p][简繁日内封]")
+ parse("[桜都字幕組] 喜歡的沖繩妹說方言 / Okinawa de Suki ni Natta Ko ga Hougen Sugite Tsura Sugiru [06][1080p][簡繁日內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7262,7 +7262,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[桜都字幕组] 喜欢的冲绳妹说方言 / Okinawa de Suki ni Natta Ko ga Hougen Sugite Tsura Sugiru [06][1080p][简日内嵌]")
+ parse("[桜都字幕組] 喜歡的沖繩妹說方言 / Okinawa de Suki ni Natta Ko ga Hougen Sugite Tsura Sugiru [06][1080p][簡日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7278,7 +7278,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[黑白字幕组]魔术发明家 ~异世界魔法的制作方法~ / Magic Maker: Isekai Mahou no Tsukurikata [06] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]魔術發明家 ~異世界魔法的製作方法~ / Magic Maker: Isekai Mahou no Tsukurikata [06] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7286,7 +7286,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[黑白字幕组]魔术发明家 ~异世界魔法的制作方法~ / Magic Maker: Isekai Mahou no Tsukurikata [06] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]魔術發明家 ~異世界魔法的製作方法~ / Magic Maker: Isekai Mahou no Tsukurikata [06] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7298,28 +7298,28 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689435-689434-689433-689432-689431-689430-689429-689428-689427-689426`() {
kotlin.run {
val r =
- parse("[DBD-Raws][异世界悠闲农家/Isekai Nonbiri Nouka][01-12TV全集+特典映像][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV](異世界のんびり農家)")
+ parse("[DBD-Raws][異世界悠閒農家/Isekai Nonbiri Nouka][01-12TV全集+特典映像][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV](異世界のんびり農家)")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 无名记忆 第二季 / Unnamed Memory Act.2 [18] [1080p] [繁日内嵌] [2025年1月番]")
+ val r = parse("[獵戶手抄部] 無名記憶 第二季 / Unnamed Memory Act.2 [18] [1080p] [繁日內嵌] [2025年1月番]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 无名记忆 第二季 / Unnamed Memory Act.2 [18] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶手抄部] 無名記憶 第二季 / Unnamed Memory Act.2 [18] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 全修。 / Zenshuu. [06][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 全修。 / Zenshuu. [06][1080p][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7333,7 +7333,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 全修。 / Zenshuu. [06][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 全修。 / Zenshuu. [06][1080p][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7341,7 +7341,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[桜都字幕组] 我和班上最讨厌的女生结婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [06][1080p][简体内嵌]")
+ parse("[桜都字幕組] 我和班上最討厭的女生結婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [06][1080p][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7357,14 +7357,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[桜都字幕组] 我和班上最讨厌的女生结婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [06][1080p][简繁内封]")
+ parse("[桜都字幕組] 我和班上最討厭的女生結婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [06][1080p][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[斗罗大陆2绝世唐门][第88集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[斗羅大陸2絕世唐門][第88集][國語中字][WEB-MKV][2160P]")
assertEquals("88..88", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -7384,7 +7384,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[DBD-Raws][前辈是男孩子/Senpai wa Otokonoko][01-12TV全集][1080P][BDRip][HEVC-10bit][简繁日双语外挂][FLAC][MKV](先輩はおとこのこ)")
+ parse("[DBD-Raws][前輩是男孩子/Senpai wa Otokonoko][01-12TV全集][1080P][BDRip][HEVC-10bit][簡繁日雙語外掛][FLAC][MKV](先輩はおとこのこ)")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7392,7 +7392,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[DBD-Raws][魔法科高中的劣等生 第三季/Mahouka Koukou no Rettousei S3][01-13TV全集][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV](魔法科高校の劣等生 第3シーズン)")
+ parse("[DBD-Raws][魔法科高中的劣等生 第三季/Mahouka Koukou no Rettousei S3][01-13TV全集][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV](魔法科高校の劣等生 第3シーズン)")
assertEquals("01..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7400,7 +7400,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[黑白字幕组]中年男的异世界网购生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [05] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]中年男的異世界網購生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [05] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7408,7 +7408,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[黑白字幕组]中年男的异世界网购生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [05] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]中年男的異世界網購生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [05] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7416,7 +7416,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[DBD-Raws][孤独摇滚!剧场总集篇/Gekijou Soushuuhen Bocchi the Rock!][正片+SP][1080P][BDRip][HEVC-10bit][FLAC+AC3][MKV](劇場総集編ぼっち・ざ・ろっく!)")
+ parse("[DBD-Raws][孤獨搖滾!劇場總集篇/Gekijou Soushuuhen Bocchi the Rock!][正片+SP][1080P][BDRip][HEVC-10bit][FLAC+AC3][MKV](劇場総集編ぼっち・ざ・ろっく!)")
assertEquals("SP..SP", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7424,7 +7424,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[新沸羊羊制作] Bang Dream Ave Mujica - 07 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ parse("[新沸羊羊製作] Bang Dream Ave Mujica - 07 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -7438,7 +7438,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【今晚月色真美】[青之箱 / アオのハコ / Ao no Hako][20][WEBrip][1080P][简日双语]")
+ val r = parse("【今晚月色真美】[青之箱 / アオのハコ / Ao no Hako][20][WEBrip][1080P][簡日雙語]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7517,14 +7517,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[异修罗 第二季 / Ishura S2][06][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[異修羅 第二季 / Ishura S2][06][1080p][簡日雙語][招募翻譯]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌Production】★01月新番★[BanG Dream! Ave Mujica][07][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌Production】★01月新番★[BanG Dream! Ave Mujica][07][1080p][簡日雙語][招募翻譯]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7535,7 +7535,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689390-689389-689387-689386-689385-689384-689383-689382-689381-689380`() {
kotlin.run {
- val r = parse("【极影字幕·毁片党】灰色:幻影扳机 第06集 GB_CN HEVC_opus 1080p")
+ val r = parse("【極影字幕·毀片黨】灰色:幻影扳機 第06集 GB_CN HEVC_opus 1080p")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7551,7 +7551,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[DBD制作组][4K(2160P)+HDR+1080P][BanG Dream! Ave Mujica][07][WEB-DL][简日双语内嵌][AAC][MKV]")
+ parse("[DBD製作組][4K(2160P)+HDR+1080P][BanG Dream! Ave Mujica][07][WEB-DL][簡日雙語內嵌][AAC][MKV]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7559,7 +7559,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[S1百综字幕组]BanG Dream! Ave Mujica [07][2160p][Bilibili][Web-DL][HDR][HEVC_AAC][简日双语]")
+ parse("[S1百綜字幕組]BanG Dream! Ave Mujica [07][2160p][Bilibili][Web-DL][HDR][HEVC_AAC][簡日雙語]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -7567,7 +7567,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 我的幸福婚姻 2期 / Watashi no Shiawase na Kekkon S2 - 06 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 我的幸福婚姻 2期 / Watashi no Shiawase na Kekkon S2 - 06 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7575,21 +7575,21 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[DBD-Raws][机动战士高达ZZ/Mobile Suit Gundam ZZ][01-47TV全集+特典映像][1080P][BDRip][HEVC-10bit][简繁内封][FLAC][MKV](Kidou Senshi Gundam ZZ/機動戦士ガンダムZZ)")
+ parse("[DBD-Raws][機動戰士高達ZZ/Mobile Suit Gundam ZZ][01-47TV全集+特典映像][1080P][BDRip][HEVC-10bit][簡繁內封][FLAC][MKV](Kidou Senshi Gundam ZZ/機動戦士ガンダムZZ)")
assertEquals("01..47", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[完美世界][第202集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[完美世界][第202集][國語中字][WEB-MKV][2160P]")
assertEquals("202..202", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[晚街与灯][灼眼的夏娜 第一季_Shakugan no Shana I][04][BDRip_1080P_x264_AAC][简日内嵌]")
+ val r = parse("[晚街與燈][灼眼的夏娜 第一季_Shakugan no Shana I][04][BDRip_1080P_x264_AAC][簡日內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7603,7 +7603,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[新沸羊羊制作] Re:从零开始的异世界生活 第三季 - 10V2 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[新沸羊羊製作] Re:從零開始的異世界生活 第三季 - 10V2 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -7615,14 +7615,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689377-689364-689363-689362-689361-689360-689358-689357-689356-689355`() {
kotlin.run {
val r =
- parse("[DBD-Raws][入间同学入魔了! 第二季/Mairimashita! Iruma-kun S2][01-21TV全集][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV](魔入りました!入間くん 第2シーズン)")
+ parse("[DBD-Raws][入間同學入魔了! 第二季/Mairimashita! Iruma-kun S2][01-21TV全集][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV](魔入りました!入間くん 第2シーズン)")
assertEquals("01..21", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("OVA I''s Pure.2005.DVD720P.日语中字")
+ val r = parse("OVA I''s Pure.2005.DVD720P.日語中字")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7630,7 +7630,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[千夏字幕组&喵萌奶茶屋&LoliHouse] 超超超超超喜歡你的100個女朋友 / Hyakkano - 15 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[千夏字幕組&喵萌奶茶屋&LoliHouse] 超超超超超喜歡你的100個女朋友 / Hyakkano - 15 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7659,7 +7659,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GalaxyRailroad-888] 游戏王GO RUSH!! Yu-Gi-Oh! GO RUSH !! 144 720P [GB_简中]")
+ val r = parse("[GalaxyRailroad-888] 遊戲王GO RUSH!! Yu-Gi-Oh! GO RUSH !! 144 720P [GB_簡中]")
assertEquals("144..144", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7673,7 +7673,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[我的幸福婚姻 2期 / Watashi no Shiawase na Kekkon S2][06][1080p][简日双语]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[我的幸福婚姻 2期 / Watashi no Shiawase na Kekkon S2][06][1080p][簡日雙語]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7692,14 +7692,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689354-689353-689351-689350-689349-689348-689347-689346-689345-689344`() {
kotlin.run {
val r =
- parse("[Billion Meta Lab] 昙花一现的百合 Momentary Lily [05][1080P][HEVC 10bit][简繁日内封][检索:刹那之花]")
+ parse("[Billion Meta Lab] 曇花一現的百合 Momentary Lily [05][1080P][HEVC 10bit][簡繁日內封][檢索:剎那之花]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[Billion Meta Lab] 昙花一现的百合 Momentary Lily [05][1080P][简日内嵌][检索:刹那之花]")
+ val r = parse("[Billion Meta Lab] 曇花一現的百合 Momentary Lily [05][1080P][簡日內嵌][檢索:剎那之花]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7715,7 +7715,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [18] [1080p] [繁日内嵌] [JaVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [18] [1080p] [繁日內嵌] [JaVer] [2025年1月番]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7723,7 +7723,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [18] [1080p] [简日内嵌] [JaVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [18] [1080p] [簡日內嵌] [JaVer] [2025年1月番]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7739,7 +7739,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户手抄部] 红战士在异世界成了冒险者 / Sentai Red Isekai de Boukensha ni Naru [05] [1080p] [繁日内嵌] [2025年1月番]")
+ parse("[獵戶手抄部] 紅戰士在異世界成了冒險者 / Sentai Red Isekai de Boukensha ni Naru [05] [1080p] [繁日內嵌] [2025年1月番]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7747,7 +7747,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户手抄部] 战队红战士在异世界当冒险者 / Sentai Red Isekai de Boukensha ni Naru [05] [1080p] [简日内嵌] [2025年1月番]")
+ parse("[獵戶手抄部] 戰隊紅戰士在異世界當冒險者 / Sentai Red Isekai de Boukensha ni Naru [05] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7755,7 +7755,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户压制部] 香格里拉·开拓异境~粪作猎手挑战神作 第二季 / Shangri-La Frontier S2 [43] [1080p] [繁日内嵌] [2024年10月番]")
+ parse("[獵戶壓制部] 香格里拉·開拓異境~糞作獵手挑戰神作 第二季 / Shangri-La Frontier S2 [43] [1080p] [繁日內嵌] [2024年10月番]")
assertEquals("43..43", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7763,7 +7763,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[猎户压制部] 香格里拉·开拓异境~粪作猎手挑战神作 第二季 / Shangri-La Frontier S2 [43] [1080p] [简日内嵌] [2024年10月番]")
+ parse("[獵戶壓制部] 香格里拉·開拓異境~糞作獵手挑戰神作 第二季 / Shangri-La Frontier S2 [43] [1080p] [簡日內嵌] [2024年10月番]")
assertEquals("43..43", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7775,7 +7775,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689343-689342-689341-689340-689339-689338-689337-689336-689335-689334`() {
kotlin.run {
val r =
- parse("[LoliHouse] 魔法使的约定 / Mahoutsukai no Yakusoku - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 魔法使的約定 / Mahoutsukai no Yakusoku - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7783,7 +7783,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 虽然我是注定没落的贵族,闲来无事只好来深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 雖然我是註定沒落的貴族,閒來無事只好來深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7799,7 +7799,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[漫猫字幕社&猫恋汉化组][1月新番][药屋少女的呢喃][Kusuriya no Hitorigoto][29][1080P][MP4][GB&JP][简日双语]")
+ parse("[漫貓字幕社&貓戀漢化組][1月新番][藥屋少女的呢喃][Kusuriya no Hitorigoto][29][1080P][MP4][GB&JP][簡日雙語]")
assertEquals("29..29", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7834,14 +7834,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[梦蓝字幕组]Crayonshinchan 蜡笔小新[1270][2025.02.08][AVC][1080P][GB_JP][MP4]")
+ val r = parse("[夢藍字幕組]Crayonshinchan 蠟筆小新[1270][2025.02.08][AVC][1080P][GB_JP][MP4]")
assertEquals("1270..1270", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[梦蓝字幕组]Crayonshinchan 蜡笔小新[1269][2025.02.01][AVC][1080P][GB_JP][MP4]")
+ val r = parse("[夢藍字幕組]Crayonshinchan 蠟筆小新[1269][2025.02.01][AVC][1080P][GB_JP][MP4]")
assertEquals("1269..1269", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7852,7 +7852,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689333-689332-689331-689330-689329-689325-689324-689323-689322-689321`() {
kotlin.run {
- val r = parse("[梦蓝字幕组]New Doraemon 哆啦A梦新番[848][2025.02.01][AVC][1080P][GB_JP][MP4]")
+ val r = parse("[夢藍字幕組]New Doraemon 哆啦A夢新番[848][2025.02.01][AVC][1080P][GB_JP][MP4]")
assertEquals("848..848", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7860,7 +7860,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 中年男的异世界网购生活 / Around 40 Otoko no Isekai Tsuuhan - 04 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 中年男的異世界網購生活 / Around 40 Otoko no Isekai Tsuuhan - 04 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7868,14 +7868,14 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 平凡上班族到异世界当上了四天王的故事 / Sararyman ga Isekai ni Ittara Shitennou ni Natta Hanashi - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 平凡上班族到異世界當上了四天王的故事 / Sararyman ga Isekai ni Ittara Shitennou ni Natta Hanashi - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[萌樱字幕组] 药屋少女的呢喃 [28][1080p][简繁日内封]")
+ val r = parse("[萌櫻字幕組] 藥屋少女的呢喃 [28][1080p][簡繁日內封]")
assertEquals("28..28", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7883,7 +7883,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[夜莺家族][樱桃小丸子第二期(Chibi Maruko-chan II)][1466]富子想赢躲避球比赛&小丸子擅长安慰他人[2025.02.09][GB_JP][1080P][MP4]")
+ parse("[夜鶯家族][櫻桃小丸子第二期(Chibi Maruko-chan II)][1466]富子想贏躲避球比賽&小丸子擅長安慰他人[2025.02.09][GB_JP][1080P][MP4]")
assertEquals("1466..1466", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7891,7 +7891,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&VCB-Studio] 恋爱FLOPS / LOVE FLOPS / Renai Flops / 恋愛フロップス 10-bit 1080p HEVC BDRip [Fin]")
+ parse("[喵萌奶茶屋&VCB-Studio] 戀愛FLOPS / LOVE FLOPS / Renai Flops / 戀愛フロップス 10-bit 1080p HEVC BDRip [Fin]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7899,7 +7899,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 最弱技能《果实大师》 ~关于能无限食用技能果实(吃了就会死)这件事~ / Kinomi Master - 07 [WebRip 1080p HEVC-10bit AAC][无字幕]")
+ parse("[LoliHouse] 最弱技能《果實大師》 ~關於能無限食用技能果實(喫了就會死)這件事~ / Kinomi Master - 07 [WebRip 1080p HEVC-10bit AAC][無字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7907,7 +7907,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[LoliHouse] 结缘甘神神社 / Amagami-san Chi no Enmusubi - 18 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 結緣甘神神社 / Amagami-san Chi no Enmusubi - 18 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7915,7 +7915,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[新沸羊羊制作] S级怪兽《贝希摩斯》被误认成小猫,成为精灵女孩的骑士(宠物)一起生活 - 07 [AMZN WebRip AI2160p HEVC-10bit E-AC-3][官方简繁内封字幕]")
+ parse("[新沸羊羊製作] S級怪獸《貝希摩斯》被誤認成小貓,成爲精靈女孩的騎士(寵物)一起生活 - 07 [AMZN WebRip AI2160p HEVC-10bit E-AC-3][官方簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -7923,7 +7923,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[搬運][ANi] Hana wa Saku Shura no Gotoku / 群花綻放、彷如修羅 - 06 [1080P][Baha][WEB-DL][AAC AVC][CHT][MP4]")
+ parse("[搬運][ANi] Hana wa Saku Shura no Gotoku / 羣花綻放、彷如修羅 - 06 [1080P][Baha][WEB-DL][AAC AVC][CHT][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
diff --git "a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\345\211\247\345\234\272\347\211\210 \347\264\253\347\275\227\345\205\260\346\260\270\346\201\222\350\212\261\345\233\255.kt" "b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\345\211\247\345\234\272\347\211\210 \347\264\253\347\275\227\345\205\260\346\260\270\346\201\222\350\212\261\345\233\255.kt"
index 32c74933c..fa53e52e5 100644
--- "a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\345\211\247\345\234\272\347\211\210 \347\264\253\347\275\227\345\205\260\346\260\270\346\201\222\350\212\261\345\233\255.kt"
+++ "b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\345\211\247\345\234\272\347\211\210 \347\264\253\347\275\227\345\205\260\346\260\270\346\201\222\350\212\261\345\233\255.kt"
@@ -26,28 +26,28 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
public fun `651397-615844-588811-588810-587366-587364-585468-583084-582838-582836`() {
kotlin.run {
val r =
- parse("[VCB-Studio] 剧场版 紫罗兰永恒花园 / Gekijouban Violet Evergarden 10-bit 2160p/1080p HEVC BDRip [MOVIE]")
+ parse("[VCB-Studio] 劇場版 紫羅蘭永恆花園 / Gekijouban Violet Evergarden 10-bit 2160p/1080p HEVC BDRip [MOVIE]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]剧场版 紫罗兰永恒花园 Violet Evergarden the Movie [简体双语][4K SDR]招募时轴翻译")
+ val r = parse("[雲光字幕組]劇場版 紫羅蘭永恆花園 Violet Evergarden the Movie [簡體雙語][4K SDR]招募時軸翻譯")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【剧场版紫罗兰永恒花园 Violet Evergarden The Movie】【BDrip】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【劇場版紫羅蘭永恆花園 Violet Evergarden The Movie】【BDrip】【GB_MP4】【1280X720】")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【剧场版紫罗兰永恒花园 Violet Evergarden The Movie】【BDrip】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【劇場版紫羅蘭永恆花園 Violet Evergarden The Movie】【BDrip】【GB_MP4】【1920X1080】")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -55,7 +55,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
}
kotlin.run {
val r =
- parse("【幻樱字幕组】【剧场版】【紫罗兰永恒花园外传:永远与自动手记人偶 Violet Evergarden Eien to Jidou Shuki Ningyou】【BDrip】【GB_MP4】【1920X1080】")
+ parse("【幻櫻字幕組】【劇場版】【紫羅蘭永恆花園外傳:永遠與自動手記人偶 Violet Evergarden Eien to Jidou Shuki Ningyou】【BDrip】【GB_MP4】【1920X1080】")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -63,7 +63,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
}
kotlin.run {
val r =
- parse("【幻樱字幕组】【剧场版】【紫罗兰永恒花园外传:永远与自动手记人偶 Violet Evergarden Eien to Jidou Shuki Ningyou】【BDrip】【GB_MP4】【1280X720】")
+ parse("【幻櫻字幕組】【劇場版】【紫羅蘭永恆花園外傳:永遠與自動手記人偶 Violet Evergarden Eien to Jidou Shuki Ningyou】【BDrip】【GB_MP4】【1280X720】")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -71,7 +71,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
}
kotlin.run {
val r =
- parse("[.subbers project] 剧场版 紫罗兰永恒花园 / 劇場版 ヴァイオレット・エヴァーガーデン / Violet Evergarden the Movie [BDRip][2K SDR][简繁日字幕内封][rev2]")
+ parse("[.subbers project] 劇場版 紫羅蘭永恆花園 / 劇場版 ヴァイオレット・エヴァーガーデン / Violet Evergarden the Movie [BDRip][2K SDR][簡繁日字幕內封][rev2]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -79,7 +79,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
}
kotlin.run {
val r =
- parse("[.subbers project] 剧场版 紫罗兰永恒花园 / 劇場版 ヴァイオレット・エヴァーガーデン / Violet Evergarden the Movie [BDRip][4K HDR+2K SDR][简繁日字幕内封](附BD及剧场特典扫图、相关音乐、小说翻译等)")
+ parse("[.subbers project] 劇場版 紫羅蘭永恆花園 / 劇場版 ヴァイオレット・エヴァーガーデン / Violet Evergarden the Movie [BDRip][4K HDR+2K SDR][簡繁日字幕內封](附BD及劇場特典掃圖、相關音樂、小說翻譯等)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -87,7 +87,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
}
kotlin.run {
val r =
- parse("【千夏字幕组】【剧场版 紫罗兰永恒花园/薇尔莉特·伊芙嘉登_Violet Evergarden the Movie】[剧场版][BDRip_Full HD_HEVC][简繁内封]")
+ parse("【千夏字幕組】【劇場版 紫羅蘭永恆花園/薇爾莉特·伊芙嘉登_Violet Evergarden the Movie】[劇場版][BDRip_Full HD_HEVC][簡繁內封]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -95,7 +95,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
}
kotlin.run {
val r =
- parse("【千夏字幕组】【剧场版 紫罗兰永恒花园/薇尔莉特·伊芙嘉登_Violet Evergarden the Movie】[剧场版][BDRip_Full HD_AVC][简体]")
+ parse("【千夏字幕組】【劇場版 紫羅蘭永恆花園/薇爾莉特·伊芙嘉登_Violet Evergarden the Movie】[劇場版][BDRip_Full HD_AVC][簡體]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -107,7 +107,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
public fun `582144-582130-582129-581912-571322-571317-549455-537654-537653-537305`() {
kotlin.run {
val r =
- parse("[DBD-Raws][剧场版 紫罗兰永恒花园/Violet Evergarden The Movie/劇場版 ヴァイオレット・エヴァーガーデ][1080P][BDRip][HEVC-10bit][FLAC][MKV]")
+ parse("[DBD-Raws][劇場版 紫羅蘭永恆花園/Violet Evergarden The Movie/劇場版 ヴァイオレット・エヴァーガーデ][1080P][BDRip][HEVC-10bit][FLAC][MKV]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -115,14 +115,14 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
}
kotlin.run {
val r =
- parse("[DBD-Raws][4K_HDR][剧场版 紫罗兰永恒花园/Violet Evergarden The Movie/劇場版 ヴァイオレット・エヴァーガーデ][2160P][BDRip][HEVC-10bit][FLAC][MKV]")
+ parse("[DBD-Raws][4K_HDR][劇場版 紫羅蘭永恆花園/Violet Evergarden The Movie/劇場版 ヴァイオレット・エヴァーガーデ][2160P][BDRip][HEVC-10bit][FLAC][MKV]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组】剧场版 紫罗兰永恒花园[Violet Evergarden the Movie] [1080P][GB][BDrip]")
+ val r = parse("【幻之字幕組】劇場版 紫羅蘭永恆花園[Violet Evergarden the Movie] [1080P][GB][BDrip]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -130,7 +130,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
}
kotlin.run {
val r =
- parse("[.subbers project] 剧场版 紫罗兰永恒花园 / 劇場版 ヴァイオレット・エヴァーガーデン / Violet Evergarden the Movie [BDRip][FullHD][简体中文字幕内嵌]")
+ parse("[.subbers project] 劇場版 紫羅蘭永恆花園 / 劇場版 ヴァイオレット・エヴァーガーデン / Violet Evergarden the Movie [BDRip][FullHD][簡體中文字幕內嵌]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -138,7 +138,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
}
kotlin.run {
val r =
- parse("[森之屋动画组][WEBRip][剧场版 紫罗兰永恒花园 / 劇場版ヴァイオレット・エヴァーガーデン / MOVIE Violet Evergarden][1920x804][x.264 AAC MP4][俄语音轨][内嵌简中]")
+ parse("[森之屋動畫組][WEBRip][劇場版 紫羅蘭永恆花園 / 劇場版ヴァイオレット・エヴァーガーデン / MOVIE Violet Evergarden][1920x804][x.264 AAC MP4][俄語音軌][內嵌簡中]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -146,7 +146,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
}
kotlin.run {
val r =
- parse("[森之屋动画组][WEBRip][剧场版 紫罗兰永恒花园 / 劇場版ヴァイオレット・エヴァーガーデン / MOVIE Violet Evergarden][1920x804][x.264 AAC MP4][日语剧场录音音轨(先行版)][内嵌简中]")
+ parse("[森之屋動畫組][WEBRip][劇場版 紫羅蘭永恆花園 / 劇場版ヴァイオレット・エヴァーガーデン / MOVIE Violet Evergarden][1920x804][x.264 AAC MP4][日語劇場錄音音軌(先行版)][內嵌簡中]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -154,7 +154,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
}
kotlin.run {
val r =
- parse("【MCE汉化组】[剧场版 紫罗兰永恒花园 冒头影像 / Violet Evergarden 2020][Trial Version][简体][1080P][x264 AAC]")
+ parse("【MCE漢化組】[劇場版 紫羅蘭永恆花園 冒頭影像 / Violet Evergarden 2020][Trial Version][簡體][1080P][x264 AAC]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -162,7 +162,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
}
kotlin.run {
val r =
- parse("【千夏字幕组】【紫罗兰永恒花园·外传 —永远与自动手记人偶—_Violet Evergarden Side Story -Eternity and Auto Memory Doll-】[剧场版][BDRip_1080p_HEVC][简繁外挂]")
+ parse("【千夏字幕組】【紫羅蘭永恆花園·外傳 —永遠與自動手記人偶—_Violet Evergarden Side Story -Eternity and Auto Memory Doll-】[劇場版][BDRip_1080p_HEVC][簡繁外掛]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -170,7 +170,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
}
kotlin.run {
val r =
- parse("【千夏字幕组】【紫罗兰永恒花园·外传 —永远与自动手记人偶—_Violet Evergarden Side Story -Eternity and Auto Memory Doll-】[剧场版][BDRip_1080p_AVC][简体]")
+ parse("【千夏字幕組】【紫羅蘭永恆花園·外傳 —永遠與自動手記人偶—_Violet Evergarden Side Story -Eternity and Auto Memory Doll-】[劇場版][BDRip_1080p_AVC][簡體]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -178,7 +178,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
}
kotlin.run {
val r =
- parse("[Moozzi2] 劇場版 紫羅蘭永恒花園外傳:永遠與自動手記人偶 Violet Evergarden Eien to Jidou Shuki Ningyou (BD 1920x804 x264-10Bit 4Audio)")
+ parse("[Moozzi2] 劇場版 紫羅蘭永恆花園外傳:永遠與自動手記人偶 Violet Evergarden Eien to Jidou Shuki Ningyou (BD 1920x804 x264-10Bit 4Audio)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -190,7 +190,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
public fun `537233-537232`() {
kotlin.run {
val r =
- parse("【幻之字幕组】劇場版 紫羅蘭永恒花園外傳:永遠與自動手記人偶 Violet Evergarden Gaiden: Eien to Jidou Shuki Ningyou [1080P][雙語][CHT&JPN][BDrip][AVC AAC YUV420P8]")
+ parse("【幻之字幕組】劇場版 紫羅蘭永恆花園外傳:永遠與自動手記人偶 Violet Evergarden Gaiden: Eien to Jidou Shuki Ningyou [1080P][雙語][CHT&JPN][BDrip][AVC AAC YUV420P8]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -198,7 +198,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
}
kotlin.run {
val r =
- parse("【幻之字幕组】剧场版 紫罗兰永恒花园外传:永远与自动手记人偶 Violet Evergarden Gaiden: Eien to Jidou Shuki Ningyou [1080P][双语][CHS&JPN][BDrip][AVC AAC YUV420P8]")
+ parse("【幻之字幕組】劇場版 紫羅蘭永恆花園外傳:永遠與自動手記人偶 Violet Evergarden Gaiden: Eien to Jidou Shuki Ningyou [1080P][雙語][CHS&JPN][BDrip][AVC AAC YUV420P8]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
diff --git "a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\345\220\271\345\223\215\345\220\247_\344\270\212\344\275\216\351\237\263\345\217\267.kt" "b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\345\220\271\345\223\215\345\220\247_\344\270\212\344\275\216\351\237\263\345\217\267.kt"
index a96f9575e..08459d6ec 100644
--- "a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\345\220\271\345\223\215\345\220\247_\344\270\212\344\275\216\351\237\263\345\217\267.kt"
+++ "b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\345\220\271\345\223\215\345\220\247_\344\270\212\344\275\216\351\237\263\345\217\267.kt"
@@ -39,42 +39,42 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [07][WebRip][HEVC_AAC][简繁日内封][招募时轴]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [07][WebRip][HEVC_AAC][簡繁日內封][招募時軸]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [07][WebRip][HEVC_AAC][简日内嵌][招募时轴]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [07][WebRip][HEVC_AAC][簡日內嵌][招募時軸]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [07][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [07][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 吹响吧!上低音号 第三季/Hibike! Euphonium S3 第06话 GB 1080P MP4(字幕社招人内详)")
+ val r = parse("【極影字幕社】★4月新番 吹響吧!上低音號 第三季/Hibike! Euphonium S3 第06話 GB 1080P MP4(字幕社招人內詳)")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 吹响吧!上低音号 第三季/Hibike! Euphonium S3 第06话 GB 720P MP4(字幕社招人内详)")
+ val r = parse("【極影字幕社】★4月新番 吹響吧!上低音號 第三季/Hibike! Euphonium S3 第06話 GB 720P MP4(字幕社招人內詳)")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]吹响吧!上低音号 3 Hibike! Euphonium S3 [06][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]吹響吧!上低音號 3 Hibike! Euphonium S3 [06][簡體雙語][1080p]招募翻譯")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -82,7 +82,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳台地區) - 07 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳臺地區) - 07 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -90,7 +90,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3][06][1080P][AVC AAC][繁日双语][WebRip]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3][06][1080P][AVC AAC][繁日雙語][WebRip]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -102,7 +102,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `669962-669928-669927-669910-669909-669902-669901-669843-669842-669841`() {
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹响吧!上低音号 第三季 / Hibike! Euphonium 3][06][1080P][AVC AAC][简日双语][WebRip]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3][06][1080P][AVC AAC][簡日雙語][WebRip]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -123,7 +123,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[漫猫字幕社][4月新番][吹响吧!上低音号 第三季][Hibike! Euphonium S3][06][1080P][MP4][简日双语]")
+ val r = parse("[漫貓字幕社][4月新番][吹響吧!上低音號 第三季][Hibike! Euphonium S3][06][1080P][MP4][簡日雙語]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -144,7 +144,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[漫猫字幕社][4月新番][吹响吧!上低音号 第三季][Hibike! Euphonium S3][05][1080P][MP4][简日双语]")
+ val r = parse("[漫貓字幕社][4月新番][吹響吧!上低音號 第三季][Hibike! Euphonium S3][05][1080P][MP4][簡日雙語]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -158,14 +158,14 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 吹响吧!上低音号 3 / Hibike! Euphonium 3 [06][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 吹響吧!上低音號 3 / Hibike! Euphonium 3 [06][1080p][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 吹响吧!上低音号 3 / Hibike! Euphonium 3 [06][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 吹響吧!上低音號 3 / Hibike! Euphonium 3 [06][1080p][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -177,7 +177,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `669835-669834-669692-669691-669690-669685-669684-669433-669432-669431`() {
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 - 06 [WebRip 2160P HEVC AAC][简繁日内封 ASSx3]")
+ parse("[萌櫻字幕組&霜庭雲花Sub] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 06 [WebRip 2160P HEVC AAC][簡繁日內封 ASSx3]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -185,28 +185,28 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹响吧!上低音号 第三季 / Hibike! Euphonium 3 - 06 [WebRip 1080P HEVC AAC][简繁日内封 ASSx3]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 06 [WebRip 1080P HEVC AAC][簡繁日內封 ASSx3]")
assertEquals("03+06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [06][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [06][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [06][WebRip][HEVC_AAC][简日内嵌][招募时轴]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [06][WebRip][HEVC_AAC][簡日內嵌][招募時軸]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [06][WebRip][HEVC_AAC][简繁日内封][招募时轴]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [06][WebRip][HEVC_AAC][簡繁日內封][招募時軸]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -214,7 +214,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3][05][1080P][AVC AAC][繁日双语][WebRip]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3][05][1080P][AVC AAC][繁日雙語][WebRip]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -222,7 +222,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹响吧!上低音号 第三季 / Hibike! Euphonium 3][05][1080P][AVC AAC][简日双语][WebRip]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3][05][1080P][AVC AAC][簡日雙語][WebRip]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -230,7 +230,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 吹响吧!上低音号 3 / Hibike! Euphonium 3 - 05 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 吹響吧!上低音號 3 / Hibike! Euphonium 3 - 05 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -244,7 +244,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[千夏字幕组][吹响吧!上低音号 3_Hibike! Euphonium 3][第05话][1080p_AVC][简体]")
+ val r = parse("[千夏字幕組][吹響吧!上低音號 3_Hibike! Euphonium 3][第05話][1080p_AVC][簡體]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -256,28 +256,28 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `669404-669258-669239-669238-669188-669186-669165-669137-669135-668979`() {
kotlin.run {
val r =
- parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳台地區) - 06 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳臺地區) - 06 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]吹响吧!上低音号 3 Hibike! Euphonium S3 [05][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]吹響吧!上低音號 3 Hibike! Euphonium S3 [05][簡體雙語][1080p]招募翻譯")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 吹响吧!上低音号 第三季/Hibike! Euphonium S3 第05话 GB 1080P MP4(字幕社招人内详)")
+ val r = parse("【極影字幕社】★4月新番 吹響吧!上低音號 第三季/Hibike! Euphonium S3 第05話 GB 1080P MP4(字幕社招人內詳)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 吹响吧!上低音号 第三季/Hibike! Euphonium S3 第05话 GB 720P MP4(字幕社招人内详)")
+ val r = parse("【極影字幕社】★4月新番 吹響吧!上低音號 第三季/Hibike! Euphonium S3 第05話 GB 720P MP4(字幕社招人內詳)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -291,7 +291,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[漫猫字幕社][4月新番][吹响吧!上低音号 第三季][Hibike! Euphonium S3][05][1080P][MP4][简日双语]")
+ val r = parse("[漫貓字幕社][4月新番][吹響吧!上低音號 第三季][Hibike! Euphonium S3][05][1080P][MP4][簡日雙語]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -305,21 +305,21 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 吹响吧!上低音号 3 / Hibike! Euphonium 3 [05][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 吹響吧!上低音號 3 / Hibike! Euphonium 3 [05][1080p][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 吹响吧!上低音号 3 / Hibike! Euphonium 3 [05][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 吹響吧!上低音號 3 / Hibike! Euphonium 3 [05][1080p][簡繁內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [05][WebRip][HEVC_AAC][简繁日内封][招募时轴]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [05][WebRip][HEVC_AAC][簡繁日內封][招募時軸]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -330,21 +330,21 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668978-668971-668898-668897-668896-668891-668890-668882-668878-668743`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [05][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [05][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [05][WebRip][HEVC_AAC][简日内嵌][招募时轴]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [05][WebRip][HEVC_AAC][簡日內嵌][招募時軸]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[千夏字幕组][吹响吧!上低音号 3_Hibike! Euphonium 3][第04话][1080p_AVC][简体]")
+ val r = parse("[千夏字幕組][吹響吧!上低音號 3_Hibike! Euphonium 3][第04話][1080p_AVC][簡體]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -359,7 +359,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 吹响吧!上低音号 3 / Hibike! Euphonium 3 - 04 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 吹響吧!上低音號 3 / Hibike! Euphonium 3 - 04 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -380,7 +380,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]吹响吧!上低音号 3 Hibike! Euphonium S3 [04][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]吹響吧!上低音號 3 Hibike! Euphonium S3 [04][簡體雙語][1080p]招募翻譯")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -388,7 +388,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳台地區) - 05 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳臺地區) - 05 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -396,7 +396,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 - 04 [WebRip 2160P HEVC AAC][简繁日内封 ASSx3]")
+ parse("[萌櫻字幕組&霜庭雲花Sub] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 04 [WebRip 2160P HEVC AAC][簡繁日內封 ASSx3]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -408,21 +408,21 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `668742-668694-668693-668552-668550-668549-668548-668547-668465-668464`() {
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹响吧!上低音号 第三季 / Hibike! Euphonium 3 - 04 [WebRip 1080P HEVC AAC][简繁日内封 ASSx3]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 04 [WebRip 1080P HEVC AAC][簡繁日內封 ASSx3]")
assertEquals("03+04", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 吹响吧!上低音号 第三季/Hibike! Euphonium S3 第04话 GB 1080P MP4(字幕社招人内详)")
+ val r = parse("【極影字幕社】★4月新番 吹響吧!上低音號 第三季/Hibike! Euphonium S3 第04話 GB 1080P MP4(字幕社招人內詳)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 吹响吧!上低音号 第三季/Hibike! Euphonium S3 第04话 GB 720P MP4(字幕社招人内详)")
+ val r = parse("【極影字幕社】★4月新番 吹響吧!上低音號 第三季/Hibike! Euphonium S3 第04話 GB 720P MP4(字幕社招人內詳)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -436,7 +436,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 吹响吧!上低音号 3 / Hibike! Euphonium 3 [04][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 吹響吧!上低音號 3 / Hibike! Euphonium 3 [04][1080p][簡體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -450,28 +450,28 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[漫猫字幕社][4月新番][吹响吧!上低音号 第三季][Hibike! Euphonium S3][04][1080P][MP4][简日双语]")
+ val r = parse("[漫貓字幕社][4月新番][吹響吧!上低音號 第三季][Hibike! Euphonium S3][04][1080P][MP4][簡日雙語]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 吹响吧!上低音号 3 / Hibike! Euphonium 3 [04][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 吹響吧!上低音號 3 / Hibike! Euphonium 3 [04][1080p][簡繁內封]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [04][WebRip][HEVC_AAC][简繁日内封][招募时轴]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [04][WebRip][HEVC_AAC][簡繁日內封][招募時軸]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [04][WebRip][HEVC_AAC][简日内嵌][招募时轴]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [04][WebRip][HEVC_AAC][簡日內嵌][招募時軸]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -482,7 +482,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668463-668410-668409-668361-668337-668336-668334-668333-668332-668316`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [04][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [04][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -504,28 +504,28 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳台地區) - 04 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳臺地區) - 04 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 吹响吧!上低音号 第三季/Hibike! Euphonium S3 第03话 GB 1080P MP4(字幕社招人内详)")
+ val r = parse("【極影字幕社】★4月新番 吹響吧!上低音號 第三季/Hibike! Euphonium S3 第03話 GB 1080P MP4(字幕社招人內詳)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 吹响吧!上低音号 第三季/Hibike! Euphonium S3 第03话 GB 720P MP4(字幕社招人内详)")
+ val r = parse("【極影字幕社】★4月新番 吹響吧!上低音號 第三季/Hibike! Euphonium S3 第03話 GB 720P MP4(字幕社招人內詳)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[千夏字幕组][吹响吧!上低音号 3_Hibike! Euphonium 3][第03话][1080p_AVC][简体]")
+ val r = parse("[千夏字幕組][吹響吧!上低音號 3_Hibike! Euphonium 3][第03話][1080p_AVC][簡體]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -540,7 +540,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 吹响吧!上低音号 3 / Hibike! Euphonium 3 - 03 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 吹響吧!上低音號 3 / Hibike! Euphonium 3 - 03 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -548,7 +548,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 - 03 [WebRip 2160P HEVC AAC][简繁日内封 ASSx3]")
+ parse("[萌櫻字幕組&霜庭雲花Sub] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 03 [WebRip 2160P HEVC AAC][簡繁日內封 ASSx3]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -560,7 +560,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `668315-668309-668308-668262-668203-668202-668161-668159-668158-668151`() {
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹响吧!上低音号 第三季 / Hibike! Euphonium 3 - 03 [WebRip 1080P HEVC AAC][简繁日内封 ASSx3]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 03 [WebRip 1080P HEVC AAC][簡繁日內封 ASSx3]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -568,7 +568,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3][03][1080P][AVC AAC][繁日双语][WebRip]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3][03][1080P][AVC AAC][繁日雙語][WebRip]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -576,14 +576,14 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹响吧!上低音号 第三季 / Hibike! Euphonium 3][03][1080P][AVC AAC][简日双语][WebRip]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3][03][1080P][AVC AAC][簡日雙語][WebRip]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]吹响吧!上低音号 3 Hibike! Euphonium S3 [03][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]吹響吧!上低音號 3 Hibike! Euphonium S3 [03][簡體雙語][1080p]招募翻譯")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -611,14 +611,14 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 吹响吧!上低音号 3 / Hibike! Euphonium 3 [03][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 吹響吧!上低音號 3 / Hibike! Euphonium 3 [03][1080p][簡體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 吹响吧!上低音号 3 / Hibike! Euphonium 3 [03][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 吹響吧!上低音號 3 / Hibike! Euphonium 3 [03][1080p][簡繁內封]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -636,7 +636,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668150-668149-668148-668111-668110-667913-667912-667911-667884-667849`() {
kotlin.run {
- val r = parse("[漫猫字幕社][4月新番][吹响吧!上低音号 第三季][Hibike! Euphonium S3][03][1080P][MP4][简日双语]")
+ val r = parse("[漫貓字幕社][4月新番][吹響吧!上低音號 第三季][Hibike! Euphonium S3][03][1080P][MP4][簡日雙語]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -650,21 +650,21 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[漫猫字幕社][4月新番][吹响吧!上低音号 第三季][Hibike! Euphonium S3][02v2][1080P][MP4][简日双语]")
+ val r = parse("[漫貓字幕社][4月新番][吹響吧!上低音號 第三季][Hibike! Euphonium S3][02v2][1080P][MP4][簡日雙語]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 吹响吧!上低音号 第三季/Hibike! Euphonium S3 第02话 GB 1080P MP4(字幕社招人内详)")
+ val r = parse("【極影字幕社】★4月新番 吹響吧!上低音號 第三季/Hibike! Euphonium S3 第02話 GB 1080P MP4(字幕社招人內詳)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 吹响吧!上低音号 第三季/Hibike! Euphonium S3 第02话 GB 720P MP4(字幕社招人内详)")
+ val r = parse("【極影字幕社】★4月新番 吹響吧!上低音號 第三季/Hibike! Euphonium S3 第02話 GB 720P MP4(字幕社招人內詳)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -672,7 +672,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [03v2][WebRip][HEVC_AAC][简繁日内封][招募时轴]")
+ parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [03v2][WebRip][HEVC_AAC][簡繁日內封][招募時軸]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -680,7 +680,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [03v2][WebRip][HEVC_AAC][简日内嵌][招募时轴]")
+ parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [03v2][WebRip][HEVC_AAC][簡日內嵌][招募時軸]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -688,7 +688,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [03v2][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
+ parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [03v2][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -696,7 +696,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹响吧!上低音号 第三季 / Hibike! Euphonium 3 - 02 [WebRip 1080P HEVC AAC][简繁日内封 ASSx3]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 02 [WebRip 1080P HEVC AAC][簡繁日內封 ASSx3]")
assertEquals("03+02", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -704,7 +704,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 - 02 [WebRip 2160P HEVC AAC][简繁日内封 ASSx3]")
+ parse("[萌櫻字幕組&霜庭雲花Sub] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 02 [WebRip 2160P HEVC AAC][簡繁日內封 ASSx3]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -716,14 +716,14 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `667844-667840-667775-667745-667693-667610-667609-667608-667520-667517`() {
kotlin.run {
val r =
- parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳台地區) - 03 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳臺地區) - 03 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]吹响吧!上低音号 3 Hibike! Euphonium S3 [02][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]吹響吧!上低音號 3 Hibike! Euphonium S3 [02][簡體雙語][1080p]招募翻譯")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -731,14 +731,14 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹响吧!上低音号 第三季 / Hibike! Euphonium 3][02][1080P][AVC AAC][简日双语][WebRip]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3][02][1080P][AVC AAC][簡日雙語][WebRip]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[漫猫字幕社][4月新番][吹响吧!上低音号 第三季][Hibike! Euphonium S3][02][1080P][MP4][简日双语]")
+ val r = parse("[漫貓字幕社][4月新番][吹響吧!上低音號 第三季][Hibike! Euphonium S3][02][1080P][MP4][簡日雙語]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -753,7 +753,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 吹响吧!上低音号 3 / Hibike! Euphonium 3 - 02 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 吹響吧!上低音號 3 / Hibike! Euphonium 3 - 02 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -767,7 +767,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[千夏字幕组][吹响吧!上低音号 3_Hibike! Euphonium 3][第02话][1080p_AVC][简体]")
+ val r = parse("[千夏字幕組][吹響吧!上低音號 3_Hibike! Euphonium 3][第02話][1080p_AVC][簡體]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -781,7 +781,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 吹响吧!上低音号 3 / Hibike! Euphonium 3 [02][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 吹響吧!上低音號 3 / Hibike! Euphonium 3 [02][1080p][簡體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -792,7 +792,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `667516-667411-667410-667378-667377-667313-667312-667298-667297-667290`() {
kotlin.run {
- val r = parse("[桜都字幕组] 吹响吧!上低音号 3 / Hibike! Euphonium 3 [02][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 吹響吧!上低音號 3 / Hibike! Euphonium 3 [02][1080p][簡繁內封]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -820,7 +820,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[漫猫字幕社][4月新番][吹响吧!上低音号 第三季][Hibike! Euphonium S3][01v2][1080P][MP4][简日双语]")
+ val r = parse("[漫貓字幕社][4月新番][吹響吧!上低音號 第三季][Hibike! Euphonium S3][01v2][1080P][MP4][簡日雙語]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -834,28 +834,28 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[漫猫字幕社][4月新番][吹响吧!上低音号 第三季][Hibike! Euphonium S3][01][1080P][MP4][简日双语]")
+ val r = parse("[漫貓字幕社][4月新番][吹響吧!上低音號 第三季][Hibike! Euphonium S3][01][1080P][MP4][簡日雙語]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [02][WebRip][HEVC_AAC][简日内嵌][招募时轴]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [02][WebRip][HEVC_AAC][簡日內嵌][招募時軸]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [02][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [02][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 吹响吧!上低音号 第三季/Hibike! Euphonium S3 第01话 GB 1080P MP4(字幕社招人内详)")
+ val r = parse("【極影字幕社】★4月新番 吹響吧!上低音號 第三季/Hibike! Euphonium S3 第01話 GB 1080P MP4(字幕社招人內詳)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -866,14 +866,14 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `667289-667286-667228-667130-666843-666842-666841-666635-666634-666633`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 吹响吧!上低音号 第三季/Hibike! Euphonium S3 第01话 GB 720P MP4(字幕社招人内详)")
+ val r = parse("【極影字幕社】★4月新番 吹響吧!上低音號 第三季/Hibike! Euphonium S3 第01話 GB 720P MP4(字幕社招人內詳)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [02][WebRip][HEVC_AAC][简繁日内封][招募时轴]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [02][WebRip][HEVC_AAC][簡繁日內封][招募時軸]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -881,14 +881,14 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳台地區) - 02 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳臺地區) - 02 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]吹响吧!上低音号 3 Hibike! Euphonium S3 [01][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]吹響吧!上低音號 3 Hibike! Euphonium S3 [01][簡體雙語][1080p]招募翻譯")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -896,14 +896,14 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 吹响吧!上低音号 3 / Hibike! Euphonium 3 - 01 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 吹響吧!上低音號 3 / Hibike! Euphonium 3 - 01 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[千夏字幕组][吹响吧!上低音号 3_Hibike! Euphonium 3][第01话][1080p_AVC][简体]")
+ val r = parse("[千夏字幕組][吹響吧!上低音號 3_Hibike! Euphonium 3][第01話][1080p_AVC][簡體]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -924,14 +924,14 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 吹响吧!上低音号 3 / Hibike! Euphonium 3 [01][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 吹響吧!上低音號 3 / Hibike! Euphonium 3 [01][1080p][簡體內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 吹响吧!上低音号 3 / Hibike! Euphonium 3 [01][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 吹響吧!上低音號 3 / Hibike! Euphonium 3 [01][1080p][簡繁內封]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -943,7 +943,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `666601-666600-666599-666598-666567-666566-666420-666337-666150-666027`() {
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 01 [WebRip 2160P HEVC AAC][简繁日内封 ASSx2]【高压版】")
+ parse("[萌櫻字幕組&霜庭雲花Sub] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 01 [WebRip 2160P HEVC AAC][簡繁日內封 ASSx2]【高壓版】")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -951,7 +951,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 01 [WebRip 2160P HEVC AAC][简繁日内封 ASSx2]")
+ parse("[萌櫻字幕組&霜庭雲花Sub] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 01 [WebRip 2160P HEVC AAC][簡繁日內封 ASSx2]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -959,7 +959,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹响吧!上低音号 第三季 / Hibike! Euphonium 3 - 01 [WebRip 1080P HEVC AAC][简繁日内封 ASSx2]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 01 [WebRip 1080P HEVC AAC][簡繁日內封 ASSx2]")
assertEquals("03+01", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -967,7 +967,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹响吧!上低音号 第三季 / Hibike! Euphonium 3][01][1080P][AVC AAC][简日双语][WebRip]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3][01][1080P][AVC AAC][簡日雙語][WebRip]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -975,7 +975,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [01v2][WebRip][HEVC_AAC][简繁日内封][招募时轴]")
+ parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [01v2][WebRip][HEVC_AAC][簡繁日內封][招募時軸]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -983,7 +983,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [01v2][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
+ parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [01v2][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -991,7 +991,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [01v2][WebRip][HEVC_AAC][简日内嵌][招募时轴]")
+ parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [01v2][WebRip][HEVC_AAC][簡日內嵌][招募時軸]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -999,7 +999,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳台地區) - 01 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳臺地區) - 01 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1007,7 +1007,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [02][先行版][WebRip][HEVC_AAC][CHS_EN][招募时轴]")
+ parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [02][先行版][WebRip][HEVC_AAC][CHS_EN][招募時軸]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1015,7 +1015,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [01][先行版][WebRip][HEVC_AAC][CHS_EN][招募时轴]")
+ parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [01][先行版][WebRip][HEVC_AAC][CHS_EN][招募時軸]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1027,7 +1027,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `659668-651923-651922-651921-649884-648009-648008-647860-647859-597732`() {
kotlin.run {
val r =
- parse("[云光字幕组]特别篇 吹响吧!上低音号~合奏比赛~Hibike! Euphonium Special ~Episode of Ensemble Contest~ [简体双语][1080p]招募翻译")
+ parse("[雲光字幕組]特別篇 吹響吧!上低音號~合奏比賽~Hibike! Euphonium Special ~Episode of Ensemble Contest~ [簡體雙語][1080p]招募翻譯")
assertEquals("Special..Special", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1035,7 +1035,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 吹響吧!上低音號~合奏比賽篇~ / Hibike! Euphonium Ensemble Contest Hen [BDRip][AVC-8bit 1080p][繁日内嵌]")
+ parse("[❀撥雪尋春❀] 吹響吧!上低音號~合奏比賽篇~ / Hibike! Euphonium Ensemble Contest Hen [BDRip][AVC-8bit 1080p][繁日內嵌]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1043,7 +1043,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 吹响吧!上低音号~合奏比赛篇~ / Hibike! Euphonium Ensemble Contest Hen [BDRip][AVC-8bit 1080p][简日内嵌]")
+ parse("[❀撥雪尋春❀] 吹響吧!上低音號~合奏比賽篇~ / Hibike! Euphonium Ensemble Contest Hen [BDRip][AVC-8bit 1080p][簡日內嵌]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1051,7 +1051,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 吹响吧!上低音号~合奏比赛篇~ / Hibike! Euphonium Ensemble Contest Hen [BDRip][HEVC-10bit 1080p][简繁日内封]")
+ parse("[❀撥雪尋春❀] 吹響吧!上低音號~合奏比賽篇~ / Hibike! Euphonium Ensemble Contest Hen [BDRip][HEVC-10bit 1080p][簡繁日內封]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1067,7 +1067,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[千夏字幕組][特別篇 吹響吧!上低音號 ~合奏競賽~_Tokubetsu Hen Hibike! Euphonium: Ensemble Contest Hen][劇場版][BDRip_1080p_AVC][繁日双语][招募新人]")
+ parse("[千夏字幕組][特別篇 吹響吧!上低音號 ~合奏競賽~_Tokubetsu Hen Hibike! Euphonium: Ensemble Contest Hen][劇場版][BDRip_1080p_AVC][繁日雙語][招募新人]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1075,15 +1075,15 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[千夏字幕组][特别篇 吹响吧!上低音号 ~合奏竞赛~_Tokubetsu Hen Hibike! Euphonium: Ensemble Contest Hen][剧场版][BDRip_1080p_AVC][简日双语][招募新人]")
- assertEquals("特别篇..特别篇", r.episodeRange.toString())
+ parse("[千夏字幕組][特別篇 吹響吧!上低音號 ~合奏競賽~_Tokubetsu Hen Hibike! Euphonium: Ensemble Contest Hen][劇場版][BDRip_1080p_AVC][簡日雙語][招募新人]")
+ assertEquals("特別篇..特別篇", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 特別篇 吹響吧!上低音號 ~ 合奏比賽 ~ / Tokubetsu Hen Hibike! Euphonium ~ Ensemble Contest Hen ~ [BDRip v2][1080p][HEVC_FLAC][繁日內嵌]")
+ parse("[北宇治字幕組] 特別篇 吹響吧!上低音號 ~ 合奏比賽 ~ / Tokubetsu Hen Hibike! Euphonium ~ Ensemble Contest Hen ~ [BDRip v2][1080p][HEVC_FLAC][繁日內嵌]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1091,15 +1091,15 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 特别篇 吹响吧!上低音号 ~ 合奏比赛 ~ / Tokubetsu Hen Hibike! Euphonium ~ Ensemble Contest Hen ~ [BDRip v2][1080p][HEVC_FLAC][简日内嵌]")
- assertEquals("特别篇..特别篇", r.episodeRange.toString())
+ parse("[北宇治字幕組] 特別篇 吹響吧!上低音號 ~ 合奏比賽 ~ / Tokubetsu Hen Hibike! Euphonium ~ Ensemble Contest Hen ~ [BDRip v2][1080p][HEVC_FLAC][簡日內嵌]")
+ assertEquals("特別篇..特別篇", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
val r =
- parse("吹响吧!上低音号5周年纪念公演[EUPHO 5TH REGULAR CONCERT][BDRIP_1080p_x265_TrueHD_Atmos_TrueHD_2.0]")
+ parse("吹響吧!上低音號5週年紀念公演[EUPHO 5TH REGULAR CONCERT][BDRIP_1080p_x265_TrueHD_Atmos_TrueHD_2.0]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1118,7 +1118,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[千夏字幕组&VCB-Studio] Gekijouban Hibike! Euphonium Chikai no Finale / 剧场版 吹响吧!上低音号~誓言的终章~ 10-bit 1080p HEVC BDRip [MOVIE]")
+ parse("[千夏字幕組&VCB-Studio] Gekijouban Hibike! Euphonium Chikai no Finale / 劇場版 吹響吧!上低音號~誓言的終章~ 10-bit 1080p HEVC BDRip [MOVIE]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1126,7 +1126,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("吹响吧!上低音号 全两季+Movie Hibike! Euphonium S1+S2+SP+Moviex4 [BD 1920x1080 HEVC-10bit OPUS][简繁内封字幕]")
+ parse("吹響吧!上低音號 全兩季+Movie Hibike! Euphonium S1+S2+SP+Moviex4 [BD 1920x1080 HEVC-10bit OPUS][簡繁內封字幕]")
assertEquals("S1+S2+SP", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1134,7 +1134,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("【千夏字幕组】【剧场版 吹响吧!上低音号 ~誓言的终曲~_Gekijouban Hibike! Euphonium: Chikai no Finale】[剧场版_v2][BDRip_1080p_AVC][简体]")
+ parse("【千夏字幕組】【劇場版 吹響吧!上低音號 ~誓言的終曲~_Gekijouban Hibike! Euphonium: Chikai no Finale】[劇場版_v2][BDRip_1080p_AVC][簡體]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1150,7 +1150,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 剧场版 吹响吧!上低音号 ~誓言的终曲~ / Gekijouban Hibike! Euphonium: Chikai no Finale [BDRip 1080p HEVC-10bit FLAC][简繁外挂字幕](索引:誓言的终章)")
+ parse("[千夏字幕組&LoliHouse] 劇場版 吹響吧!上低音號 ~誓言的終曲~ / Gekijouban Hibike! Euphonium: Chikai no Finale [BDRip 1080p HEVC-10bit FLAC][簡繁外掛字幕](索引:誓言的終章)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1158,7 +1158,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[U3-Web] 電影版 吹響吧!上低音號~誓言的終章~ / 劇場版 響け!ユーフォニアム~誓いのフィナーレ~ [2019][Movie][繁體中文內嵌字幕][BIG5][GP WEB-DL 1080p AVC AAC(2.0+5.1) MP4] (剧场版 吹响!悠风号 ~誓言的终章~(誓言的終曲) / Gekijouban Hibike! Euphonium : Chikai no Finale / Sound! Euphonium, the Movie -Our Promise: A Brand New Day-)")
+ parse("[U3-Web] 電影版 吹響吧!上低音號~誓言的終章~ / 劇場版 響け!ユーフォニアム~誓いのフィナーレ~ [2019][Movie][繁體中文內嵌字幕][BIG5][GP WEB-DL 1080p AVC AAC(2.0+5.1) MP4] (劇場版 吹響!悠風號 ~誓言的終章~(誓言的終曲) / Gekijouban Hibike! Euphonium : Chikai no Finale / Sound! Euphonium, the Movie -Our Promise: A Brand New Day-)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1166,7 +1166,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[U3-Web] 電影版 吹響吧!上低音號~誓言的終章~ / 劇場版 響け!ユーフォニアム~誓いのフィナーレ~ [2019][Movie][繁體中文內封字幕][BIG5][1080p HEVC-10bit AAC AC-3(DD5.1) MKV] (剧场版 吹响!悠风号 ~誓言的终章~(誓言的終曲) / Gekijouban Hibike! Euphonium : Chikai no Finale / Sound! Euphonium, the Movie -Our Promise: A Brand New Day-) [WEB-DL --> WebRip]")
+ parse("[U3-Web] 電影版 吹響吧!上低音號~誓言的終章~ / 劇場版 響け!ユーフォニアム~誓いのフィナーレ~ [2019][Movie][繁體中文內封字幕][BIG5][1080p HEVC-10bit AAC AC-3(DD5.1) MKV] (劇場版 吹響!悠風號 ~誓言的終章~(誓言的終曲) / Gekijouban Hibike! Euphonium : Chikai no Finale / Sound! Euphonium, the Movie -Our Promise: A Brand New Day-) [WEB-DL --> WebRip]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1180,7 +1180,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★[吹响吧!上低音号 Hibike! Euphonium][BDrip][1080P][HEVC]")
+ val r = parse("【極影字幕社】★[吹響吧!上低音號 Hibike! Euphonium][BDrip][1080P][HEVC]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1200,7 +1200,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[U3-Project] 吹響吧!上低音號~莉茲與青鳥~ / Liz and the Blue Bird / Liz to Aoi Tori / リズと青い鳥 [台本付数量限定版][BDMV][1080p][MOVIE]【U3自購團招人 / 新增合購計畫 , 內詳】")
+ parse("[U3-Project] 吹響吧!上低音號~莉茲與青鳥~ / Liz and the Blue Bird / Liz to Aoi Tori / リズと青い鳥 [臺本付數量限定版][BDMV][1080p][MOVIE]【U3自購團招人 / 新增合購計畫 , 內詳】")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1208,7 +1208,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[VCB-Studio] Gekijouban Hibike! Euphonium: Todoketai Melody / 剧场版 吹响吧!上低音号~想要传达的旋律~ 10-bit 1080p HEVC BDRip [Movie Fin]")
+ parse("[VCB-Studio] Gekijouban Hibike! Euphonium: Todoketai Melody / 劇場版 吹響吧!上低音號~想要傳達的旋律~ 10-bit 1080p HEVC BDRip [Movie Fin]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1216,7 +1216,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[届恋字幕组] 剧场版 吹响吧!上低音号 ~想要传达的旋律~ / Gekijouban Hibike! Euphonium Todoketai Melody [BDRip 1920x1080 AVC-8bit AAC][繁体内嵌字幕]")
+ parse("[屆戀字幕組] 劇場版 吹響吧!上低音號 ~想要傳達的旋律~ / Gekijouban Hibike! Euphonium Todoketai Melody [BDRip 1920x1080 AVC-8bit AAC][繁體內嵌字幕]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1224,7 +1224,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[届恋字幕组] 剧场版 吹响吧!上低音号 ~想要传达的旋律~ / Gekijouban Hibike! Euphonium Todoketai Melody [BDRip 1920x1080 AVC-8bit AAC][简体内嵌字幕]")
+ parse("[屆戀字幕組] 劇場版 吹響吧!上低音號 ~想要傳達的旋律~ / Gekijouban Hibike! Euphonium Todoketai Melody [BDRip 1920x1080 AVC-8bit AAC][簡體內嵌字幕]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1240,21 +1240,21 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[Eupho-Fans] 劇場版 吹響吧!上低音號~想要傳達的旋律~ / 劇場版 響け!ユーフォニアム~届けたいメロディ~ / Hibike! Euphonium Movie: Todoketai Melody [BDRip x264 1920x1080 AAC DTS PGS MKV]")
+ parse("[Eupho-Fans] 劇場版 吹響吧!上低音號~想要傳達的旋律~ / 劇場版 響け!ユーフォニアム~屆けたいメロディ~ / Hibike! Euphonium Movie: Todoketai Melody [BDRip x264 1920x1080 AAC DTS PGS MKV]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★[吹响吧!上低音号二期 Hibike! Euphonium S2][BDrip][1080P][HEVC]")
+ val r = parse("【極影字幕社】★[吹響吧!上低音號二期 Hibike! Euphonium S2][BDrip][1080P][HEVC]")
assertEquals("S2", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[UHA-WINGS][吹响吧!上低音号 第2季/Hibike! Euphonium 2][BDSP][MKV 简日_繁日外挂]")
+ val r = parse("【悠哈璃羽字幕社】[UHA-WINGS][吹響吧!上低音號 第2季/Hibike! Euphonium 2][BDSP][MKV 簡日_繁日外掛]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1289,7 +1289,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[VCB-Studio] Hibike! Euphonium 2 / 吹响吧!上低音号 2 / 響け! ユーフォニアム 2 10-bit 1080p HEVC BDRip [Fin]")
+ parse("[VCB-Studio] Hibike! Euphonium 2 / 吹響吧!上低音號 2 / 響け! ユーフォニアム 2 10-bit 1080p HEVC BDRip [Fin]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1297,7 +1297,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[VCB-Studio] Hibike! Euphonium 2 / 吹响吧!上低音号 2 / 響け! ユーフォニアム 2 8-bit 1080p HEVC BDRip [MP4 Ver.]")
+ parse("[VCB-Studio] Hibike! Euphonium 2 / 吹響吧!上低音號 2 / 響け! ユーフォニアム 2 8-bit 1080p HEVC BDRip [MP4 Ver.]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1305,7 +1305,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[UHA-WINGS&ANK-Raws][吹响吧!上低音号 第二季][Hibike! Euphonium 02][01-13][MKV 简日_繁日双语外挂][BDrip 1920x1080 HEVC-YUV420P10 FLAC]")
+ parse("[UHA-WINGS&ANK-Raws][吹響吧!上低音號 第二季][Hibike! Euphonium 02][01-13][MKV 簡日_繁日雙語外掛][BDrip 1920x1080 HEVC-YUV420P10 FLAC]")
assertEquals("01..13", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1313,14 +1313,14 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[UHA-WINGS&ANK-Raws][吹响吧!上低音号 第二季][Hibike! Euphonium 2][01-13][MKV 简日_繁日双语外挂][BDrip 1920x1080 HEVC-10bit]")
+ parse("[UHA-WINGS&ANK-Raws][吹響吧!上低音號 第二季][Hibike! Euphonium 2][01-13][MKV 簡日_繁日雙語外掛][BDrip 1920x1080 HEVC-10bit]")
assertEquals("01..13", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【浩天个人发布】吹响吧!上低音号第二季 BD720P内嵌简体字幕")
+ val r = parse("【浩天個人發佈】吹響吧!上低音號第二季 BD720P內嵌簡體字幕")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1341,7 +1341,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠风社】吹响吧!上低音号 2 SP7 [简][1080P][MP4]")
+ val r = parse("【悠風社】吹響吧!上低音號 2 SP7 [簡][1080P][MP4]")
assertEquals("SP07..SP07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1353,28 +1353,28 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `461337-461023-458613-456299-454096-451163-451096-450972-450888-450887`() {
kotlin.run {
val r =
- parse("[UHA-WINGS&ANK-Raws][吹响吧!上低音号 第二季][Hibike! Euphonium 2][01-07][BDrip 1920x1080 HEVC-10bit][MKV 简日_繁日外挂]")
+ parse("[UHA-WINGS&ANK-Raws][吹響吧!上低音號 第二季][Hibike! Euphonium 2][01-07][BDrip 1920x1080 HEVC-10bit][MKV 簡日_繁日外掛]")
assertEquals("01..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠风社】吹响吧!上低音号 2 SP6 [简][1080P][MP4]")
+ val r = parse("【悠風社】吹響吧!上低音號 2 SP6 [簡][1080P][MP4]")
assertEquals("SP06..SP06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠风社】吹响吧!上低音号 2 SP5 [简][1080P][MP4]")
+ val r = parse("【悠風社】吹響吧!上低音號 2 SP5 [簡][1080P][MP4]")
assertEquals("SP05..SP05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠风社】吹响吧!上低音号 2 SP1~4 [简][720P][MP4]")
+ val r = parse("【悠風社】吹響吧!上低音號 2 SP1~4 [簡][720P][MP4]")
assertEquals("SP01..SP04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1382,7 +1382,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("【悠哈璃羽字幕社】[合集][吹响吧!上低音号 第2季/Hibike! Euphonium 2][1-13END][1280x720][简繁合集][GB&BIG5]")
+ parse("【悠哈璃羽字幕社】[合集][吹響吧!上低音號 第2季/Hibike! Euphonium 2][1-13END][1280x720][簡繁合集][GB&BIG5]")
assertEquals("01..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1411,14 +1411,14 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][13END][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][13END][1080P][BIG5][MP4]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][13END][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][13END][1080P][GB][MP4]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1429,7 +1429,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `450666-450664-450432-450427-450426-450425-450424-450376-450375-450085`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][13END][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][13END][720P][GB][MP4]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1450,49 +1450,49 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][10][720P][GB][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][10][720P][GB][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][10][720P][BIG5][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][10][720P][BIG5][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][11][720P][BIG5][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][11][720P][BIG5][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][11][720P][GB][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][11][720P][GB][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][12][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][12][1080P][BIG5][MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][12][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][12][1080P][GB][MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][12][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][12][720P][GB][MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1517,35 +1517,35 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][11][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][11][1080P][BIG5][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][11][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][11][1080P][GB][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][10][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][10][1080P][GB][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][10][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][10][1080P][BIG5][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][11][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][11][720P][GB][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1566,7 +1566,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][09][720P][BIG5][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][09][720P][BIG5][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1577,14 +1577,14 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `449439-449023-449019-448515-448514-448391-448384-448361-448360-448293`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][09][720P][GB][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][09][720P][GB][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][10][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][10][720P][GB][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1598,14 +1598,14 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][09][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][09][1080P][GB][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][09][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][09][1080P][BIG5][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1619,21 +1619,21 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][09][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][09][720P][GB][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][08][720P][BIG5][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][08][720P][BIG5][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][08][720P][GB][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][08][720P][GB][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1651,14 +1651,14 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `447983-447982-447895-447893-447792-447786-447525-447524-447413-447407`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][08][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][08][1080P][BIG5][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][08][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][08][1080P][GB][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1672,35 +1672,35 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][08][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][08][720P][GB][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][07][720P][BIG5][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][07][720P][BIG5][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][07][720P][GB][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][07][720P][GB][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][07][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][07][1080P][BIG5][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][07][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][07][1080P][GB][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1714,7 +1714,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][07][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][07][720P][GB][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1732,28 +1732,28 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][06][720P][BIG5][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][06][720P][BIG5][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][06][720P][GB][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][06][720P][GB][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][06][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][06][1080P][BIG5][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][06][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][06][1080P][GB][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1767,7 +1767,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][06][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][06][720P][GB][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1781,14 +1781,14 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][05][720P][BIG5][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][05][720P][BIG5][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][05][720P][GB][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][05][720P][GB][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1799,14 +1799,14 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `446464-446463-446443-446442-446286-446248-446173-446123-446122-445927`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][05][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][05][1080P][BIG5][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][05][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][05][1080P][GB][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1820,7 +1820,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][05][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][05][720P][GB][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1834,35 +1834,35 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][04][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][04][1080P][BIG5][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][04][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][04][1080P][GB][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][04][720P][BIG5][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][04][720P][BIG5][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][04][720P][GB][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][04][720P][GB][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][04][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][04][720P][GB][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1887,28 +1887,28 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][03][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][03][1080P][BIG5][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][03][720P][BIGB][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][03][720P][BIGB][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][03][720P][GB][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][03][720P][GB][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][03][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][03][1080P][GB][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1922,7 +1922,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][03][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][03][720P][GB][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1936,7 +1936,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][02][720P][GB][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][02][720P][GB][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1947,21 +1947,21 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `444791-444790-444764-444762-444585-444487-444238-444209-444155-444127`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][02][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][02][1080P][BIG5][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][02][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][02][1080P][GB][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][02][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][02][720P][GB][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1982,21 +1982,21 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][01][720P][GB][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][01][720P][GB][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][01][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][01][1080P][BIG5][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][01][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][01][1080P][GB][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2010,7 +2010,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][01][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][01][720P][GB][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2022,14 +2022,14 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `442933-442833-442728-442727-442306-434464-433693-425284-422536-419873`() {
kotlin.run {
val r =
- parse("[LowPower-Raws]吹响吧!上低音号~欢迎加入北宇治高中管乐团~ Hibike! Euphonium Kitauji Koukou Suisougaku Bu e Youkoso - Movie (BD 1080P x264 FLAC)")
+ parse("[LowPower-Raws]吹響吧!上低音號~歡迎加入北宇治高中管樂團~ Hibike! Euphonium Kitauji Koukou Suisougaku Bu e Youkoso - Movie (BD 1080P x264 FLAC)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】吹响吧!上低音号 剧场版 [繁体内嵌] [BDRip][MKV]")
+ val r = parse("【極影字幕社】吹響吧!上低音號 劇場版 [繁體內嵌] [BDRip][MKV]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2037,7 +2037,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[ReinForce] 劇場版 吹響吧!上低音號~歡迎加入北宇治高中管樂團~Gekijouban Hibike! Euphonium (BDRip 1920x1080 x264 FLAC) [字幕内附]")
+ parse("[ReinForce] 劇場版 吹響吧!上低音號~歡迎加入北宇治高中管樂團~Gekijouban Hibike! Euphonium (BDRip 1920x1080 x264 FLAC) [字幕內附]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2045,14 +2045,14 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[Ohys-Raws]劇場版 吹響吧!上低音號~歡迎加入北宇治高中管樂團~Gekijouban Hibike! Euphonium - Kitauji Koukou Suisougaku Bu e Youkoso (BD 1280x720 x264 AACx3) [字幕内附]")
+ parse("[Ohys-Raws]劇場版 吹響吧!上低音號~歡迎加入北宇治高中管樂團~Gekijouban Hibike! Euphonium - Kitauji Koukou Suisougaku Bu e Youkoso (BD 1280x720 x264 AACx3) [字幕內附]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】吹响吧!上低音号 剧场版 [简体内嵌] [BDRip][MKV]")
+ val r = parse("【極影字幕社】吹響吧!上低音號 劇場版 [簡體內嵌] [BDRip][MKV]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2068,28 +2068,28 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("【极影字幕社】吹响吧!上低音号-Hibike! Euphonium - Vol.1-[简体内嵌] [BDRip 1920x1080 x264 AC-3][MP4]")
+ parse("【極影字幕社】吹響吧!上低音號-Hibike! Euphonium - Vol.1-[簡體內嵌] [BDRip 1920x1080 x264 AC-3][MP4]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【浩天个人发布】吹响吧!上低音号 BD720P内嵌简体字幕")
+ val r = parse("【浩天個人發佈】吹響吧!上低音號 BD720P內嵌簡體字幕")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【F宅】吹响吧!上低音号 SP特典合集 01-07 简 1080P MP4")
+ val r = parse("【F宅】吹響吧!上低音號 SP特典合集 01-07 簡 1080P MP4")
assertEquals("01..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[异域-11番小队][吹响吧!上低音号 Hibike! Euphonium][01-14][BDRIP][1080P][X264_FLAC_AAC]")
+ val r = parse("[異域-11番小隊][吹響吧!上低音號 Hibike! Euphonium][01-14][BDRIP][1080P][X264_FLAC_AAC]")
assertEquals("01..14", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2100,7 +2100,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `419515-419510-419458-419401-419400-419155-418769-418264-401721-399548`() {
kotlin.run {
- val r = parse("【极影字幕社】★[吹响吧!上低音号Hibike! Euphonium ][番外篇][720P]BIG5")
+ val r = parse("【極影字幕社】★[吹響吧!上低音號Hibike! Euphonium ][番外篇][720P]BIG5")
assertEquals("番外篇..番外篇", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2114,21 +2114,21 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★[吹响吧!上低音号Hibike! Euphonium ][番外篇][720P]GB")
+ val r = parse("【極影字幕社】★[吹響吧!上低音號Hibike! Euphonium ][番外篇][720P]GB")
assertEquals("番外篇..番外篇", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[VCB-Studio] Hibike! Euphonium/吹响吧!上低音号 10bit 1080p AVC BDRip [Fin]")
+ val r = parse("[VCB-Studio] Hibike! Euphonium/吹響吧!上低音號 10bit 1080p AVC BDRip [Fin]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[VCB-Studio] Hibike! Euphonium/吹响吧!上低音号 8bit 1080p BDRip [MP4 ver]")
+ val r = parse("[VCB-Studio] Hibike! Euphonium/吹響吧!上低音號 8bit 1080p BDRip [MP4 ver]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2136,28 +2136,28 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
}
kotlin.run {
val r =
- parse("[异域-11番小队][吹响!悠风号/吹响吧!上低音号 Hibike! Euphonium][01-14][BDRIP][720P][X264_10bit_AAC]")
+ parse("[異域-11番小隊][吹響!悠風號/吹響吧!上低音號 Hibike! Euphonium][01-14][BDRIP][720P][X264_10bit_AAC]")
assertEquals("01..14", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【F宅】吹响吧!上低音号 番外篇 OVA 中日双语 1080P MP4")
+ val r = parse("【F宅】吹響吧!上低音號 番外篇 OVA 中日雙語 1080P MP4")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【F宅】吹响吧!上低音号 番外篇 OVA 中日双语 720P MP4")
+ val r = parse("【F宅】吹響吧!上低音號 番外篇 OVA 中日雙語 720P MP4")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第01--13话][合集][720P]GB.MP4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第01--13話][合集][720P]GB.MP4")
assertEquals("01..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2175,14 +2175,14 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `399320-399295-399294-399292-398496-398494-398492-397689-397688-397683`() {
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第01--13話][合集][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第01--13話][合集][1080P][繁簡內封][附字體].MKV")
assertEquals("01..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第13話]END[1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第13話]END[1080P][繁簡內封][附字體].MKV")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2196,7 +2196,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第13话]END[720P][GB].mp4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第13話]END[720P][GB].mp4")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2210,21 +2210,21 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第12话][720P][GB].mp4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第12話][720P][GB].mp4")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第12話][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第12話][1080P][繁簡內封][附字體].MKV")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第11話][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第11話][1080P][繁簡內封][附字體].MKV")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2238,7 +2238,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第11话][720P][GB].mp4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第11話][720P][GB].mp4")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2249,7 +2249,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `396942-396941-396932-396164-396160-396156-395399-395398-395393-394612`() {
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第10話][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第10話][1080P][繁簡內封][附字體].MKV")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2263,7 +2263,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第10话][720P][GB].mp4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第10話][720P][GB].mp4")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2277,21 +2277,21 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第09話][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第09話][1080P][繁簡內封][附字體].MKV")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第09话][720P][GB].mp4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第09話][720P][GB].mp4")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第08話][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第08話][1080P][繁簡內封][附字體].MKV")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2305,14 +2305,14 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第08话][720P][GB].mp4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第08話][720P][GB].mp4")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第07話][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第07話][1080P][繁簡內封][附字體].MKV")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2330,7 +2330,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第07话][720P][GB].mp4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第07話][720P][GB].mp4")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2351,21 +2351,21 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第06话][720P][GB].mp4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第06話][720P][GB].mp4")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第06話][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第06話][1080P][繁簡內封][附字體].MKV")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第05話][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第05話][1080P][繁簡內封][附字體].MKV")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2379,14 +2379,14 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第05话][720P][GB].mp4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第05話][720P][GB].mp4")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第04話][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第04話][1080P][繁簡內封][附字體].MKV")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2404,7 +2404,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第04话][720P][GB].mp4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第04話][720P][GB].mp4")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2418,7 +2418,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第03話][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第03話][1080P][繁簡內封][附字體].MKV")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2432,7 +2432,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第03话][720P][GB].mp4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第03話][720P][GB].mp4")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2453,14 +2453,14 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第02话][720P][GB].mp4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第02話][720P][GB].mp4")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第02話][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第02話][1080P][繁簡內封][附字體].MKV")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2478,14 +2478,14 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【極影字幕社】★4月新番[吹響吧!上低音號Hibike! Euphonium ][第01話][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★4月新番[吹響吧!上低音號Hibike! Euphonium ][第01話][1080P][繁簡內封][附字體].MKV")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★4月新番[吹响吧!上低音号Hibike! Euphonium ][第01话][720P][GB].mp4")
+ val r = parse("【極影字幕社】★4月新番[吹響吧!上低音號Hibike! Euphonium ][第01話][720P][GB].mp4")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
diff --git "a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\346\200\252\344\272\272\347\232\204\346\262\231\346\213\211\347\242\227.kt" "b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\346\200\252\344\272\272\347\232\204\346\262\231\346\213\211\347\242\227.kt"
index 38f35b0f5..e7275a05f 100644
--- "a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\346\200\252\344\272\272\347\232\204\346\262\231\346\213\211\347\242\227.kt"
+++ "b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\346\200\252\344\272\272\347\232\204\346\262\231\346\213\211\347\242\227.kt"
@@ -34,14 +34,14 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 09 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 09 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][09][1080p][简体][招募翻译时轴]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][09][1080p][簡體][招募翻譯時軸]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -72,7 +72,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -86,7 +86,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][08][1080p][简体][招募翻译时轴]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][08][1080p][簡體][招募翻譯時軸]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -114,7 +114,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -128,7 +128,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][07][1080p][简体][招募翻译时轴]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][07][1080p][簡體][招募翻譯時軸]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -160,7 +160,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -174,7 +174,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][06][1080p][简体][招募翻译时轴]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][06][1080p][簡體][招募翻譯時軸]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -200,7 +200,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][05][1080p][简体][招募翻译时轴]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][05][1080p][簡體][招募翻譯時軸]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -208,7 +208,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 05 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 05 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -240,7 +240,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 04 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 04 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -254,7 +254,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][04][1080p][简体][招募翻译时轴]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][04][1080p][簡體][招募翻譯時軸]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -274,7 +274,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 03 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 03 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -288,7 +288,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][03][1080p][简体][招募翻译时轴]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][03][1080p][簡體][招募翻譯時軸]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -312,7 +312,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 02 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 02 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -326,7 +326,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][02][1080p][简体][招募翻译时轴]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][02][1080p][簡體][招募翻譯時軸]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -354,7 +354,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 01 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 01 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -368,7 +368,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][01][1080p][简体][招募翻译时轴]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][01][1080p][簡體][招募翻譯時軸]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
diff --git "a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\346\200\252\345\205\2758\345\217\267.kt" "b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\346\200\252\345\205\2758\345\217\267.kt"
index 81c268d1c..61b37917c 100644
--- "a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\346\200\252\345\205\2758\345\217\267.kt"
+++ "b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\346\200\252\345\205\2758\345\217\267.kt"
@@ -25,14 +25,14 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
@Test
public fun `670353-670352-670191-670150-670109-670034-670030-669747-669746-669385`() {
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [06] [1080p] [繁日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [06] [1080p] [繁日內嵌] [2024年4月番]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [06] [1080p] [简日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [06] [1080p] [簡日內嵌] [2024年4月番]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -60,7 +60,7 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[LoliHouse] 怪兽8号 / Kaijuu 8-gou - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ val r = parse("[LoliHouse] 怪獸8號 / Kaijuu 8-gou - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -74,21 +74,21 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [05] [1080p] [繁日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [05] [1080p] [繁日內嵌] [2024年4月番]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [05 [1080p] [简日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [05 [1080p] [簡日內嵌] [2024年4月番]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[LoliHouse] 怪兽8号 / Kaijuu 8-gou - 05 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ val r = parse("[LoliHouse] 怪獸8號 / Kaijuu 8-gou - 05 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -106,21 +106,21 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [04] [1080p] [繁日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [04] [1080p] [繁日內嵌] [2024年4月番]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [04] [1080p] [简日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [04] [1080p] [簡日內嵌] [2024年4月番]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[LoliHouse] 怪兽8号 / Kaijuu 8-gou - 04 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ val r = parse("[LoliHouse] 怪獸8號 / Kaijuu 8-gou - 04 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -141,21 +141,21 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [03] [1080p] [繁日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [03] [1080p] [繁日內嵌] [2024年4月番]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [03] [1080p] [简日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [03] [1080p] [簡日內嵌] [2024年4月番]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[LoliHouse] 怪兽8号 / Kaijuu 8-gou - 03 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ val r = parse("[LoliHouse] 怪獸8號 / Kaijuu 8-gou - 03 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -180,7 +180,7 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[星空字幕组][怪兽8号 / Kaijuu 8-gou][02][简日双语][1080P][WEBrip][MP4](急招校对、后期)")
+ val r = parse("[星空字幕組][怪獸8號 / Kaijuu 8-gou][02][簡日雙語][1080P][WEBrip][MP4](急招校對、後期)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -194,21 +194,21 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[星空字幕组][怪兽8号 / Kaijuu 8-gou][01][简日双语][1080P][WEBrip][MP4](急招校对、后期)")
+ val r = parse("[星空字幕組][怪獸8號 / Kaijuu 8-gou][01][簡日雙語][1080P][WEBrip][MP4](急招校對、後期)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [02] [1080p] [繁日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [02] [1080p] [繁日內嵌] [2024年4月番]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [02] [1080p] [简日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [02] [1080p] [簡日內嵌] [2024年4月番]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -222,7 +222,7 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[LoliHouse] 怪兽8号 / Kaijuu 8-gou - 02 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ val r = parse("[LoliHouse] 怪獸8號 / Kaijuu 8-gou - 02 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -236,7 +236,7 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [01v2] [1080p] [繁日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [01v2] [1080p] [繁日內嵌] [2024年4月番]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -247,21 +247,21 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
@Test
public fun `667524-667461-667370-667141-667129`() {
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [01v2] [1080p] [简日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [01v2] [1080p] [簡日內嵌] [2024年4月番]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[LoliHouse] 怪兽8号 / Kaijuu 8-gou - 01 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ val r = parse("[LoliHouse] 怪獸8號 / Kaijuu 8-gou - 01 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [01] [1080p] [简日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [01] [1080p] [簡日內嵌] [2024年4月番]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
diff --git "a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\346\234\252\346\235\245\346\227\245\350\256\260.kt" "b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\346\234\252\346\235\245\346\227\245\350\256\260.kt"
index 68d7d7752..c1c1efed9 100644
--- "a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\346\234\252\346\235\245\346\227\245\350\256\260.kt"
+++ "b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\346\234\252\346\235\245\346\227\245\350\256\260.kt"
@@ -26,7 +26,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
public fun `668596-655726-655723-655722-655383-646425-646424-646423-613473-567796`() {
kotlin.run {
val r =
- parse("[V2][DBD-Raws][未来日记/Mirai Nikki/未来日記/みらいにっき][01-26TV全集+OVA][1080P][BDRip][HEVC-10bit][简繁外挂][FLACx2][MKV]")
+ parse("[V2][DBD-Raws][未來日記/Mirai Nikki/未來日記/みらいにっき][01-26TV全集+OVA][1080P][BDRip][HEVC-10bit][簡繁外掛][FLACx2][MKV]")
assertEquals("01..26+OVA", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -34,7 +34,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[DBD製作組][未來日記/Mirai Nikki/未来日記/みらいにっき][01-26TV全集+OVA][日版/JPN.Ver][1080P][BDRip][AVC][繁體內嵌][FLAC][MKV]")
+ parse("[DBD製作組][未來日記/Mirai Nikki/未來日記/みらいにっき][01-26TV全集+OVA][日版/JPN.Ver][1080P][BDRip][AVC][繁體內嵌][FLAC][MKV]")
assertEquals("01..26+OVA", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -42,7 +42,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[DBD制作组][未来日记/Mirai Nikki/未来日記/みらいにっき][01-26TV全集+OVA][日版/JPN.Ver][1080P][BDRip][AVC][简体内嵌][FLAC][MKV]")
+ parse("[DBD製作組][未來日記/Mirai Nikki/未來日記/みらいにっき][01-26TV全集+OVA][日版/JPN.Ver][1080P][BDRip][AVC][簡體內嵌][FLAC][MKV]")
assertEquals("01..26+OVA", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -50,7 +50,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[DBD制作组][未来日记/Mirai Nikki/未来日記/みらいにっき][01-26TV全集+OVA][日版/JPN.Ver][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV]")
+ parse("[DBD製作組][未來日記/Mirai Nikki/未來日記/みらいにっき][01-26TV全集+OVA][日版/JPN.Ver][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV]")
assertEquals("01..26+OVA", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -58,7 +58,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[DBD-Raws][未来日记/Mirai Nikki/未来日記/みらいにっき][01-26TV全集+OVA][日版/JPN.Ver][1080P][BDRip][HEVC-10bit][简繁日双语外挂][FLAC][MKV]")
+ parse("[DBD-Raws][未來日記/Mirai Nikki/未來日記/みらいにっき][01-26TV全集+OVA][日版/JPN.Ver][1080P][BDRip][HEVC-10bit][簡繁日雙語外掛][FLAC][MKV]")
assertEquals("01..26+OVA", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -66,7 +66,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 未來日記 Redial / 未来日記 リダイヤル / Mirai Nikki Redial [OVA][BDRip][AVC-8bit 1080p][繁日内嵌]")
+ parse("[❀撥雪尋春❀] 未來日記 Redial / 未來日記 リダイヤル / Mirai Nikki Redial [OVA][BDRip][AVC-8bit 1080p][繁日內嵌]")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -74,7 +74,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 未来日记 Redial / 未来日記 リダイヤル / Mirai Nikki Redial [OVA][BDRip][HEVC-10bit 1080p][简繁日内封]")
+ parse("[❀撥雪尋春❀] 未來日記 Redial / 未來日記 リダイヤル / Mirai Nikki Redial [OVA][BDRip][HEVC-10bit 1080p][簡繁日內封]")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -82,14 +82,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 未来日记 Redial / 未来日記 リダイヤル / Mirai Nikki Redial [OVA][BDRip][AVC-8bit 1080p][简日内嵌]")
+ parse("[❀撥雪尋春❀] 未來日記 Redial / 未來日記 リダイヤル / Mirai Nikki Redial [OVA][BDRip][AVC-8bit 1080p][簡日內嵌]")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[VCB-Studio] 未来日记 / Mirai Nikki / 未来日記 10-bit 1080p HEVC BDRip [TV + OVA Fin]")
+ val r = parse("[VCB-Studio] 未來日記 / Mirai Nikki / 未來日記 10-bit 1080p HEVC BDRip [TV + OVA Fin]")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -97,7 +97,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[DBD-Raws&四魂字幕组][未来日记/Mirai Nikki/みらいにっき][01-26全集+OVA+特典][1080P][BDRip][HEVC-10bit][简繁外挂字幕][FLAC][MKV]")
+ parse("[DBD-Raws&四魂字幕組][未來日記/Mirai Nikki/みらいにっき][01-26全集+OVA+特典][1080P][BDRip][HEVC-10bit][簡繁外掛字幕][FLAC][MKV]")
assertEquals("01..26+OVA", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -108,21 +108,21 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `539339-532515-532499-531688-531687-531686-531685-447952-412839-360070`() {
kotlin.run {
- val r = parse("[Snow-Raws] 未来日记/Mirai Nikki 2011/未来日記 2011 (BD 1920x1080 HEVC-YUV420P10 FLAC)")
+ val r = parse("[Snow-Raws] 未來日記/Mirai Nikki 2011/未來日記 2011 (BD 1920x1080 HEVC-YUV420P10 FLAC)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("未来日记 Mirai Nikki 01 [BD 1920x1080 HEVC x265 10bit][简繁内封字幕]")
+ val r = parse("未來日記 Mirai Nikki 01 [BD 1920x1080 HEVC x265 10bit][簡繁內封字幕]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("未来日记 Mirai Nikki 1-26+OVA [BD 1920x1080 HEVC 10bit][简繁内封字幕][2011年]")
+ val r = parse("未來日記 Mirai Nikki 1-26+OVA [BD 1920x1080 HEVC 10bit][簡繁內封字幕][2011年]")
assertEquals("01..26+OVA", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -136,7 +136,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【未来日记Redial Mirai Nikki Redial】【OVA】【BDrip】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【未來日記Redial Mirai Nikki Redial】【OVA】【BDrip】【GB_MP4】【1920X1080】")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -150,7 +150,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【未来日记Redial Mirai Nikki Redial】【OVA】【BDrip】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【未來日記Redial Mirai Nikki Redial】【OVA】【BDrip】【GB_MP4】【1280X720】")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -164,7 +164,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[异域-11番小队][未来日记 Mirai Nikki][1-26+OVA][BDRIP][720P][X264-10bit_AACx2]")
+ val r = parse("[異域-11番小隊][未來日記 Mirai Nikki][1-26+OVA][BDRIP][720P][X264-10bit_AACx2]")
assertEquals("01..26+OVA", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -205,28 +205,28 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[Kuu]Mirai Nikki Redial v2 [480p][D15521BB] mkv 未来日记 OVA [内封西班牙文字幕]")
+ val r = parse("[Kuu]Mirai Nikki Redial v2 [480p][D15521BB] mkv 未來日記 OVA [內封西班牙文字幕]")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[GotWoot] Mirai Nikki Redial [DVD 576p][1F730058] mkv 未来日记 OVA [内封英文]")
+ val r = parse("[GotWoot] Mirai Nikki Redial [DVD 576p][1F730058] mkv 未來日記 OVA [內封英文]")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("ENG, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("Mirai nikki Redial - OVA mkv 未来日记")
+ val r = parse("Mirai nikki Redial - OVA mkv 未來日記")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[Perry] Mirai Nikki Redial OVA 未来日记 [内封西班牙文]")
+ val r = parse("[Perry] Mirai Nikki Redial OVA 未來日記 [內封西班牙文]")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -234,21 +234,21 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[kjnevicikal] Mirai nikki redial OVA 720x480 AVC AAC + eng subs ASS 未来日记 OVA [外挂英文]")
+ parse("[kjnevicikal] Mirai nikki redial OVA 720x480 AVC AAC + eng subs ASS 未來日記 OVA [外掛英文]")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("ENG, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[HiNA-Betsuni] Mirai Nikki OVA [480p DVD] [A558F62A].mkv 未来日记 OAD 第0集短篇[内封英文]")
+ val r = parse("[HiNA-Betsuni] Mirai Nikki OVA [480p DVD] [A558F62A].mkv 未來日記 OAD 第0集短篇[內封英文]")
assertEquals("OAD..OAD", r.episodeRange.toString())
assertEquals("ENG, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[Final8]Mirai Nikki - 01-26 (BD 10-bit 1920x1080 x264 FLAC) 未来日记 [内封英文]")
+ val r = parse("[Final8]Mirai Nikki - 01-26 (BD 10-bit 1920x1080 x264 FLAC) 未來日記 [內封英文]")
assertEquals("01..26", r.episodeRange.toString())
assertEquals("ENG, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -259,7 +259,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `318865-318864-318863-317082-316447-314349-314347-313906-306714-306036`() {
kotlin.run {
- val r = parse("Mirai Nikki (Future Diary) Dual-Audio 1080p 未来日记")
+ val r = parse("Mirai Nikki (Future Diary) Dual-Audio 1080p 未來日記")
assertEquals("null", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -267,14 +267,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
}
kotlin.run {
val r =
- parse("[RCOS] Mirai Nikki BDRip 1920x1080 x264 Hi10P FLAC By Arab Bluray.com 未来日记 [内封阿拉伯文]")
+ parse("[RCOS] Mirai Nikki BDRip 1920x1080 x264 Hi10P FLAC By Arab Bluray.com 未來日記 [內封阿拉伯文]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("Mirai Nikki 未来日记 [BDRip 1920x1080 x264 FLAC]")
+ val r = parse("Mirai Nikki 未來日記 [BDRip 1920x1080 x264 FLAC]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -311,21 +311,21 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【OVA】【未来日记Redial Mirai Nikki Redial】【DVDrip】【GB_480P】【RV10&MP4】")
+ val r = parse("【幻櫻字幕組】【OVA】【未來日記Redial Mirai Nikki Redial】【DVDrip】【GB_480P】【RV10&MP4】")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【OVA】【未来日记Redial Mirai Nikki Redial】【GB_MP4】【396P】【nico先行版】")
+ val r = parse("【幻櫻字幕組】【OVA】【未來日記Redial Mirai Nikki Redial】【GB_MP4】【396P】【nico先行版】")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【四魂制作组】[Mirai Nikki 未来日记][BDRIP][Vol.1-9][BIG5_GB][720P_MKV][全集](附特典)")
+ val r = parse("【四魂製作組】[Mirai Nikki 未來日記][BDRIP][Vol.1-9][BIG5_GB][720P_MKV][全集](附特典)")
assertEquals("01..09", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -336,21 +336,21 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `272715-270064-269329-267846-267844-267843-262990-262989-262988-262987`() {
kotlin.run {
- val r = parse("【四魂制作组】[Mirai Nikki 未来日记][BDRIP][Vol.1-9][BIG5_GB][1080P_MKV][全集](附特典)")
+ val r = parse("【四魂製作組】[Mirai Nikki 未來日記][BDRIP][Vol.1-9][BIG5_GB][1080P_MKV][全集](附特典)")
assertEquals("01..09", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[异域-11番小队][未来日记Mirai_nikki][BDRIP][1-26+SP][X264_AAC][720P][10bit] 更新第10话字幕")
+ val r = parse("[異域-11番小隊][未來日記Mirai_nikki][BDRIP][1-26+SP][X264_AAC][720P][10bit] 更新第10話字幕")
assertEquals("01..26+SP", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[异域-11番小队][未来日记Mirai_nikki][BDRIP][1-26+SP][X264_AAC][720P] 更新第10话字幕")
+ val r = parse("[異域-11番小隊][未來日記Mirai_nikki][BDRIP][1-26+SP][X264_AAC][720P] 更新第10話字幕")
assertEquals("01..26+SP", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -364,7 +364,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][01-26(全集)][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][01-26(全集)][848X480][簡體][RMVB]")
assertEquals("01..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -378,28 +378,28 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【四魂制作组】[Mirai Nikki 未来日记][BDRIP][Vol.7][BIG5_GB][1080P_MKV](附OST特典)")
+ val r = parse("【四魂製作組】[Mirai Nikki 未來日記][BDRIP][Vol.7][BIG5_GB][1080P_MKV](附OST特典)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【四魂制作组】[Mirai Nikki 未来日记][BDRIP][Vol.6][BIG5_GB][1080P_MKV](附OST特典)")
+ val r = parse("【四魂製作組】[Mirai Nikki 未來日記][BDRIP][Vol.6][BIG5_GB][1080P_MKV](附OST特典)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【四魂制作组】[Mirai Nikki 未来日记][BDRIP][Vol.5][BIG5_GB][1080P_MKV](附OST特典)")
+ val r = parse("【四魂製作組】[Mirai Nikki 未來日記][BDRIP][Vol.5][BIG5_GB][1080P_MKV](附OST特典)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【四魂制作组】[Mirai Nikki 未来日记][BDRIP][Vol.4][BIG5_GB][1080P_MKV](附OST特典)")
+ val r = parse("【四魂製作組】[Mirai Nikki 未來日記][BDRIP][Vol.4][BIG5_GB][1080P_MKV](附OST特典)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -410,70 +410,70 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `261984-260354-260353-259171-252806-252310-252305-252304-252303-251657`() {
kotlin.run {
- val r = parse("[ReinForce] 未来日记 Mirai Nikki - Vol.6 (BDRip 1920x1080 x264 FLAC)")
+ val r = parse("[ReinForce] 未來日記 Mirai Nikki - Vol.6 (BDRip 1920x1080 x264 FLAC)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][1-24][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][1-24][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("01..24", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][1-24][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][1-24][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("01..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【诸神字幕組】[未来日记][Mirai Nikki][1~26FIN][720p][中日双语字幕][MKV]")
+ val r = parse("【諸神字幕組】[未來日記][Mirai Nikki][1~26FIN][720p][中日雙語字幕][MKV]")
assertEquals("01..26", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai Nikki 未来日记][720P][MKV+ASS]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai Nikki 未來日記][720P][MKV+ASS]")
assertEquals("null", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][1~26FIN][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][1~26FIN][720p][簡繁內掛][MKV]")
assertEquals("01..26", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][26_END][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][26_END][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][26_END][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][26_END][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][26_END][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][26_END][720p][簡繁內掛][MKV]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][01-26][GB][MP4][全]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][01-26][GB][MP4][全]")
assertEquals("01..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -484,7 +484,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `251656-251526-251525-251508-251507-251362-251352-251329-251328-251294`() {
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][23-26][GB][MP4][连载完毕]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][23-26][GB][MP4][連載完畢]")
assertEquals("23..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -540,7 +540,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][01-26][完结合集][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][01-26][完結合集][1024x576][簡體][MP4]")
assertEquals("01..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -579,14 +579,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][26 END][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][26 END][GB][x264][848X480][mp4]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][26 END][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][26 END][GB][x264][1280X720][mp4]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -600,21 +600,21 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][26][完结][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][26][完結][1024x576][簡體][MP4]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][1-26][合集][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][1-26][合集][720P][繁簡外掛][MKV]")
assertEquals("01..26", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][01-26][完结合集][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][01-26][完結合集][1280x720][簡體][MKV]")
assertEquals("01..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -632,7 +632,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `251136-251120-251117-251098-251094-251093-251090-251084-251083-251081`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][25][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][25][720p][簡繁內掛][MKV]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -660,7 +660,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][26 END][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][26 END][848X480][簡體][RMVB]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -713,35 +713,35 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 26【GB_RV10】【848X480】【END】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 26【GB_RV10】【848X480】【END】")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][25][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][25][720P][繁簡外掛][MKV]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【四魂制作组】[Mirai Nikki 未来日记][BDRIP][Vol.3][BIG5_GB][1080P_MKV](附OST特典)")
+ val r = parse("【四魂製作組】[Mirai Nikki 未來日記][BDRIP][Vol.3][BIG5_GB][1080P_MKV](附OST特典)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【四魂制作组】[Mirai Nikki 未来日记][BDRIP][Vol.2][BIG5_GB][1080P_MKV](附OST特典)")
+ val r = parse("【四魂製作組】[Mirai Nikki 未來日記][BDRIP][Vol.2][BIG5_GB][1080P_MKV](附OST特典)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【四魂制作组】[Mirai Nikki 未来日记][BDRIP][Vol.1][BIG5_GB][1080P_MKV](附OST特典)")
+ val r = parse("【四魂製作組】[Mirai Nikki 未來日記][BDRIP][Vol.1][BIG5_GB][1080P_MKV](附OST特典)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -769,7 +769,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][25][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][25][GB][x264][848X480][mp4]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -780,35 +780,35 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `250497-250353-250344-250343-250302-250185-250181-250144-250143-250122`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][25][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][25][GB][x264][1280X720][mp4]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[Drei-Raws][未来日记_Mirai_Nikki][Vol.3-Vol.4][BDRip][1920x1080][AVC_Hi10p_FLACx2]")
+ val r = parse("[Drei-Raws][未來日記_Mirai_Nikki][Vol.3-Vol.4][BDRip][1920x1080][AVC_Hi10p_FLACx2]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][25][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][25][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][25][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][25][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][25][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][25][1280x720][簡體][MKV]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -822,7 +822,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][25][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][25][1024x576][簡體][MP4]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -843,7 +843,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][25][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][25][848X480][簡體][RMVB]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -882,7 +882,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 25【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 25【GB_RV10】【848X480】")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -903,7 +903,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][20-24][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][20-24][720P][繁簡外掛][MKV]")
assertEquals("20..24", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -917,7 +917,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][24][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][24][GB][x264][848X480][mp4]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -928,7 +928,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `249373-249369-249334-249316-249300-249249-249248-249247-249246-249245`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][24][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][24][GB][x264][1280X720][mp4]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -956,7 +956,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『24』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『24』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -970,14 +970,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][24][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][24][1024x576][簡體][MP4]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][24][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][24][1280x720][簡體][MKV]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1002,7 +1002,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `249237-249227-249223-249217-249216-249214-249213-249212-249209-248890`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][24][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][24][720p][簡繁內掛][MKV]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1030,21 +1030,21 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][24][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][24][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][24][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][24][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][24][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][24][848X480][簡體][RMVB]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1058,7 +1058,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 24【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 24【GB_RV10】【848X480】")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1083,21 +1083,21 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][21v2][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][21v2][GB][MP4]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][21-22][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][21-22][GB][MP4]")
assertEquals("21..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][22][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][22][1280x720][簡體][MKV]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1111,14 +1111,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][23][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][23][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][23][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][23][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1150,14 +1150,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `248480-248340-248338-248337-248322-248319-248318-248298-248262-248261`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][23][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][23][720p][簡繁內掛][MKV]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][23][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][23][1280x720][簡體][MKV]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1171,42 +1171,42 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][23][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][23][1024x576][簡體][MP4]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『23』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『23』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][23][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][23][GB][x264][1280X720][mp4]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][23][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][23][GB][x264][848X480][mp4]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 23【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 23【GB_RV10】【848X480】")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][23][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][23][848X480][簡體][RMVB]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1259,14 +1259,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[18][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[18][GB][1024x576][MP4]附115&招募中")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][22][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][22][720p][簡繁內掛][MKV]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1280,14 +1280,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][21-22][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][21-22][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("21..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][21-22][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][21-22][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("21..22", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1312,21 +1312,21 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][22][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][22][GB][x264][1280X720][mp4]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][22][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][22][GB][x264][848X480][mp4]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][22][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][22][1024x576][簡體][MP4]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1340,14 +1340,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『22』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『22』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][22][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][22][848X480][簡體][RMVB]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1400,7 +1400,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 22【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 22【GB_RV10】【848X480】")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1428,14 +1428,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][11-13][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][11-13][GB][MP4]")
assertEquals("11..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][21][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][21][720p][簡繁內掛][MKV]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1446,21 +1446,21 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `246526-246525-246524-246476-246472-246452-246451-246450-246421-246380`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][21][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][21][GB][x264][848X480][mp4]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][21][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][21][GB][x264][1280X720][mp4]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][20][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][20][GB][x264][1280X720][mp4]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1488,21 +1488,21 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][21][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][21][1024x576][簡體][MP4]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][21][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][21][1280x720][簡體][MKV]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『21』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『21』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1541,7 +1541,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][21][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][21][848X480][簡體][RMVB]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1562,14 +1562,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 21【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 21【GB_RV10】【848X480】")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("内有重要通报=w=【BBA字幕组】【未来日记】[17][GB][1024x576][MP4]附115&招募中")
+ val r = parse("內有重要通報=w=【BBA字幕組】【未來日記】[17][GB][1024x576][MP4]附115&招募中")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1594,7 +1594,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `244908-244874-244720-244598-244575-244564-244558-244557-244548-244547`() {
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][19-20][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][19-20][GB][MP4]")
assertEquals("19..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1608,14 +1608,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][20][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][20][1280x720][簡體][MKV]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[萌月字幕组][未来日记][Mirai Nikk][20][1280x720 AAC]")
+ val r = parse("[萌月字幕組][未來日記][Mirai Nikk][20][1280x720 AAC]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1643,7 +1643,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][20][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][20][1024x576][簡體][MP4]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1668,21 +1668,21 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `244502-244479-244478-244477-244476-244475-244474-244472-244467-244424`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][20][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][20][720p][簡繁內掛][MKV]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][20][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][20][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][20][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][20][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1703,7 +1703,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][20][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][20][848X480][簡體][RMVB]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1724,14 +1724,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 20【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 20【GB_RV10】【848X480】")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][19][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][19][720P][繁簡外掛][MKV]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1742,7 +1742,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `244151-244129-244038-243918-243917-243876-243727-243724-243642-243626`() {
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[16][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[16][GB][1024x576][MP4]附115&招募中")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1784,21 +1784,21 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][19][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][19][GB][x264][848X480][mp4]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][19][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][19][GB][x264][1280X720][mp4]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[萌月字幕组][未来日记][Mirai Nikk][19][1280x720 AAC]")
+ val r = parse("[萌月字幕組][未來日記][Mirai Nikk][19][1280x720 AAC]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1816,7 +1816,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `243617-243612-243611-243609-243598-243579-243575-243572-243568-243567`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][19][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][19][1280x720][簡體][MKV]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1830,7 +1830,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][19][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][19][1024x576][簡體][MP4]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1851,14 +1851,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][19][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][19][720p][簡繁內掛][MKV]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][19][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][19][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1879,7 +1879,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][19][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][19][848X480][簡體][RMVB]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1890,14 +1890,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `243566-243269-243217-243156-243147-243112-243098-242872-242801-242800`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 19【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 19【GB_RV10】【848X480】")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][15-18][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][15-18][GB][MP4]")
assertEquals("15..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1911,7 +1911,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][18][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][18][720P][繁簡外掛][MKV]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1932,7 +1932,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『18』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『18』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1946,14 +1946,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][18][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][18][GB][x264][1280X720][mp4]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][18][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][18][GB][x264][848X480][mp4]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1978,14 +1978,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][18][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][18][1024x576][簡體][MP4]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][18][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][18][1280x720][簡體][MKV]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2013,7 +2013,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][18][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][18][720p][簡繁內掛][MKV]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2038,7 +2038,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `242689-242688-242687-242686-242683-242675-242468-242348-242266-242235`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][18][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][18][848X480][簡體][RMVB]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2052,7 +2052,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][18][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][18][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2066,28 +2066,28 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][18][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][18][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 18【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 18【GB_RV10】【848X480】")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("内详+附特效【BBA字幕组】【未来日记】[15][GB][1024x576][MP4]附115&招募中")
+ val r = parse("內詳+附特效【BBA字幕組】【未來日記】[15][GB][1024x576][MP4]附115&招募中")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][17][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][17][720P][繁簡外掛][MKV]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2112,7 +2112,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `242233-242163-241996-241956-241955-241914-241874-241810-241763-241758`() {
kotlin.run {
- val r = parse("[Drei-Raws][未来日记_Mirai_Nikki][Vol.1-Vol.2][BDRip][1920x1080][AVC_Hi10p_FLACx2]")
+ val r = parse("[Drei-Raws][未來日記_Mirai_Nikki][Vol.1-Vol.2][BDRip][1920x1080][AVC_Hi10p_FLACx2]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2133,14 +2133,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][17][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][17][GB][x264][1280X720][mp4]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][17][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][17][GB][x264][848X480][mp4]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2154,7 +2154,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『17』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『17』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2168,7 +2168,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][17][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][17][1024x576][簡體][MP4]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2186,14 +2186,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `241753-241728-241727-241726-241704-241703-241698-241693-241689-241686`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][17][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][17][1280x720][簡體][MKV]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][17][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][17][720p][簡繁內掛][MKV]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2207,7 +2207,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][17][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][17][848X480][簡體][RMVB]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2228,7 +2228,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][17][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][17][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2242,7 +2242,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][17][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][17][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2267,7 +2267,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 17【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 17【GB_RV10】【848X480】")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2288,14 +2288,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][16][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][16][720P][繁簡外掛][MKV]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][15][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][15][720P][繁簡外掛][MKV]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2309,7 +2309,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『16』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『16』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2334,28 +2334,28 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `240868-240867-240819-240815-240814-240799-240795-240792-240776-240773`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][16][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][16][GB][x264][848X480][mp4]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][16][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][16][GB][x264][1280X720][mp4]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][16][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][16][720p][簡繁內掛][MKV]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][16][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][16][848X480][簡體][RMVB]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2369,7 +2369,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][16][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][16][1024x576][簡體][MP4]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2383,21 +2383,21 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][16][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][16][1280x720][簡體][MKV]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][16][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][16][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][16][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][16][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2443,7 +2443,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 16【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 16【GB_RV10】【848X480】")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2482,14 +2482,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `240436-240434-240216-240205-240202-240176-240155-240154-240086-240007`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][15][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][15][GB][x264][848X480][mp4]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][15][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][15][GB][x264][1280X720][mp4]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2517,35 +2517,35 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][15][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][15][720p][簡繁內掛][MKV]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][15][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][15][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][15][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][15][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『15』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『15』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 15【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 15【GB_RV10】【848X480】")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2556,7 +2556,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `239975-239974-239972-239960-239959-239938-239937-239769-239755-239529`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][15][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][15][1024x576][簡體][MP4]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2570,7 +2570,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][15][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][15][1280x720][簡體][MKV]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2591,7 +2591,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][15][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][15][848X480][簡體][RMVB]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2605,14 +2605,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("轉[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][13][720P][繁简外挂][MKV]")
+ val r = parse("轉[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][13][720P][繁簡外掛][MKV]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][14][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][14][720P][繁簡外掛][MKV]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2630,7 +2630,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `239471-239383-239299-239185-239169-239168-239108-239096-239095-239091`() {
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[14][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[14][GB][1024x576][MP4]附115&招募中")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2645,28 +2645,28 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][14][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][14][GB][MP4]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『14』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『14』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][14][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][14][GB][x264][1280X720][mp4]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][14][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][14][GB][x264][848X480][mp4]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2687,14 +2687,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][14][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][14][1280x720][簡體][MKV]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][14][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][14][1024x576][簡體][MP4]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2712,7 +2712,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][14][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][14][720p][簡繁內掛][MKV]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2740,14 +2740,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][14][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][14][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][14][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][14][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2768,7 +2768,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][14][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][14][848X480][簡體][RMVB]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2786,7 +2786,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 14【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 14【GB_RV10】【848X480】")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2814,7 +2814,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[13][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[13][GB][1024x576][MP4]附115&招募中")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2835,14 +2835,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][13][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][13][GB][x264][848X480][mp4]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][13][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][13][GB][x264][1280X720][mp4]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2853,7 +2853,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `238360-238344-238343-238342-238324-238292-238289-238283-238266-238238`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『13』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『13』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2888,7 +2888,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][13][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][13][1024x576][簡體][MP4]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2902,21 +2902,21 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][13][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][13][1280x720][簡體][MKV]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][13][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][13][720p][簡繁內掛][MKV]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][13][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][13][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2927,14 +2927,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `238235-238230-238228-238227-238226-238223-237726-237593-237591-237589`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][13][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][13][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][13][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][13][848X480][簡體][RMVB]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2962,7 +2962,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 13【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 13【GB_RV10】【848X480】")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2976,21 +2976,21 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][01-12][1024x576][简体合集][MP4][招募压制]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][01-12][1024x576][簡體合集][MP4][招募壓制]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][01-12][1024x576][繁體合集][RMVB][招募压制]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][01-12][1024x576][繁體合集][RMVB][招募壓制]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][01-12][1280x720][简体][MKV合集][招募压制]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][01-12][1280x720][簡體][MKV合集][招募壓制]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3001,7 +3001,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `237511-237401-237366-237282-237204-237203-237093-237089-237058-237054`() {
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[12][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[12][GB][1024x576][MP4]附115&招募中")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3022,21 +3022,21 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][12][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][12][720P][繁簡外掛][MKV]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][12][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][12][GB][x264][848X480][mp4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][12][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][12][GB][x264][1280X720][mp4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3050,21 +3050,21 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][11][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][11][720P][繁簡外掛][MKV]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][12][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][12][1024x576][簡體][MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][12][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][12][1280x720][簡體][MKV]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3103,7 +3103,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][12][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][12][720p][簡繁內掛][MKV]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3117,21 +3117,21 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][12][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][12][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 12【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 12【GB_RV10】【848X480】")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][12][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][12][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3156,7 +3156,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][12][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][12][848X480][簡體][RMVB]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3184,7 +3184,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[11][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[11][GB][1024x576][MP4]附115&招募中")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3205,14 +3205,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『11』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『11』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][11][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][11][GB][x264][1280X720][mp4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3223,7 +3223,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `236249-236248-236186-236181-236177-236176-236175-236169-236167-236162`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][11][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][11][GB][x264][848X480][mp4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3251,21 +3251,21 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][11][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][11][720p][簡繁內掛][MKV]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][11][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][11][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][11][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][11][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3286,7 +3286,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][11][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][11][1024x576][簡體][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3304,7 +3304,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][11][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][11][1280x720][簡體][MKV]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3332,7 +3332,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][11][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][11][848X480][簡體][RMVB]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3346,7 +3346,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 11【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 11【GB_RV10】【848X480】")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3360,7 +3360,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[10][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[10][GB][1024x576][MP4]附115&招募中")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3371,7 +3371,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `235765-235716-235681-235634-235450-235447-235429-235420-235411-235408`() {
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][10][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][10][720P][繁簡外掛][MKV]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3385,7 +3385,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][10][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][10][GB][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3399,14 +3399,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][10][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][10][GB][x264][848X480][mp4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][10][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][10][GB][x264][1280X720][mp4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3428,7 +3428,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 10v2【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 10v2【GB_RV10】【848X480】")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3446,21 +3446,21 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `235407-235361-235359-235349-235348-235347-235346-235343-235342-235341`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『10』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『10』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][10][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][10][720p][簡繁內掛][MKV]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][10][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][10][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3488,7 +3488,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][10][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][10][1024x576][簡體][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3509,7 +3509,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][10][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][10][1280x720][簡體][MKV]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3527,14 +3527,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][10][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][10][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][10][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][10][848X480][簡體][RMVB]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3555,7 +3555,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[09][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[09][GB][1024x576][MP4]附115&招募中")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3594,28 +3594,28 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `234831-234825-234818-234809-234783-234726-234720-234719-234697-234627`() {
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][09][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][09][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][09][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][09][720p][簡繁內掛][MKV]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][09][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][09][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][09][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][09][720P][繁簡外掛][MKV]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3650,14 +3650,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][08-09][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][08-09][GB][MP4]")
assertEquals("08..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][09][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][09][GB][x264][1280X720][mp4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3668,14 +3668,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `234616-234504-234502-234501-234500-234497-234496-234494-234491-234487`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『09』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『09』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][09][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][09][1024x576][簡體][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3696,7 +3696,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][09][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][09][1280x720][簡體][MKV]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3742,14 +3742,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `234486-234484-234249-234237-234225-234129-234026-233835-233760-233759`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][09][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][09][848X480][簡體][RMVB]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 09【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 09【GB_RV10】【848X480】")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3763,7 +3763,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[08][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[08][GB][1024x576][MP4]附115&招募中")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3777,7 +3777,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][08][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][08][720P][繁簡外掛][MKV]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3798,14 +3798,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][08][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][08][GB][x264][1280X720][mp4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][08][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][08][GB][x264][848X480][mp4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3816,14 +3816,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `233697-233675-233674-233672-233669-233644-233606-233605-233601-233600`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『08』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『08』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][08][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][08][1024x576][簡體][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3844,14 +3844,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][08][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][08][1280x720][簡體][MKV]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][08][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][08][720p][簡繁內掛][MKV]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3872,7 +3872,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][08][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][08][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3890,7 +3890,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `233599-233597-233596-233595-233594-233590-233378-233346-233224-233203`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][08][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][08][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3904,14 +3904,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][08][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][08][848X480][簡體][RMVB]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 08【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 08【GB_RV10】【848X480】")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3939,14 +3939,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[07][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[07][GB][1024x576][MP4]附115&招募中")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][07][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][07][720P][繁簡外掛][MKV]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3971,14 +3971,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][07][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][07][GB][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『07』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『07』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3992,35 +3992,35 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("★御宅千夏&DHR動研&Sakura Cafe★ [未來日記][Mirai_nikki][06][Hi10P_1080P][繁體]附网盘链接")
+ val r = parse("★御宅千夏&DHR動研&Sakura Cafe★ [未來日記][Mirai_nikki][06][Hi10P_1080P][繁體]附網盤鏈接")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 07【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 07【GB_RV10】【848X480】")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][07v2][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][07v2][1024x576][簡體][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][07][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][07][GB][x264][1280X720][mp4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][07][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][07][GB][x264][848X480][mp4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4059,14 +4059,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][07][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][07][1024x576][簡體][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][07][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][07][720p][簡繁內掛][MKV]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4094,7 +4094,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][07][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][07][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4119,14 +4119,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][07][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][07][848X480][簡體][RMVB]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][07][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][07][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4140,7 +4140,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[06][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[06][GB][1024x576][MP4]附115&招募中")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4154,14 +4154,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][06][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][06][720P][繁簡外掛][MKV]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][06][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][06][GB][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4175,7 +4175,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][05]][GB][x264][1280X720][MKV]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][05]][GB][x264][1280X720][MKV]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4228,28 +4228,28 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 06【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 06【GB_RV10】【848X480】")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][06]][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][06]][GB][x264][1280X720][mp4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『06』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『06』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][06]][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][06]][GB][x264][848X480][mp4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4260,14 +4260,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `231850-231845-231844-231838-231819-231812-231808-231807-231804-231802`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][06][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][06][1024x576][簡體][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][06][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][06][720p][簡繁內掛][MKV]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4281,7 +4281,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][06][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][06][1280x720][簡體][MKV]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4302,14 +4302,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][06][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][06][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][06][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][06][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4323,7 +4323,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][06][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][06][848X480][簡體][RMVB]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4334,35 +4334,35 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `231500-231499-231497-231496-231495-231308-231279-231252-231148-231115`() {
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[05][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[05][GB][1024x576][MP4]附115&招募中")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[04][v2][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[04][v2][GB][1024x576][MP4]附115&招募中")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[03][v2][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[03][v2][GB][1024x576][MP4]附115&招募中")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[02][v2][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[02][v2][GB][1024x576][MP4]附115&招募中")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[01][v2][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[01][v2][GB][1024x576][MP4]附115&招募中")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4390,7 +4390,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][05][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][05][720P][繁簡外掛][MKV]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4408,21 +4408,21 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `230957-230932-230917-230912-230888-230881-230880-230867-230862-230859`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『05』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『05』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][05][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][05][GB][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][05]][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][05]][GB][x264][1280X720][mp4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4436,14 +4436,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][05]][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][05]][GB][x264][848X480][mp4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][04][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][04][720P][繁簡外掛][MKV]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4457,7 +4457,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][05][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][05][1024x576][簡體][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4471,7 +4471,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][05][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][05][1280x720][簡體][MKV]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4482,7 +4482,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `230853-230830-230824-230821-230819-230818-230816-230814-230813-230812`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][05][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][05][720p][簡繁內掛][MKV]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4510,14 +4510,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][05][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][05][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][05][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][05][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4531,14 +4531,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 05【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 05【GB_RV10】【848X480】")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][05][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][05][848X480][簡體][RMVB]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4578,7 +4578,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][04]][GB][x264][1280X720][MKV]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][04]][GB][x264][1280X720][MKV]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4606,21 +4606,21 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][04v2][720p][简繁内挂][MKV][修正字體]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][04v2][720p][簡繁內掛][MKV][修正字體]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 04【GB_RV10】【848X480】V2(修正16'10\"错误)")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 04【GB_RV10】【848X480】V2(修正16'10\"错误)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][04]][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][04]][GB][x264][1280X720][mp4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4631,28 +4631,28 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `229948-229944-229918-229874-229850-229844-229841-229828-229826-229824`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][04]][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][04]][GB][x264][848X480][mp4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『04』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『04』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][04][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][04][GB][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][04][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][04][720p][簡繁內掛][MKV]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4680,7 +4680,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][04][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][04][1024x576][簡體][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4694,7 +4694,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][04][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][04][1280x720][簡體][MKV]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4712,7 +4712,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][04][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][04][848X480][簡體][RMVB]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4740,7 +4740,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][04][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][04][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4754,7 +4754,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][04][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][04][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4768,7 +4768,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][03][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][03][720P][繁簡外掛][MKV]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4779,7 +4779,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `229509-229417-229393-229232-229223-228912-228911-228910-228908-228889`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][03]][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][03]][GB][x264][1280X720][mp4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4814,7 +4814,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][03][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][03][GB][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4842,7 +4842,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『03』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『03』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4853,14 +4853,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `228877-228876-228858-228834-228827-228825-228823-228812-228811-228806`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][03]][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][03]][GB][x264][848X480][mp4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][02]][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][02]][GB][x264][1280X720][mp4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4874,14 +4874,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][03][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][03][720p][簡繁內掛][MKV]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][03][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][03][1024x576][簡體][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4895,7 +4895,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][03][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][03][1280x720][簡體][MKV]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4927,7 +4927,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `228800-228798-228797-228796-228794-228556-228453-228312-228283-228241`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 03【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 03【GB_RV10】【848X480】")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4941,7 +4941,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][03][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][03][848X480][簡體][RMVB]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4990,7 +4990,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][02][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][02][720P][繁簡外掛][MKV]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5001,7 +5001,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `228028-228025-228006-228005-227968-227933-227923-227842-227831-227830`() {
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][02][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][02][GB][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5015,21 +5015,21 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][02]][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][02]][GB][x264][848X480][mp4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][01]][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][01]][GB][x264][1280X720][mp4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『02V2』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『02V2』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5043,7 +5043,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『02』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『02』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5057,7 +5057,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][01v2~02][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][01v2~02][720p][簡繁內掛][MKV]")
assertEquals("01..02", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5089,7 +5089,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][02][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][02][1280x720][簡體][MKV]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5103,7 +5103,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][02][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][02][1024x576][簡體][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5131,7 +5131,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][02][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][02][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5149,7 +5149,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `227783-227782-227780-227362-227353-227308-227292-227128-227014-226971`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][02][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][02][848X480][簡體][RMVB]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5163,14 +5163,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 02【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 02【GB_RV10】【848X480】")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[BBA字幕组][未来日记][OVA][GB][720x480][MP4]")
+ val r = parse("[BBA字幕組][未來日記][OVA][GB][720x480][MP4]")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5198,21 +5198,21 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][01][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][01][720P][繁簡外掛][MKV]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][01][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][01][GB][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][01]][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][01]][GB][x264][848X480][mp4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5223,7 +5223,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `226956-226922-226918-226844-226825-226822-226821-226820-226818-226814`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『01』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『01』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5237,7 +5237,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("未来日记01 Mirai Nikki - 01 (CTC 1280x720 x264 AAC)mp4 无字幕 RAW")
+ val r = parse("未來日記01 Mirai Nikki - 01 (CTC 1280x720 x264 AAC)mp4 無字幕 RAW")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5251,7 +5251,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][01][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][01][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5265,14 +5265,14 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕組】★【10月新番】[未来日记][Mirai Nikki][01][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][01][1024x576][簡體][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][01][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][01][1280x720][簡體][MKV]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5286,7 +5286,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][01][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][01][720p][簡繁內掛][MKV]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5304,7 +5304,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 01【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 01【GB_RV10】【848X480】")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5332,7 +5332,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][01][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][01][848X480][簡體][RMVB]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5346,21 +5346,21 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("未来日记【第01话】无字幕 H264【MP4】(無字幕+片源)")
+ val r = parse("未來日記【第01話】無字幕 H264【MP4】(無字幕+片源)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[Mirai_Nikki][未来日记][OAD][MKV][简繁外挂]")
+ val r = parse("【華盟字幕社】[Mirai_Nikki][未來日記][OAD][MKV][簡繁外掛]")
assertEquals("OAD..OAD", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[Mirai_Nikki][未来日记][OAD][GB][480p_MP4]")
+ val r = parse("【華盟字幕社】[Mirai_Nikki][未來日記][OAD][GB][480p_MP4]")
assertEquals("OAD..OAD", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5371,7 +5371,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `200485-192030-191983`() {
kotlin.run {
- val r = parse("[四魂制作组][Mirai Nikki 未来日记][OAD][DVDRIP][GB_BIG5][MKV]")
+ val r = parse("[四魂製作組][Mirai Nikki 未來日記][OAD][DVDRIP][GB_BIG5][MKV]")
assertEquals("OAD..OAD", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5385,7 +5385,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[四魂制作组][Mirai Nikki 未来日记][OAD][BIG5繁體][RMVB]")
+ val r = parse("[四魂製作組][Mirai Nikki 未來日記][OAD][BIG5繁體][RMVB]")
assertEquals("OAD..OAD", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
diff --git "a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\346\250\261Trick.kt" "b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\346\250\261Trick.kt"
index 85125368d..355ebd007 100644
--- "a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\346\250\261Trick.kt"
+++ "b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\346\250\261Trick.kt"
@@ -25,21 +25,21 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `656570-656569-521448-451596-367159-363710-363209-363207-362481-352064`() {
kotlin.run {
- val r = parse("[愛戀&漫猫字幕社]櫻Trick Sakura Trick 01-12 avc_ flac mkv繁體內嵌合集(急招時軸)")
+ val r = parse("[愛戀&漫貓字幕社]櫻Trick Sakura Trick 01-12 avc_ flac mkv繁體內嵌合集(急招時軸)")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕社]樱Trick Sakura Trick 01-12 avc_flac mkv 简体内嵌合集(急招时轴)")
+ val r = parse("[愛戀&漫貓字幕社]櫻Trick Sakura Trick 01-12 avc_flac mkv 簡體內嵌合集(急招時軸)")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[Snow-Raws] 樱Trick/Sakura Trick/桜Trick(BD 1920x1080 HEVC-YUV420P10 FLAC)")
+ val r = parse("[Snow-Raws] 櫻Trick/Sakura Trick/桜Trick(BD 1920x1080 HEVC-YUV420P10 FLAC)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -47,49 +47,49 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
}
kotlin.run {
val r =
- parse("[DMG&Hakugetsu&VCB-Studio] Sakura Trick / 樱Trick 10-bit 1080p BDRip [Reseed Fin]")
+ parse("[DMG&Hakugetsu&VCB-Studio] Sakura Trick / 櫻Trick 10-bit 1080p BDRip [Reseed Fin]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[Sakura_Trick][樱Trick][BDRip][简繁日外挂][庆祝华盟字幕社成立十周年]")
+ val r = parse("【華盟字幕社】[Sakura_Trick][櫻Trick][BDRip][簡繁日外掛][慶祝華盟字幕社成立十週年]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("《樱Trick》(Sakura_Trick)[漏勺rip 720P]")
+ val r = parse("《櫻Trick》(Sakura_Trick)[漏勺rip 720P]")
assertEquals("null", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[动漫国 & 白月 & VCB-S] Sakura Trick/樱trick 10bit 1080p BDRip Fin 繁简外挂")
+ val r = parse("[動漫國 & 白月 & VCB-S] Sakura Trick/櫻trick 10bit 1080p BDRip Fin 繁簡外掛")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[动漫国 & 白月 & VCB-S] Sakura Trick/樱trick 8bit 720p BDRip Fin 繁简外挂")
+ val r = parse("[動漫國 & 白月 & VCB-S] Sakura Trick/櫻trick 8bit 720p BDRip Fin 繁簡外掛")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[异域-11番小队][樱Trick Sakura Trick][BDRIP][1-12+SP][720P][X264-10bit_AAC]")
+ val r = parse("[異域-11番小隊][櫻Trick Sakura Trick][BDRIP][1-12+SP][720P][X264-10bit_AAC]")
assertEquals("01..12+SP", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[Sakura_Trick][樱Trick][01-12_Fin][720pHQ_MP4][简繁外挂字幕]")
+ val r = parse("【華盟字幕社】[Sakura_Trick][櫻Trick][01-12_Fin][720pHQ_MP4][簡繁外掛字幕]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -100,7 +100,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `350616-350615-345137-345108-344785-344380-344324-344292-343869-343868`() {
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick/樱谋诡计][01-12(全集)][720P][简体][MP4](内详)")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick/櫻謀詭計][01-12(全集)][720P][簡體][MP4](內詳)")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -114,49 +114,49 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【白月字幕組&動漫國字幕組】★01月新番[樱Trick][01-12][1280x720][簡繁外掛][MKV]")
+ val r = parse("【白月字幕組&動漫國字幕組】★01月新番[櫻Trick][01-12][1280x720][簡繁外掛][MKV]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫先锋字幕组】◆1月新番【樱Trick _Sakura Trick_樱之恋】第01-12话[全][720p][MP4][繁体]")
+ val r = parse("【動漫先鋒字幕組】◆1月新番【櫻Trick _Sakura Trick_櫻之戀】第01-12話[全][720p][MP4][繁體]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【白月字幕組&動漫國字幕組】★01月新番[樱Trick][11][1280x720][簡繁外掛][MKV]")
+ val r = parse("【白月字幕組&動漫國字幕組】★01月新番[櫻Trick][11][1280x720][簡繁外掛][MKV]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[雪漫影字幕组&丸子家族][樱Trick(Sakura Trick)][01-12][合集][GB][720P][MP4]")
+ val r = parse("[雪漫影字幕組&丸子家族][櫻Trick(Sakura Trick)][01-12][合集][GB][720P][MP4]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[Sakura_Trick][樱Trick][01-12_Fin][GB][720p_MP4]")
+ val r = parse("【華盟字幕社】[Sakura_Trick][櫻Trick][01-12_Fin][GB][720p_MP4]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[Sakura_Trick][樱Trick][12][GB][720p_MP4]")
+ val r = parse("【華盟字幕社】[Sakura_Trick][櫻Trick][12][GB][720p_MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][12END][1280x720][简体][MP4]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][12END][1280x720][簡體][MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -174,7 +174,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `343843-343805-343793-343792-343779-343776-343698-343071-343070-342993`() {
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第01-12话 GB MP4 720p 合集")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第01-12話 GB MP4 720p 合集")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -188,21 +188,21 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick][12END][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][12END][720P][簡體][MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组现充爆破分队】【樱trick_sakura_trick】[第12话完][1280x720][MP4][简体]")
+ val r = parse("【千夏字幕組現充爆破分隊】【櫻trick_sakura_trick】[第12話完][1280x720][MP4][簡體]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第12话 GB MP4 720p 完")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第12話 GB MP4 720p 完")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -216,7 +216,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[Sakura_Trick][樱Trick][11][GB][720p_MP4]")
+ val r = parse("【華盟字幕社】[Sakura_Trick][櫻Trick][11][GB][720p_MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -230,7 +230,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][11][1280x720][简体][MP4]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][11][1280x720][簡體][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -248,21 +248,21 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `342865-342864-342857-342845-342821-342683-342554-342064-341956-341955`() {
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第11话 GB MP4 720p Rev")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第11話 GB MP4 720p Rev")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组现充爆破分队】【樱trick_sakura_trick】[第11话][1280x720][MP4][简体]")
+ val r = parse("【千夏字幕組現充爆破分隊】【櫻trick_sakura_trick】[第11話][1280x720][MP4][簡體]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick][11][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][11][720P][簡體][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -276,42 +276,42 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【白月字幕組&動漫國字幕組】★01月新番[樱Trick][10][1280x720][簡繁外掛][MKV]")
+ val r = parse("【白月字幕組&動漫國字幕組】★01月新番[櫻Trick][10][1280x720][簡繁外掛][MKV]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[Sakura_Trick][樱Trick][10][GB][720p_MP4]")
+ val r = parse("【華盟字幕社】[Sakura_Trick][櫻Trick][10][GB][720p_MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【白月字幕組&動漫國字幕組】★01月新番[樱Trick][09][1280x720][簡繁外掛][MKV]")
+ val r = parse("【白月字幕組&動漫國字幕組】★01月新番[櫻Trick][09][1280x720][簡繁外掛][MKV]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][10][1280x720][简体][MP4]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][10][1280x720][簡體][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick][10][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][10][720P][簡體][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第10话 GB MP4 720p")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第10話 GB MP4 720p")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -329,7 +329,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组现充爆破分队】【樱trick_sakura_trick】[第10话][1280x720][MP4][简体]")
+ val r = parse("【千夏字幕組現充爆破分隊】【櫻trick_sakura_trick】[第10話][1280x720][MP4][簡體]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -350,21 +350,21 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【东京不够热】【1月新番】樱Trick Sakura Trick【10】【1280x720】【简体】【GB_MP4】")
+ val r = parse("【東京不夠熱】【1月新番】櫻Trick Sakura Trick【10】【1280x720】【簡體】【GB_MP4】")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【白月字幕組&動漫國字幕組】★01月新番[樱Trick][08][1280x720][簡繁外掛][MKV]")
+ val r = parse("【白月字幕組&動漫國字幕組】★01月新番[櫻Trick][08][1280x720][簡繁外掛][MKV]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[Sakura_Trick][樱Trick][08-09][GB][720p_MP4]")
+ val r = parse("【華盟字幕社】[Sakura_Trick][櫻Trick][08-09][GB][720p_MP4]")
assertEquals("08..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -378,7 +378,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][09][1280x720][简体][MP4]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][09][1280x720][簡體][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -396,7 +396,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `341013-341005-341002-340995-340527-340162-340161-340160-340159-340158`() {
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick][09][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][09][720P][簡體][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -410,56 +410,56 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第09话 GB MP4 720p")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第09話 GB MP4 720p")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组现充爆破分队】【樱trick_sakura_trick】[第09话][1280x720][MP4][简体]")
+ val r = parse("【千夏字幕組現充爆破分隊】【櫻trick_sakura_trick】[第09話][1280x720][MP4][簡體]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【白月字幕組&動漫國字幕組】★01月新番[樱Trick][07][1280x720][簡繁外掛][MKV]")
+ val r = parse("【白月字幕組&動漫國字幕組】★01月新番[櫻Trick][07][1280x720][簡繁外掛][MKV]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组现充爆破分队】【樱trick_sakura_trick】[第08话][1280x720][MP4][简体]")
+ val r = parse("【千夏字幕組現充爆破分隊】【櫻trick_sakura_trick】[第08話][1280x720][MP4][簡體]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组现充爆破分队】【樱trick_sakura_trick】[第07话][1280x720][MP4][简体]")
+ val r = parse("【千夏字幕組現充爆破分隊】【櫻trick_sakura_trick】[第07話][1280x720][MP4][簡體]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组现充爆破分队】【樱trick_sakura_trick】[第06话][1280x720][MP4][简体]")
+ val r = parse("【千夏字幕組現充爆破分隊】【櫻trick_sakura_trick】[第06話][1280x720][MP4][簡體]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组现充爆破分队】【樱trick_sakura_trick】[第05话][1280x720][MP4][简体]")
+ val r = parse("【千夏字幕組現充爆破分隊】【櫻trick_sakura_trick】[第05話][1280x720][MP4][簡體]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组现充爆破分队】【樱trick_sakura_trick】[第04话][1280x720][MP4][简体]")
+ val r = parse("【千夏字幕組現充爆破分隊】【櫻trick_sakura_trick】[第04話][1280x720][MP4][簡體]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -477,21 +477,21 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][08][1280x720][简体][MP4]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][08][1280x720][簡體][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick][08][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][08][720P][簡體][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第08话 GB MP4 720p")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第08話 GB MP4 720p")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -519,14 +519,14 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【东京不够热】【1月新番】樱Trick Sakura Trick【08】【1280x720】【简体】【GB_MP4】")
+ val r = parse("【東京不夠熱】【1月新番】櫻Trick Sakura Trick【08】【1280x720】【簡體】【GB_MP4】")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[Sakura_Trick][樱Trick][07][GB][720p_MP4]")
+ val r = parse("【華盟字幕社】[Sakura_Trick][櫻Trick][07][GB][720p_MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -544,7 +544,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `339172-339118-339117-339080-339029-339027-339017-339012-339011-339010`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][07v2][1280x720][简体][MP4][修正不同步]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][07v2][1280x720][簡體][MP4][修正不同步]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -558,28 +558,28 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][07][1280x720][简体][MP4]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][07][1280x720][簡體][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【白月字幕組&動漫國字幕組】★01月新番[樱Trick][06][1280x720][簡繁外掛][MKV]")
+ val r = parse("【白月字幕組&動漫國字幕組】★01月新番[櫻Trick][06][1280x720][簡繁外掛][MKV]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick][07][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][07][720P][簡體][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第07话 GB MP4 720p")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第07話 GB MP4 720p")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -632,35 +632,35 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【东京不够热】【1月新番】樱Trick Sakura Trick【07】【1280x720】【简体】【GB_MP4】")
+ val r = parse("【東京不夠熱】【1月新番】櫻Trick Sakura Trick【07】【1280x720】【簡體】【GB_MP4】")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[Sakura_Trick][樱Trick][04-06][GB][720p_MP4]")
+ val r = parse("【華盟字幕社】[Sakura_Trick][櫻Trick][04-06][GB][720p_MP4]")
assertEquals("04..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【白月字幕組&動漫國字幕組】★01月新番[樱Trick][05][1280x720][簡繁外掛][MKV]")
+ val r = parse("【白月字幕組&動漫國字幕組】★01月新番[櫻Trick][05][1280x720][簡繁外掛][MKV]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫先锋字幕组】◆1月新番【樱Trick _Sakura Trick】第06话[720p][MP4][繁体]")
+ val r = parse("【動漫先鋒字幕組】◆1月新番【櫻Trick _Sakura Trick】第06話[720p][MP4][繁體]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫先锋字幕组】◆1月新番【樱Trick _Sakura Trick】第05话[720p][MP4][繁体]")
+ val r = parse("【動漫先鋒字幕組】◆1月新番【櫻Trick _Sakura Trick】第05話[720p][MP4][繁體]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -674,14 +674,14 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][06][1280x720][简体][MP4]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][06][1280x720][簡體][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick][06][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][06][720P][簡體][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -692,7 +692,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `338135-338111-338109-338108-337296-337293-337243-337201-337198-337182`() {
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第06话 GB MP4 720p")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第06話 GB MP4 720p")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -713,7 +713,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【东京不够热】【1月新番】樱Trick Sakura Trick【06】【1280x720】【简体】【GB_MP4】")
+ val r = parse("【東京不夠熱】【1月新番】櫻Trick Sakura Trick【06】【1280x720】【簡體】【GB_MP4】")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -727,21 +727,21 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][05][1280x720][简体][MP4]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][05][1280x720][簡體][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【白月字幕組&動漫國字幕組】★01月新番[樱Trick][04][1280x720][簡繁外掛][MKV]")
+ val r = parse("【白月字幕組&動漫國字幕組】★01月新番[櫻Trick][04][1280x720][簡繁外掛][MKV]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick][05][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][05][720P][簡體][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -755,7 +755,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第05话 GB MP4 720p")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第05話 GB MP4 720p")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -773,14 +773,14 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【东京不够热】【1月新番】樱Trick Sakura Trick【05】【1280x720】【简体】【GB_MP4】")
+ val r = parse("【東京不夠熱】【1月新番】櫻Trick Sakura Trick【05】【1280x720】【簡體】【GB_MP4】")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫先锋字幕组】◆1月新番【樱Trick _Sakura Trick】第04话[720p][MP4][繁体]")
+ val r = parse("【動漫先鋒字幕組】◆1月新番【櫻Trick _Sakura Trick】第04話[720p][MP4][繁體]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -794,28 +794,28 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][04][1280x720][简体][MP4]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][04][1280x720][簡體][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick][04][720P][简体][MP4] 大家新年快乐~")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][04][720P][簡體][MP4] 大家新年快樂~")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【動漫國字幕組&白月字幕組】★01月新番[樱Trick][04][720P][繁體][MP4]大家新年快樂~")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][04][720P][繁體][MP4]大家新年快樂~")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第04话 GB MP4 720p 祝大家春节快乐")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第04話 GB MP4 720p 祝大家春節快樂")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -829,7 +829,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【东京不够热】【1月新番】樱Trick Sakura Trick【04】【1280x720】【简体】【GB_MP4】[春节快乐]")
+ val r = parse("【東京不夠熱】【1月新番】櫻Trick Sakura Trick【04】【1280x720】【簡體】【GB_MP4】[春節快樂]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -840,14 +840,14 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `336216-335938-335798-335631-335470-335467-335398-335372-335331-335295`() {
kotlin.run {
- val r = parse("【白月字幕組&動漫國字幕組】★01月新番[樱Trick][03][1280x720][簡繁外掛][MKV](新年快樂)")
+ val r = parse("【白月字幕組&動漫國字幕組】★01月新番[櫻Trick][03][1280x720][簡繁外掛][MKV](新年快樂)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组现充爆破分队】【樱Trick_Sakura_Trick】[第03话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組現充爆破分隊】【櫻Trick_Sakura_Trick】[第03話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -861,7 +861,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[Sakura_Trick][樱Trick][03][GB][720p_MP4]")
+ val r = parse("【華盟字幕社】[Sakura_Trick][櫻Trick][03][GB][720p_MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -875,21 +875,21 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][03][1280x720][简体][MP4]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][03][1280x720][簡體][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫先锋字幕组】◆1月新番【樱Trick _Sakura Trick】第03话[720p][MP4][繁体]")
+ val r = parse("【動漫先鋒字幕組】◆1月新番【櫻Trick _Sakura Trick】第03話[720p][MP4][繁體]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【白月字幕組&動漫國字幕組】★01月新番[樱Trick][02][1280x720][簡繁外掛][MKV]")
+ val r = parse("【白月字幕組&動漫國字幕組】★01月新番[櫻Trick][02][1280x720][簡繁外掛][MKV]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -903,7 +903,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第03话 GB MP4 720p (附重要通知)")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第03話 GB MP4 720p (附重要通知)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -914,14 +914,14 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `335291-335288-335274-335271-335081-334600-334518-334517-334406-334262`() {
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick][03][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][03][720P][簡體][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【動漫國字幕組&白月字幕組】★01月新番[樱Trick][03][720P][繁體][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][03][720P][繁體][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -935,7 +935,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【东京不够热】【1月新番】樱Trick Sakura Trick【03】【1280x720】【简体】【GB_MP4】")
+ val r = parse("【東京不夠熱】【1月新番】櫻Trick Sakura Trick【03】【1280x720】【簡體】【GB_MP4】")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -949,7 +949,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫先锋字幕组】◆1月新番【樱Trick _Sakura Trick】第02话[720p][x264][BIG5]")
+ val r = parse("【動漫先鋒字幕組】◆1月新番【櫻Trick _Sakura Trick】第02話[720p][x264][BIG5]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -963,21 +963,21 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][02][1280x720][简体][MP4]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][02][1280x720][簡體][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[Sakura_Trick][樱Trick][02][GB][720p_MP4]")
+ val r = parse("【華盟字幕社】[Sakura_Trick][櫻Trick][02][GB][720p_MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick][02][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][02][720P][簡體][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -988,21 +988,21 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `334260-334253-334247-334246-334241-334239-334055-333807-333574-333573`() {
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第02话 GB MP4 720p")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第02話 GB MP4 720p")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【動漫國字幕組&白月字幕組】★01月新番[樱Trick][02][720P][繁體][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][02][720P][繁體][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组现充爆破分队】【樱Trick_Sakura_Trick】[第02话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組現充爆破分隊】【櫻Trick_Sakura_Trick】[第02話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1023,14 +1023,14 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【东京不够热】【1月新番】樱Trick Sakura Trick【02】【1280x720】【简体】【GB_MP4】")
+ val r = parse("【東京不夠熱】【1月新番】櫻Trick Sakura Trick【02】【1280x720】【簡體】【GB_MP4】")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【白月字幕組&動漫國字幕組】★01月新番[樱Trick][01][1280x720][簡繁外掛][MKV]")
+ val r = parse("【白月字幕組&動漫國字幕組】★01月新番[櫻Trick][01][1280x720][簡繁外掛][MKV]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1051,7 +1051,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][01][1280x720][简体][MP4]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][01][1280x720][簡體][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1062,14 +1062,14 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `333359-333336-333312-333249-333246-333245-333240-333233`() {
kotlin.run {
- val r = parse("【动漫先锋字幕组】◆1月新番【樱Trick _Sakura Trick】第01话[720p][x264][BIG5]")
+ val r = parse("【動漫先鋒字幕組】◆1月新番【櫻Trick _Sakura Trick】第01話[720p][x264][BIG5]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社】[Sakura_Trick][樱Trick][01][GB][720p_MP4]")
+ val r = parse("【華盟字幕社】[Sakura_Trick][櫻Trick][01][GB][720p_MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1083,35 +1083,35 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick][01][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][01][720P][簡體][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第01话 GB MP4 720p")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第01話 GB MP4 720p")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【動漫國字幕組&白月字幕組】★01月新番[樱Trick][01][720P][繁體][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][01][720P][繁體][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组现充爆破分队】【樱trick_sakura_trick】[第01話][1280x720][MP4][简体]")
+ val r = parse("【千夏字幕組現充爆破分隊】【櫻trick_sakura_trick】[第01話][1280x720][MP4][簡體]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【东京不够热】【1月新番】樱Trick Sakura Trick【01】【1280x720】【简体】【GB_MP4】")
+ val r = parse("【東京不夠熱】【1月新番】櫻Trick Sakura Trick【01】【1280x720】【簡體】【GB_MP4】")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
diff --git "a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\347\204\241\350\201\267\350\275\211\347\224\237_\345\210\260\344\272\206\347\225\260\344\270\226\347\225\214\345\260\261\346\213\277\345\207\272\347\234\237\346\234\254\344\272\213_.kt" "b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\347\204\241\350\201\267\350\275\211\347\224\237_\345\210\260\344\272\206\347\225\260\344\270\226\347\225\214\345\260\261\346\213\277\345\207\272\347\234\237\346\234\254\344\272\213_.kt"
index 69899634e..1986ff36e 100644
--- "a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\347\204\241\350\201\267\350\275\211\347\224\237_\345\210\260\344\272\206\347\225\260\344\270\226\347\225\214\345\260\261\346\213\277\345\207\272\347\234\237\346\234\254\344\272\213_.kt"
+++ "b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\347\204\241\350\201\267\350\275\211\347\224\237_\345\210\260\344\272\206\347\225\260\344\270\226\347\225\214\345\260\261\346\213\277\345\207\272\347\234\237\346\234\254\344\272\213_.kt"
@@ -25,7 +25,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `669857-669856-669850-669849-669848-669847-669846-669757-669756-669755`() {
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][4月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][18][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][4月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][18][1080p][MP4][簡中]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -39,7 +39,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [18][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [18][1080p][簡繁內封]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -60,14 +60,14 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [18][1080p@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [18][1080p@60FPS][簡體內嵌]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [18][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [18][1080p][簡體內嵌]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -75,7 +75,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [18][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [18][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -83,7 +83,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [18][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [18][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -91,7 +91,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [18][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [18][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -102,7 +102,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `669263-669262-669227-669226-669225-669139-669138-669134-669132-669131`() {
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][4月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][17][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][4月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][17][1080p][MP4][簡中]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -117,7 +117,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [17][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [17][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -125,7 +125,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [17][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [17][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -133,7 +133,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [17][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [17][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -141,7 +141,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [16][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [16][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -149,7 +149,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [16][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [16][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -157,14 +157,14 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [16][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [16][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [17][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [17][1080p][簡繁內封]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -189,21 +189,21 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [17][1080p@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [17][1080p@60FPS][簡體內嵌]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [17][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [17][1080p][簡體內嵌]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][4月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][16][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][4月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][16][1080p][MP4][簡中]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -217,7 +217,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [16][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [16][1080p][簡繁內封]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -231,7 +231,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [16][1080p@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [16][1080p@60FPS][簡體內嵌]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -245,7 +245,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [16][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [16][1080p][簡體內嵌]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -256,7 +256,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `668175-668174-668075-668074-668073-668072-668071-668051-668050-668049`() {
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][4月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][15][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][4月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][15][1080p][MP4][簡中]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -270,7 +270,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [15][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [15][1080p][簡繁內封]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -284,7 +284,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [15][1080p@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [15][1080p@60FPS][簡體內嵌]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -298,7 +298,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [15][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [15][1080p][簡體內嵌]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -306,7 +306,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [15][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [15][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -314,7 +314,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [15][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [15][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -322,7 +322,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [15][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [15][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -333,7 +333,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `667600-667599-667598-667596-667594-667477-667476-667448-667442-667441`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [14][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [14][1080p][簡繁內封]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -347,7 +347,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [14][1080p@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [14][1080p@60FPS][簡體內嵌]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -361,14 +361,14 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [14][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [14][1080p][簡體內嵌]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][4月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][14][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][4月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][14][1080p][MP4][簡中]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -383,7 +383,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [14][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [14][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -391,7 +391,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [14][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [14][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -399,7 +399,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [14][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [14][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -424,28 +424,28 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [13][1080p@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [13][1080p@60FPS][簡體內嵌]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [13][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [13][1080p][簡繁內封]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [13][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [13][1080p][簡體內嵌]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][4月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][13][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][4月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][13][1080p][MP4][簡中]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -460,7 +460,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [13][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [13][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -468,7 +468,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [13][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [13][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -476,7 +476,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [13][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [13][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -488,7 +488,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `653838-653837-652097-652096-652095-652094-652093-652077-652076-652075`() {
kotlin.run {
val r =
- parse("[爱恋字幕社&漫猫字幕社] 无职转生Ⅱ ~到了异世界就拿出真本事~/Mushoku Tensei II (00-12Fin WEBRIP 1080p AVC AAC MP4 2023年7月 简中)")
+ parse("[愛戀字幕社&漫貓字幕社] 無職轉生Ⅱ ~到了異世界就拿出真本事~/Mushoku Tensei II (00-12Fin WEBRIP 1080p AVC AAC MP4 2023年7月 簡中)")
assertEquals("00..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -503,7 +503,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [12][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [12][1080p][簡繁內封]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -517,7 +517,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [12][1080p@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [12][1080p@60FPS][簡體內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -531,7 +531,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [12][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [12][1080p][簡體內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -539,7 +539,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [12][WebRip][1080p][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [12][WebRip][1080p][HEVC_AAC][繁體內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -547,7 +547,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [12][WebRip][1080p][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [12][WebRip][1080p][HEVC_AAC][簡體內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -555,7 +555,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [12][WebRip][1080p][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [12][WebRip][1080p][HEVC_AAC][簡繁內封]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -575,14 +575,14 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[星空字幕组][无职转生Ⅱ~到了异世界就拿出真本事~ / Mushoku Tensei S2][08][简日双语][1080P][WEBrip][MP4](急招校对、后期)")
+ parse("[星空字幕組][無職轉生Ⅱ~到了異世界就拿出真本事~ / Mushoku Tensei S2][08][簡日雙語][1080P][WEBrip][MP4](急招校對、後期)")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][7月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][11][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][7月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][11][1080p][MP4][簡中]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -596,7 +596,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][7月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][10][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][7月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][10][1080p][MP4][簡中]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -619,14 +619,14 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[星空字幕组][无职转生Ⅱ~到了异世界就拿出真本事~ / Mushoku Tensei S2][07][简日双语][1080P][WEBrip][MP4](急招校对、后期)")
+ parse("[星空字幕組][無職轉生Ⅱ~到了異世界就拿出真本事~ / Mushoku Tensei S2][07][簡日雙語][1080P][WEBrip][MP4](急招校對、後期)")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [11][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [11][1080p][簡繁內封]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -644,7 +644,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `651551-651549-651548-651519-651518-651516-651007-651006-651005-650947`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [11][1080P@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [11][1080P@60FPS][簡體內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -658,7 +658,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [11][1080P][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [11][1080P][簡體內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -666,7 +666,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [11][WebRip][1080p][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [11][WebRip][1080p][HEVC_AAC][簡繁內封]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -674,7 +674,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [11][WebRip][1080p][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [11][WebRip][1080p][HEVC_AAC][繁體內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -682,7 +682,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [11][WebRip][1080p][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [11][WebRip][1080p][HEVC_AAC][簡體內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -690,7 +690,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [10][WebRip][1080p][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [10][WebRip][1080p][HEVC_AAC][繁體內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -698,7 +698,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [10][WebRip][1080p][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [10][WebRip][1080p][HEVC_AAC][簡體內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -706,14 +706,14 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [10][WebRip][1080p][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [10][WebRip][1080p][HEVC_AAC][簡繁內封]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [10][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [10][1080p][簡繁內封]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -731,7 +731,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [10][1080P@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [10][1080P@60FPS][簡體內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -745,14 +745,14 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [10][1080P][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [10][1080P][簡體內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][7月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][09][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][7月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][09][1080p][MP4][簡中]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -766,7 +766,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [09][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [09][1080p][簡繁內封]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -780,7 +780,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [09][1080P@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [09][1080P@60FPS][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -798,7 +798,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `650447-650310-650309-650308-649892-649891-649763-649762-649761-649760`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [09][1080P][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [09][1080P][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -806,7 +806,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [09][WebRip][1080p][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [09][WebRip][1080p][HEVC_AAC][簡繁內封]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -814,7 +814,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [09][WebRip][1080p][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [09][WebRip][1080p][HEVC_AAC][繁體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -822,14 +822,14 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [09][WebRip][1080p][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [09][WebRip][1080p][HEVC_AAC][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][7月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][08][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][7月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][08][1080p][MP4][簡中]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -843,7 +843,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [08][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [08][1080p][簡繁內封]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -857,7 +857,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [08][1080P@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [08][1080P@60FPS][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -875,7 +875,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `649759-649717-649716-649715-649363-649362-649234-649233-649162-649161`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [08][1080P][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [08][1080P][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -883,7 +883,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [08][WebRip][1080p][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [08][WebRip][1080p][HEVC_AAC][繁體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -891,7 +891,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [08][WebRip][1080p][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [08][WebRip][1080p][HEVC_AAC][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -899,14 +899,14 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [08][WebRip][1080p][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [08][WebRip][1080p][HEVC_AAC][簡繁內封]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][7月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][07][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][7月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][07][1080p][MP4][簡中]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -929,14 +929,14 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[星空字幕组][无职转生Ⅱ~到了异世界就拿出真本事~ / Mushoku Tensei S2][06][简日双语][1080P][WEBrip][MP4](急招校对、后期)")
+ parse("[星空字幕組][無職轉生Ⅱ~到了異世界就拿出真本事~ / Mushoku Tensei S2][06][簡日雙語][1080P][WEBrip][MP4](急招校對、後期)")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [07][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [07][1080p][簡繁內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -954,7 +954,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `649160-649159-649158-649085-649084-649083-648630-648629-648522-648521`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [07][1080P@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [07][1080P@60FPS][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -968,7 +968,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [07][1080P][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [07][1080P][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -976,7 +976,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [07][WebRip][1080p][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [07][WebRip][1080p][HEVC_AAC][繁體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -984,7 +984,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [07][WebRip][1080p][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [07][WebRip][1080p][HEVC_AAC][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -992,14 +992,14 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [07][WebRip][1080p][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [07][WebRip][1080p][HEVC_AAC][簡繁內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][7月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][06][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][7月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][06][1080p][MP4][簡中]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1013,7 +1013,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [06][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [06][1080p][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1031,7 +1031,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `648520-648519-648518-648457-648456-648455-648329-648328-647999-647998`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [06][1080P@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [06][1080P@60FPS][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1045,7 +1045,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [06][1080P][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [06][1080P][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1053,7 +1053,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [06][WebRip][1080p][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [06][WebRip][1080p][HEVC_AAC][繁體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1061,7 +1061,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [06][WebRip][1080p][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [06][WebRip][1080p][HEVC_AAC][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1069,7 +1069,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [06][WebRip][1080p][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [06][WebRip][1080p][HEVC_AAC][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1085,14 +1085,14 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[星空字幕组][无职转生Ⅱ~到了异世界就拿出真本事~ / Mushoku Tensei S2][05][简日双语][1080P][WEBrip][MP4](急招校对、后期)")
+ parse("[星空字幕組][無職轉生Ⅱ~到了異世界就拿出真本事~ / Mushoku Tensei S2][05][簡日雙語][1080P][WEBrip][MP4](急招校對、後期)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][7月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][05][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][7月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][05][1080p][MP4][簡中]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1110,7 +1110,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `647908-647907-647902-647901-647900-647899-647898-647872-647871-647870`() {
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][7月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][04][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][7月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][04][1080p][MP4][簡中]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1124,7 +1124,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [05][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [05][1080p][簡繁內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1138,7 +1138,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [05][1080P@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [05][1080P@60FPS][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1152,7 +1152,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [05][1080P][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [05][1080P][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1160,7 +1160,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [05][WebRip][1080p][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [05][WebRip][1080p][HEVC_AAC][簡繁內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1168,7 +1168,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [05][WebRip][1080p][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [05][WebRip][1080p][HEVC_AAC][繁體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1176,7 +1176,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [05][WebRip][1080p][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [05][WebRip][1080p][HEVC_AAC][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1187,7 +1187,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `647405-647404-647403-647402-647401-647312-647311-647278-647277-647276`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [04][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [04][1080p][簡繁內封]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1201,7 +1201,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [04][1080P@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [04][1080P@60FPS][簡體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1215,7 +1215,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [04][1080P][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [04][1080P][簡體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1231,7 +1231,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[星空字幕组][无职转生Ⅱ~到了异世界就拿出真本事~ / Mushoku Tensei S2][04][简日双语][1080P][WEBrip][MP4](急招校对、后期)")
+ parse("[星空字幕組][無職轉生Ⅱ~到了異世界就拿出真本事~ / Mushoku Tensei S2][04][簡日雙語][1080P][WEBrip][MP4](急招校對、後期)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1239,7 +1239,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [04][WebRip][1080p][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [04][WebRip][1080p][HEVC_AAC][繁體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1247,7 +1247,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [04][WebRip][1080p][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [04][WebRip][1080p][HEVC_AAC][簡體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1255,7 +1255,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [04][WebRip][1080p][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [04][WebRip][1080p][HEVC_AAC][簡繁內封]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1266,7 +1266,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `647012-647011-646825-646824-646795-646794-646793-646792-646788-646647`() {
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][7月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][03][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][7月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][03][1080p][MP4][簡中]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1289,14 +1289,14 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[星空字幕组][无职转生Ⅱ~到了异世界就拿出真本事~ / Mushoku Tensei S2][03][简日双语][1080P][WEBrip][MP4](急招校对、后期)")
+ parse("[星空字幕組][無職轉生Ⅱ~到了異世界就拿出真本事~ / Mushoku Tensei S2][03][簡日雙語][1080P][WEBrip][MP4](急招校對、後期)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [03][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [03][1080p][簡繁內封]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1310,7 +1310,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [03][1080P@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [03][1080P@60FPS][簡體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1324,7 +1324,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [03][1080P][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [03][1080P][簡體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1332,7 +1332,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [03][WebRip][1080p][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [03][WebRip][1080p][HEVC_AAC][繁體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1344,7 +1344,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `646646-646645-646168-646167-646115-646114-646113-646112-646111-645984`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [03][WebRip][1080p][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [03][WebRip][1080p][HEVC_AAC][簡體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1352,7 +1352,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [03][WebRip][1080p][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [03][WebRip][1080p][HEVC_AAC][簡繁內封]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1368,14 +1368,14 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[星空字幕组][无职转生Ⅱ~到了异世界就拿出真本事~ / Mushoku Tensei S2][02][简日双语][1080P][WEBrip][MP4](急招校对、后期)")
+ parse("[星空字幕組][無職轉生Ⅱ~到了異世界就拿出真本事~ / Mushoku Tensei S2][02][簡日雙語][1080P][WEBrip][MP4](急招校對、後期)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [02][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [02][1080p][簡繁內封]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1389,7 +1389,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [02][1080P@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [02][1080P@60FPS][簡體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1403,14 +1403,14 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [02][1080P][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [02][1080P][簡體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][7月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][02][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][7月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][02][1080p][MP4][簡中]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1429,7 +1429,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [02][WebRip][1080p][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [02][WebRip][1080p][HEVC_AAC][繁體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1437,7 +1437,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [02][WebRip][1080p][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [02][WebRip][1080p][HEVC_AAC][簡繁內封]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1445,14 +1445,14 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [02][WebRip][1080p][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [02][WebRip][1080p][HEVC_AAC][簡體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [01][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [01][1080p][簡繁內封]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1466,7 +1466,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [01][1080P@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [01][1080P@60FPS][簡體內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1480,7 +1480,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [01][1080P][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [01][1080P][簡體內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1500,14 +1500,14 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `645337-645334-645333-645185-645184-645169-644823-644822-644772-644771`() {
kotlin.run {
val r =
- parse("[星空字幕组][无职转生Ⅱ~到了异世界就拿出真本事~ / Mushoku Tensei S2][01][简日双语][1080P][WEBrip][MP4](急招校对、后期)")
+ parse("[星空字幕組][無職轉生Ⅱ~到了異世界就拿出真本事~ / Mushoku Tensei S2][01][簡日雙語][1080P][WEBrip][MP4](急招校對、後期)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][7月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][01][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][7月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][01][1080p][MP4][簡中]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1522,7 +1522,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [01][WebRip][1080p][HEVC_AAC][繁體內嵌][無修正]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [01][WebRip][1080p][HEVC_AAC][繁體內嵌][無修正]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1530,7 +1530,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [01][WebRip][1080p][HEVC_AAC][简体内嵌][无修正]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [01][WebRip][1080p][HEVC_AAC][簡體內嵌][無修正]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1538,7 +1538,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [01][WebRip][1080p][HEVC_AAC][简繁内封][无修正]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [01][WebRip][1080p][HEVC_AAC][簡繁內封][無修正]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1546,7 +1546,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[爱恋字幕社&猫恋汉化组][7月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][00v2][1080p][MP4][简中]")
+ parse("[愛戀字幕社&貓戀漢化組][7月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][00v2][1080p][MP4][簡中]")
assertEquals("00..00", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1561,7 +1561,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [00][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [00][1080p][簡繁內封]")
assertEquals("00..00", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1579,7 +1579,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `644769-644768-644767-644662-644661-644595-644594-644593-602366-595150`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [00][1080P@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [00][1080P@60FPS][簡體內嵌]")
assertEquals("00..00", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1593,7 +1593,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [00][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [00][1080p][簡體內嵌]")
assertEquals("00..00", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1609,7 +1609,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[星空字幕组][无职转生Ⅱ~到了异世界就拿出真本事~ / Mushoku Tensei S2][00][简日双语][1080P][WEBrip][MP4](急招校对、后期)")
+ parse("[星空字幕組][無職轉生Ⅱ~到了異世界就拿出真本事~ / Mushoku Tensei S2][00][簡日雙語][1080P][WEBrip][MP4](急招校對、後期)")
assertEquals("00..00", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1617,7 +1617,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [00][WebRip][1080p][HEVC_AAC][简繁内封][无修正]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [00][WebRip][1080p][HEVC_AAC][簡繁內封][無修正]")
assertEquals("00..00", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1625,7 +1625,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [00][WebRip][1080p][HEVC_AAC][繁體內嵌][無修正]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [00][WebRip][1080p][HEVC_AAC][繁體內嵌][無修正]")
assertEquals("00..00", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1633,7 +1633,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [00][WebRip][1080p][HEVC_AAC][简体内嵌][无修正]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [00][WebRip][1080p][HEVC_AAC][簡體內嵌][無修正]")
assertEquals("00..00", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1641,7 +1641,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&VCB-Studio] Mushoku Tensei: Isekai Ittara Honki Dasu / 无职转生~到了异世界就拿出真本事~ 10-bit 1080p HEVC BDRip [S1 Fin]")
+ parse("[喵萌奶茶屋&VCB-Studio] Mushoku Tensei: Isekai Ittara Honki Dasu / 無職轉生~到了異世界就拿出真本事~ 10-bit 1080p HEVC BDRip [S1 Fin]")
assertEquals("S1", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1649,7 +1649,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [24][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [24][1080p][簡繁內封]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1677,7 +1677,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [24][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [24][1080p@60FPS][簡體內嵌]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1685,7 +1685,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [24][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [24][1080p][簡體內嵌]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1700,7 +1700,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [23][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [23][1080p][簡繁內封]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1716,7 +1716,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [23][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [23][1080p@60FPS][簡體內嵌]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1732,7 +1732,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [23][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [23][1080p][簡體內嵌]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1751,7 +1751,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [22][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [22][1080p][簡繁內封]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1767,7 +1767,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [22][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [22][1080p@60FPS][簡體內嵌]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1783,7 +1783,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [22][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [22][1080p][簡體內嵌]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1798,7 +1798,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [21][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [21][1080p][簡繁內封]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1814,7 +1814,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [21][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [21][1080p@60FPS][簡體內嵌]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1834,7 +1834,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [21][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [21][1080p][簡體內嵌]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1842,7 +1842,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [19][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [19][1080p][簡繁內封]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1858,7 +1858,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [19][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [19][1080p@60FPS][簡體內嵌]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1874,7 +1874,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [19][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [19][1080p][簡體內嵌]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1882,7 +1882,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [18][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [18][1080p][簡繁內封]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1898,7 +1898,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [18][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [18][1080p@60FPS][簡體內嵌]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1910,7 +1910,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `585473-585472-584925-584923-584921-584920-584919-584174-584173-584172`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [18][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [18][1080p][簡體內嵌]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1926,7 +1926,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [17v2][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [17v2][1080p@60FPS][簡體內嵌]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1934,7 +1934,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [17][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [17][1080p][簡繁內封]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1958,7 +1958,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [17][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [17][1080p][簡體內嵌]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1966,7 +1966,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [16][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [16][1080p][簡繁內封]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1982,7 +1982,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [16][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [16][1080p@60FPS][簡體內嵌]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2002,7 +2002,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [16][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [16][1080p][簡體內嵌]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2018,7 +2018,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [15][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [15][1080p][簡體內嵌]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2026,7 +2026,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [15][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [15][1080p][簡繁內封]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2034,7 +2034,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [15][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [15][1080p@60FPS][簡體內嵌]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2057,7 +2057,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [14][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [14][1080p][簡繁內封]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2077,7 +2077,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `582771-582769-582768-582552-582076-582051-582036-582035-582033-582031`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [14][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [14][1080p@60FPS][簡體內嵌]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2093,7 +2093,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [14][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [14][1080p][簡體內嵌]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2115,7 +2115,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [13v2][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [13v2][1080p][簡繁內封]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2123,7 +2123,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [13][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [13][1080p][簡體內嵌]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2147,7 +2147,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [13][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [13][1080p@60FPS][簡體內嵌]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2159,7 +2159,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `581220-581181-581180-581179-581178-581059-577124-572626-566682-566681`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [12][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [12][1080p][簡繁內封]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2175,7 +2175,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [12][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [12][1080p@60FPS][簡體內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2191,7 +2191,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [12][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [12][1080p][簡體內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2206,7 +2206,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][01-11][BDRIP 1920x1080 HEVC-YUV420P10 FLAC][简繁外挂]")
+ parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][01-11][BDRIP 1920x1080 HEVC-YUV420P10 FLAC][簡繁外掛]")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2214,7 +2214,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("【肥羊-Raws 11th anniversary】[无职转生~到了异世界就拿出真本事~][無職転生 〜異世界行ったら本気だす〜][BDRip][1080P_x265(10bit)-FLAC][ALL]")
+ parse("【肥羊-Raws 11th anniversary】[無職轉生~到了異世界就拿出真本事~][無職転生 〜異世界行ったら本気だす〜][BDRip][1080P_x265(10bit)-FLAC][ALL]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2228,7 +2228,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][01-11][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][01-11][x264 1080p][CHS]")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2246,7 +2246,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][11][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][11][x264 1080p][CHS]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2262,7 +2262,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01-11 Fin][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01-11 Fin][1080p@60FPS][簡體內嵌]")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2278,7 +2278,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01-11 Fin][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01-11 Fin][1080p][簡體內嵌]")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2294,7 +2294,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01-11 Fin][720p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01-11 Fin][720p][簡體內嵌]")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2302,7 +2302,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01-11 Fin][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01-11 Fin][1080p][簡繁內封]")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2320,7 +2320,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `564157-563676-563632-563631-563438-563431-563430-563429-563428-563427`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][10][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][10][x264 1080p][CHS]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2335,7 +2335,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[爱恋&漫猫字幕组][1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][11][1080p][MP4][GB][简中]")
+ parse("[愛戀&漫貓字幕組][1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][11][1080p][MP4][GB][簡中]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2375,7 +2375,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [11][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [11][1080p][簡繁內封]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2383,7 +2383,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [11][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [11][1080p@60FPS][簡體內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2391,7 +2391,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [11][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [11][1080p][簡體內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2403,7 +2403,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `563423-563336-563334-563048-563047-562845-562844-562831-562830-562827`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [11][720p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [11][720p][簡體內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2411,7 +2411,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[NC-Raws] 無職轉生~到了異世界就拿出真本事~(僅限港澳台地區) / Mushoku Tensei - 11 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
+ parse("[NC-Raws] 無職轉生~到了異世界就拿出真本事~(僅限港澳臺地區) / Mushoku Tensei - 11 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2419,7 +2419,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[NC-Raws] 无职转生 ~到了异世界就拿出真本事~ / Mushoku Tensei - 11 [WEB-DL][1080p][AVC AAC][CHS_CHT_TH_SRT][MKV]")
+ parse("[NC-Raws] 無職轉生 ~到了異世界就拿出真本事~ / Mushoku Tensei - 11 [WEB-DL][1080p][AVC AAC][CHS_CHT_TH_SRT][MKV]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2427,7 +2427,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[爱恋&漫猫字幕组][1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][10][1080p][MP4][GB][简中]")
+ parse("[愛戀&漫貓字幕組][1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][10][1080p][MP4][GB][簡中]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2449,7 +2449,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][09][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][09][x264 1080p][CHS]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2465,7 +2465,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [10][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [10][1080p@60FPS][簡體內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2485,7 +2485,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `562826-562825-562782-562781-562768-562760-562725-562694-562693-562653`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [10][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [10][1080p][簡體內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2507,7 +2507,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][08][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][08][x264 1080p][CHS]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2515,7 +2515,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [10][720p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [10][720p][簡體內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2523,7 +2523,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [10][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [10][1080p][簡繁內封]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2538,7 +2538,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[NC-Raws] 無職轉生~到了異世界就拿出真本事~(僅限港澳台地區) / Mushoku Tensei - 10 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
+ parse("[NC-Raws] 無職轉生~到了異世界就拿出真本事~(僅限港澳臺地區) / Mushoku Tensei - 10 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2546,7 +2546,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[NC-Raws] 无职转生 ~到了异世界就拿出真本事~ / Mushoku Tensei - 10 [WEB-DL][1080p][AVC AAC][CHS_CHT_TH_SRT][MKV]")
+ parse("[NC-Raws] 無職轉生 ~到了異世界就拿出真本事~ / Mushoku Tensei - 10 [WEB-DL][1080p][AVC AAC][CHS_CHT_TH_SRT][MKV]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2572,7 +2572,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[爱恋&漫猫字幕组][1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][09][1080p][MP4][GB][简中]")
+ parse("[愛戀&漫貓字幕組][1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][09][1080p][MP4][GB][簡中]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2596,7 +2596,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [09][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [09][1080p@60FPS][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2612,7 +2612,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [09][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [09][1080p][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2628,7 +2628,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [09][720p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [09][720p][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2636,7 +2636,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [09][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [09][1080p][簡繁內封]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2648,7 +2648,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `562056-562055-561772-561771-561704-561508-561491-561485-561484-561476`() {
kotlin.run {
val r =
- parse("[NC-Raws] 無職轉生~到了異世界就拿出真本事~(僅限港澳台地區) / Mushoku Tensei - 09 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
+ parse("[NC-Raws] 無職轉生~到了異世界就拿出真本事~(僅限港澳臺地區) / Mushoku Tensei - 09 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2656,7 +2656,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[NC-Raws] 无职转生 ~到了异世界就拿出真本事~ / Mushoku Tensei - 09 [WEB-DL][1080p][AVC AAC][CHS_CHT_TH_SRT][MKV]")
+ parse("[NC-Raws] 無職轉生 ~到了異世界就拿出真本事~ / Mushoku Tensei - 09 [WEB-DL][1080p][AVC AAC][CHS_CHT_TH_SRT][MKV]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2664,7 +2664,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[爱恋&漫猫字幕组][1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][08][1080p][MP4][GB][简中]")
+ parse("[愛戀&漫貓字幕組][1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][08][1080p][MP4][GB][簡中]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2680,7 +2680,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[NC-Raws] 无职转生 ~到了异世界就拿出真本事~ / Mushoku Tensei - 08 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
+ parse("[NC-Raws] 無職轉生 ~到了異世界就拿出真本事~ / Mushoku Tensei - 08 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2696,7 +2696,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [08][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [08][1080p@60FPS][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2712,7 +2712,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [08][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [08][1080p][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2732,7 +2732,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `561475-561472-561350-561239-561237-560944-560943-560768-560720-560711`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [08][720p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [08][720p][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2740,7 +2740,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [08][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [08][1080p][簡繁內封]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2748,7 +2748,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[NC-Raws] 無職轉生~到了異世界就拿出真本事~(僅限港澳台地區) / Mushoku Tensei - 08 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
+ parse("[NC-Raws] 無職轉生~到了異世界就拿出真本事~(僅限港澳臺地區) / Mushoku Tensei - 08 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2762,7 +2762,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][07][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][07][x264 1080p][CHS]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2770,7 +2770,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[爱恋&漫猫字幕组][1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][07][1080p][MP4][GB][简中]")
+ parse("[愛戀&漫貓字幕組][1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][07][1080p][MP4][GB][簡中]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2801,7 +2801,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [07][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [07][1080p@60FPS][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2821,7 +2821,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [07][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [07][1080p][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2837,7 +2837,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [07][720p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [07][720p][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2845,7 +2845,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [07][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [07][1080p][簡繁內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2853,7 +2853,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[NC-Raws] 無職轉生~到了異世界就拿出真本事~(僅限港澳台地區) / Mushoku Tensei - 07 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
+ parse("[NC-Raws] 無職轉生~到了異世界就拿出真本事~(僅限港澳臺地區) / Mushoku Tensei - 07 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2861,7 +2861,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[爱恋&漫猫字幕组][1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][06][1080p][MP4][GB][简中]")
+ parse("[愛戀&漫貓字幕組][1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][06][1080p][MP4][GB][簡中]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2883,7 +2883,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][06][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][06][x264 1080p][CHS]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2903,7 +2903,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [06][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [06][1080p@60FPS][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2919,7 +2919,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [06][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [06][1080p][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2935,7 +2935,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [06][720p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [06][720p][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2943,7 +2943,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [06][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [06][1080p][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2958,7 +2958,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[NC-Raws] 無職轉生~到了異世界就拿出真本事~(僅限港澳台地區) / Mushoku Tensei - 06 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
+ parse("[NC-Raws] 無職轉生~到了異世界就拿出真本事~(僅限港澳臺地區) / Mushoku Tensei - 06 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2976,7 +2976,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `559513-559451-559450-559402-559394-559391-559390-559358-559357-559349`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][05][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][05][x264 1080p][CHS]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2984,7 +2984,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[爱恋&漫猫字幕组][1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][05][1080p][MP4][GB][简中]")
+ parse("[愛戀&漫貓字幕組][1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][05][1080p][MP4][GB][簡中]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3008,7 +3008,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [05][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [05][1080p@60FPS][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3024,7 +3024,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [05][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [05][1080p][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3040,7 +3040,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [05][720p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [05][720p][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3048,7 +3048,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [05][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [05][1080p][簡繁內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3059,7 +3059,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `559346-559345-559282-559077-559076-558799-558798-558797-558796-558741`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][04][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][04][x264 1080p][CHS]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3081,7 +3081,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[爱恋&漫猫字幕组][1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][04][1080p][MP4][GB][简中]")
+ parse("[愛戀&漫貓字幕組][1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][04][1080p][MP4][GB][簡中]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3103,7 +3103,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][03][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][03][x264 1080p][CHS]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3117,7 +3117,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][02][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][02][x264 1080p][CHS]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3137,7 +3137,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `558731-558730-558729-558728-558725-558724-558624-558421-558420-558396`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [04][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [04][1080p@60FPS][簡體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3153,7 +3153,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [04][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [04][1080p][簡體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3169,7 +3169,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [04][720p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [04][720p][簡體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3177,7 +3177,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [04][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [04][1080p][簡繁內封]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3192,7 +3192,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[爱恋&漫猫字幕组][1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][03][1080p][MP4][GB][简中]")
+ parse("[愛戀&漫貓字幕組][1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][03][1080p][MP4][GB][簡中]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3218,7 +3218,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `558394-558071-558069-558067-558045-558044-558043-558041-558007-557642`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][01][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][01][x264 1080p][CHS]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3226,7 +3226,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [03][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [03][1080p@60FPS][簡體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3250,7 +3250,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [03][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [03][1080p][簡體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3266,7 +3266,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [03][720p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [03][720p][簡體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3274,7 +3274,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [03][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [03][1080p][簡繁內封]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3289,7 +3289,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[神枫字幕组] [1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][02][1080p][MP4][GB][简体中文]")
+ parse("[神楓字幕組] [1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][02][1080p][MP4][GB][簡體中文]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3301,7 +3301,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `557640-557592-557591-557384-557383-557382-557381-557380-557379-557378`() {
kotlin.run {
val r =
- parse("[神枫字幕组] [1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][02][720p][MP4][GB][简体中文]")
+ parse("[神楓字幕組] [1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][02][720p][MP4][GB][簡體中文]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3309,7 +3309,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[爱恋&漫猫字幕组][1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][02][1080p][MP4][GB][简中]")
+ parse("[愛戀&漫貓字幕組][1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][02][1080p][MP4][GB][簡中]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3325,7 +3325,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [02][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [02][1080p][簡繁內封]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3341,7 +3341,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [02][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [02][1080p@60FPS][簡體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3357,7 +3357,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [02][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [02][1080p][簡體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3373,7 +3373,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [02][720p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [02][720p][簡體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3392,7 +3392,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[爱恋&漫猫字幕组][1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][01][1080p][AVC][简中]")
+ parse("[愛戀&漫貓字幕組][1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][01][1080p][AVC][簡中]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3408,7 +3408,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01][1080p][簡繁內封]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3424,7 +3424,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01][1080p@60FPS][簡體內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3440,7 +3440,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01][1080p][簡體內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3456,7 +3456,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
}
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01][720p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01][720p][簡體內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
diff --git "a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\347\237\263\347\272\252\345\205\203.kt" "b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\347\237\263\347\272\252\345\205\203.kt"
index 68933c722..fb4d235b6 100644
--- "a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\347\237\263\347\272\252\345\205\203.kt"
+++ "b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\347\237\263\347\272\252\345\205\203.kt"
@@ -25,14 +25,14 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `690822-690627-690565-690253-690163-690007-689898-689075-688856-688817`() {
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第四季 科学与未来 / Dr.STONE:Science Future [05] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第四季 科學與未來 / Dr.STONE:Science Future [05] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第四季 科学与未来 / Dr.STONE:Science Future [04] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第四季 科學與未來 / Dr.STONE:Science Future [04] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -40,28 +40,28 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[芝士动物朋友] 石纪元 科学与未来 / Dr.STONE SCIENCE FUTURE [03][CR-WebRip][1080p][HEVC+AAC][简繁内封](新石纪 第四季 S4)")
+ parse("[芝士動物朋友] 石紀元 科學與未來 / Dr.STONE SCIENCE FUTURE [03][CR-WebRip][1080p][HEVC+AAC][簡繁內封](新石紀 第四季 S4)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第四季 科学与未来 / Dr.STONE:Science Future [03] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第四季 科學與未來 / Dr.STONE:Science Future [03] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第四季 科学与未来 / Dr.STONE:Science Future [02] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第四季 科學與未來 / Dr.STONE:Science Future [02] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第四季 科学与未来 / Dr.STONE:Science Future [01] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第四季 科學與未來 / Dr.STONE:Science Future [01] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -69,7 +69,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[芝士动物朋友] 石纪元 科学与未来 / Dr.STONE SCIENCE FUTURE [02][CR-WebRip][1080p][HEVC+AAC][简繁内封](新石纪 第四季 S4)")
+ parse("[芝士動物朋友] 石紀元 科學與未來 / Dr.STONE SCIENCE FUTURE [02][CR-WebRip][1080p][HEVC+AAC][簡繁內封](新石紀 第四季 S4)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -77,7 +77,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[DBD-Raws][新石纪 Stone Wars/Dr. Stone Stone Wars][01-11TV全集][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV](石纪元 第二季/Dr. Stone S2/ドクターストーン Stone Wars)")
+ parse("[DBD-Raws][新石紀 Stone Wars/Dr. Stone Stone Wars][01-11TV全集][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV](石紀元 第二季/Dr. Stone S2/ドクターストーン Stone Wars)")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -85,7 +85,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[DBD-Raws][新石纪 New World/Dr. Stone New World][01-22TV全集+SP][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV](石纪元 第三季/Dr. Stone S3/ドクターストーン New World)")
+ parse("[DBD-Raws][新石紀 New World/Dr. Stone New World][01-22TV全集+SP][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV](石紀元 第三季/Dr. Stone S3/ドクターストーン New World)")
assertEquals("01..22+SP", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -93,7 +93,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[芝士动物朋友] 石纪元 科学与未来 / Dr.STONE SCIENCE FUTURE [01][CR-WebRip][1080p][HEVC+AAC][简繁内封](新石纪 第四季 S4)")
+ parse("[芝士動物朋友] 石紀元 科學與未來 / Dr.STONE SCIENCE FUTURE [01][CR-WebRip][1080p][HEVC+AAC][簡繁內封](新石紀 第四季 S4)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -105,7 +105,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `679339-678927-678485-678132-677722-677229-674728-674226-673771-673207`() {
kotlin.run {
val r =
- parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 22 END [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 22 END [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -113,7 +113,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 21 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 21 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -121,7 +121,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 20 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 20 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -129,7 +129,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 19 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 19 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -137,7 +137,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 18 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 18 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -145,7 +145,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 17 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 17 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -153,7 +153,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 16 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 16 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -161,7 +161,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 15 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 15 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -169,7 +169,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 14 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 14 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -177,7 +177,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 13 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 13 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -189,7 +189,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `672727-672230-671268-670745-670200-669435-668935-668405-667821-667820`() {
kotlin.run {
val r =
- parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 12 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 12 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -197,7 +197,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 11 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 11 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -205,7 +205,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 10 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 10 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -213,7 +213,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 09 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 09 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -221,7 +221,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 08 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 08 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -229,7 +229,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 07 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 07 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -237,7 +237,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 06 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 06 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -245,7 +245,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 05 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 05 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -253,7 +253,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 04 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 04 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -261,7 +261,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 03 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 03 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -273,7 +273,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `666366-665820-665454-659517-659248-658708-658151-657480-657082-656749`() {
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 02 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 02 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -281,7 +281,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 01 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 01 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -289,7 +289,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone Ryuusui 新石紀 / 石纪元 龍水 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone Ryuusui 新石紀 / 石紀元 龍水 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -297,49 +297,49 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[猎户压制部] 石纪元 第三季 下半 / Dr.STONE:New World [12-22] [WebRip] [1080p] [简日内嵌] [2023年10月番]")
+ parse("[獵戶壓制部] 石紀元 第三季 下半 / Dr.STONE:New World [12-22] [WebRip] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("12..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第三季 下半 / Dr.STONE:New World [22] [END] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第三季 下半 / Dr.STONE:New World [22] [END] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第三季 下半 / Dr.STONE:New World [21] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第三季 下半 / Dr.STONE:New World [21] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第三季 下半 / Dr.STONE:New World [20] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第三季 下半 / Dr.STONE:New World [20] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第三季 下半 / Dr.STONE:New World [19] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第三季 下半 / Dr.STONE:New World [19] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第三季 下半 / Dr.STONE:New World [18] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第三季 下半 / Dr.STONE:New World [18] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第三季 下半 / Dr.STONE:New World [17] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第三季 下半 / Dr.STONE:New World [17] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -350,42 +350,42 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `656416-655803-655282-654897-654713-644072-643782-643763-643762-643158`() {
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第三季 下半 / Dr.STONE:New World [16] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第三季 下半 / Dr.STONE:New World [16] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第三季 下半 / Dr.STONE:New World [15] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第三季 下半 / Dr.STONE:New World [15] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第三季 下半 / Dr.STONE:New World [14] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第三季 下半 / Dr.STONE:New World [14] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第三季 下半 / Dr.STONE:New World [13] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第三季 下半 / Dr.STONE:New World [13] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第三季 下半 / Dr.STONE:New World [12] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第三季 下半 / Dr.STONE:New World [12] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [01-11] [合集] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [01-11] [合集] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -393,14 +393,14 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[豌豆字幕组&风之圣殿字幕组&LoliHouse] 新石纪 第三季 / 石纪元 第三季 / Dr.STONE S3 [01-11 合集][WebRip 1080p HEVC-10bit AAC][简繁外挂字幕][Fin]")
+ parse("[豌豆字幕組&風之聖殿字幕組&LoliHouse] 新石紀 第三季 / 石紀元 第三季 / Dr.STONE S3 [01-11 合集][WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕][Fin]")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【豌豆字幕组&风之圣殿字幕组】★04月新番[Dr.STONE 新石纪 / 石纪元 第三季][01-11][合集][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組&風之聖殿字幕組】★04月新番[Dr.STONE 新石紀 / 石紀元 第三季][01-11][合集][簡體][1080P][MP4]")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -414,7 +414,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [11] [1080p] [简繁日内封] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [11] [1080p] [簡繁日內封] [2023年4月番]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -425,7 +425,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `643157-643093-643048-643047-642575-642574-642509-642463-642462-642014`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [11] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [11] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -433,14 +433,14 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[豌豆字幕组&风之圣殿字幕组&LoliHouse] 新石纪 第三季 / 石纪元 第三季 / Dr.STONE S3 - 11 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&風之聖殿字幕組&LoliHouse] 新石紀 第三季 / 石紀元 第三季 / Dr.STONE S3 - 11 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【豌豆字幕组&风之圣殿字幕组】★04月新番[Dr.STONE 新石纪 / 石纪元 第三季][11][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組&風之聖殿字幕組】★04月新番[Dr.STONE 新石紀 / 石紀元 第三季][11][簡體][1080P][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -454,14 +454,14 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [10] [1080p] [简繁日内封] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [10] [1080p] [簡繁日內封] [2023年4月番]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [10] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [10] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -469,14 +469,14 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[豌豆字幕组&风之圣殿字幕组&LoliHouse] 新石纪 第三季 / 石纪元 第三季 / Dr.STONE S3 - 10 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&風之聖殿字幕組&LoliHouse] 新石紀 第三季 / 石紀元 第三季 / Dr.STONE S3 - 10 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【豌豆字幕组&风之圣殿字幕组】★04月新番[Dr.STONE 新石纪 / 石纪元 第三季][10][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組&風之聖殿字幕組】★04月新番[Dr.STONE 新石紀 / 石紀元 第三季][10][簡體][1080P][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -490,7 +490,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [09] [1080p] [简繁日内封] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [09] [1080p] [簡繁日內封] [2023年4月番]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -501,7 +501,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `642013-641868-641865-641864-641499-641500-641365-641286-641285-640857`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [09] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [09] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -509,14 +509,14 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[豌豆字幕组&风之圣殿字幕组&LoliHouse] 新石纪 第三季 / 石纪元 第三季 / Dr.STONE S3 - 09 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&風之聖殿字幕組&LoliHouse] 新石紀 第三季 / 石紀元 第三季 / Dr.STONE S3 - 09 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【豌豆字幕组&风之圣殿字幕组】★04月新番[Dr.STONE 新石纪 / 石纪元 第三季][09][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組&風之聖殿字幕組】★04月新番[Dr.STONE 新石紀 / 石紀元 第三季][09][簡體][1080P][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -530,14 +530,14 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [08] [1080p] [简繁日内封] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [08] [1080p] [簡繁日內封] [2023年4月番]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [08] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [08] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -545,14 +545,14 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[豌豆字幕组&风之圣殿字幕组&LoliHouse] 新石纪 第三季 / 石纪元 第三季 / Dr.STONE S3 - 08 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&風之聖殿字幕組&LoliHouse] 新石紀 第三季 / 石紀元 第三季 / Dr.STONE S3 - 08 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【豌豆字幕组&风之圣殿字幕组】★04月新番[Dr.STONE 新石纪 / 石纪元 第三季][08][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組&風之聖殿字幕組】★04月新番[Dr.STONE 新石紀 / 石紀元 第三季][08][簡體][1080P][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -566,7 +566,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [07] [1080p] [简繁日内封] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [07] [1080p] [簡繁日內封] [2023年4月番]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -577,7 +577,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `640856-640661-640615-640614-640411-640410-640034-640007-640006-639600`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [07] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [07] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -585,14 +585,14 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[豌豆字幕组&风之圣殿字幕组&LoliHouse] 新石纪 第三季 / 石纪元 第三季 / Dr.STONE S3 - 07 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&風之聖殿字幕組&LoliHouse] 新石紀 第三季 / 石紀元 第三季 / Dr.STONE S3 - 07 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【豌豆字幕组&风之圣殿字幕组】★04月新番[Dr.STONE 新石纪 / 石纪元 第三季][07][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組&風之聖殿字幕組】★04月新番[Dr.STONE 新石紀 / 石紀元 第三季][07][簡體][1080P][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -606,14 +606,14 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [06] [1080p] [简繁日内封] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [06] [1080p] [簡繁日內封] [2023年4月番]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [06] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [06] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -621,14 +621,14 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[豌豆字幕组&风之圣殿字幕组&LoliHouse] 新石纪 第三季 / 石纪元 第三季 / Dr.STONE S3 - 06 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&風之聖殿字幕組&LoliHouse] 新石紀 第三季 / 石紀元 第三季 / Dr.STONE S3 - 06 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【豌豆字幕组&风之圣殿字幕组】★04月新番[Dr.STONE 新石纪 / 石纪元 第三季][06][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組&風之聖殿字幕組】★04月新番[Dr.STONE 新石紀 / 石紀元 第三季][06][簡體][1080P][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -642,7 +642,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [05] [1080p] [简繁日内封] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [05] [1080p] [簡繁日內封] [2023年4月番]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -653,21 +653,21 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `639599-639590-639589-639296-639285-639284-638641-638637-638636-638317`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [05] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [05] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [04] [1080p] [简繁日内封] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [04] [1080p] [簡繁日內封] [2023年4月番]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [04] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [04] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -675,14 +675,14 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[豌豆字幕组&风之圣殿字幕组&LoliHouse] 新石纪 第三季 / 石纪元 第三季 / Dr.STONE S3 - 05 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&風之聖殿字幕組&LoliHouse] 新石紀 第三季 / 石紀元 第三季 / Dr.STONE S3 - 05 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【豌豆字幕组&风之圣殿字幕组】★04月新番[Dr.STONE 新石纪 / 石纪元 第三季][05][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組&風之聖殿字幕組】★04月新番[Dr.STONE 新石紀 / 石紀元 第三季][05][簡體][1080P][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -697,14 +697,14 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[豌豆字幕组&风之圣殿字幕组&LoliHouse] 新石纪 第三季 / 石纪元 第三季 / Dr.STONE S3 - 04 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&風之聖殿字幕組&LoliHouse] 新石紀 第三季 / 石紀元 第三季 / Dr.STONE S3 - 04 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【豌豆字幕组&风之圣殿字幕组】★04月新番[Dr.STONE 新石纪 / 石纪元 第三季][04][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組&風之聖殿字幕組】★04月新番[Dr.STONE 新石紀 / 石紀元 第三季][04][簡體][1080P][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -718,7 +718,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [03] [1080p] [简繁日内封] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [03] [1080p] [簡繁日內封] [2023年4月番]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -729,7 +729,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `638303-638032-637942-637941-637505-637504-637234-637208-637207-636740`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [03] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [03] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -737,14 +737,14 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[豌豆字幕组&风之圣殿字幕组&LoliHouse] 新石纪 第三季 / 石纪元 第三季 / Dr.STONE S3 - 03 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&風之聖殿字幕組&LoliHouse] 新石紀 第三季 / 石紀元 第三季 / Dr.STONE S3 - 03 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【豌豆字幕组&风之圣殿字幕组】★04月新番[Dr.STONE 新石纪 / 石纪元 第三季][03][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組&風之聖殿字幕組】★04月新番[Dr.STONE 新石紀 / 石紀元 第三季][03][簡體][1080P][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -758,14 +758,14 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [02] [1080p] [简繁日内封] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [02] [1080p] [簡繁日內封] [2023年4月番]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [02] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [02] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -773,14 +773,14 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[豌豆字幕组&风之圣殿字幕组&LoliHouse] 新石纪 第三季 / 石纪元 第三季 / Dr.STONE S3 - 02 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&風之聖殿字幕組&LoliHouse] 新石紀 第三季 / 石紀元 第三季 / Dr.STONE S3 - 02 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【豌豆字幕组&风之圣殿字幕组】★04月新番[Dr.STONE 新石纪 / 石纪元 第三季][02][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組&風之聖殿字幕組】★04月新番[Dr.STONE 新石紀 / 石紀元 第三季][02][簡體][1080P][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -794,7 +794,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("石纪元 新石纪 Dr.STONE S02")
+ val r = parse("石紀元 新石紀 Dr.STONE S02")
assertEquals("S2", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -805,28 +805,28 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `636739-636738-636671-636670-636638-605298-605294-600372-599745-599318`() {
kotlin.run {
- val r = parse("石纪元 新石纪 Dr.STONE S01")
+ val r = parse("石紀元 新石紀 Dr.STONE S01")
assertEquals("S1", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("石纪元 新石纪 Dr.STONE S01+S02")
+ val r = parse("石紀元 新石紀 Dr.STONE S01+S02")
assertEquals("S1+S2", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [01] [1080p] [简繁日内封] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [01] [1080p] [簡繁日內封] [2023年4月番]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [01] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [01] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -834,7 +834,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[豌豆字幕组&风之圣殿字幕组&LoliHouse] 新石纪 第三季 / 石纪元 第三季 / Dr.STONE S3 - 01 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&風之聖殿字幕組&LoliHouse] 新石紀 第三季 / 石紀元 第三季 / Dr.STONE S3 - 01 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -842,7 +842,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[NC-Raws] Dr.STONE 石纪元 特别篇(龙水) / Dr. Stone: Ryuusui - 02 (B-Global 1920x1080 HEVC AAC MKV)")
+ parse("[NC-Raws] Dr.STONE 石紀元 特別篇(龍水) / Dr. Stone: Ryuusui - 02 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -850,7 +850,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[NC-Raws] Dr.STONE 石纪元 特别篇(龙水) / Dr. Stone: Ryuusui - 01 (B-Global 1920x1080 HEVC AAC MKV)")
+ parse("[NC-Raws] Dr.STONE 石紀元 特別篇(龍水) / Dr. Stone: Ryuusui - 01 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -950,7 +950,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[DBD-Raws][石纪元/Dr.STONE][01-24TV全集+特典映像][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV]")
+ parse("[DBD-Raws][石紀元/Dr.STONE][01-24TV全集+特典映像][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV]")
assertEquals("01..24", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1194,7 +1194,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第01-11话 GB 1080P HEVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第01-11話 GB 1080P HEVC MP4(字幕社招人內詳)")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1202,7 +1202,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第01-11话 GB 1080P AVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第01-11話 GB 1080P AVC MP4(字幕社招人內詳)")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1210,7 +1210,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第01-11话 GB 720P AVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第01-11話 GB 720P AVC MP4(字幕社招人內詳)")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1237,7 +1237,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第11话 GB 1080P HEVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第11話 GB 1080P HEVC MP4(字幕社招人內詳)")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1253,14 +1253,14 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第10话 GB 1080P HEVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第10話 GB 1080P HEVC MP4(字幕社招人內詳)")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[c.c动漫][1月新番][新石纪 / 石纪元 第二季][11][GB][HEVC][1080P][MP4][END]")
+ val r = parse("[c.c動漫][1月新番][新石紀 / 石紀元 第二季][11][GB][HEVC][1080P][MP4][END]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1276,14 +1276,14 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第09话 GB 1080P HEVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第09話 GB 1080P HEVC MP4(字幕社招人內詳)")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[c.c动漫][1月新番][新石纪 / 石纪元 第二季][10][GB][HEVC][1080P][MP4]")
+ val r = parse("[c.c動漫][1月新番][新石紀 / 石紀元 第二季][10][GB][HEVC][1080P][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1303,14 +1303,14 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `562886-562753-561998-561997-561616-561615-561083-560294-560085-560084`() {
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第08话 GB 1080P HEVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第08話 GB 1080P HEVC MP4(字幕社招人內詳)")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[c.c动漫][1月新番][新石纪 / 石纪元 第二季][08-09][GB][HEVC][1080P][MP4]")
+ val r = parse("[c.c動漫][1月新番][新石紀 / 石紀元 第二季][08-09][GB][HEVC][1080P][MP4]")
assertEquals("08..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1326,7 +1326,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第07话 GB 1080P HEVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第07話 GB 1080P HEVC MP4(字幕社招人內詳)")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1342,21 +1342,21 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第06话 GB 1080P HEVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第06話 GB 1080P HEVC MP4(字幕社招人內詳)")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[c.c动漫][1月新番][新石纪 / 石纪元 第二季][07][GB][HEVC][1080P][MP4][暫停更新公告]")
+ val r = parse("[c.c動漫][1月新番][新石紀 / 石紀元 第二季][07][GB][HEVC][1080P][MP4][暫停更新公告]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[c.c动漫][1月新番][新石纪 / 石纪元 第二季][06][GB][HEVC][1080P][MP4]")
+ val r = parse("[c.c動漫][1月新番][新石紀 / 石紀元 第二季][06][GB][HEVC][1080P][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1372,7 +1372,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第05话 GB 1080P HEVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第05話 GB 1080P HEVC MP4(字幕社招人內詳)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1383,7 +1383,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `559707-559674-559673-559009-558951-558950-558358-558030-558029-557644`() {
kotlin.run {
- val r = parse("[c.c动漫][1月新番][新石纪 / 石纪元 第二季][05][GB][HEVC][1080P][MP4]")
+ val r = parse("[c.c動漫][1月新番][新石紀 / 石紀元 第二季][05][GB][HEVC][1080P][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1399,14 +1399,14 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第04话 GB 1080P HEVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第04話 GB 1080P HEVC MP4(字幕社招人內詳)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[c.c动漫][1月新番][新石纪 / 石纪元 第二季][04][GB][HEVC][1080P][MP4]")
+ val r = parse("[c.c動漫][1月新番][新石紀 / 石紀元 第二季][04][GB][HEVC][1080P][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1422,14 +1422,14 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第03话 GB 1080P HEVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第03話 GB 1080P HEVC MP4(字幕社招人內詳)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[c.c动漫][1月新番][新石纪 / 石纪元 第二季][03][GB][HEVC][1080P][MP4]")
+ val r = parse("[c.c動漫][1月新番][新石紀 / 石紀元 第二季][03][GB][HEVC][1080P][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1445,14 +1445,14 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第02话 GB 1080P HEVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第02話 GB 1080P HEVC MP4(字幕社招人內詳)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[c.c动漫][1月新番][新石纪 / 石纪元 第二季][02][GB][HEVC][1080P][MP4]")
+ val r = parse("[c.c動漫][1月新番][新石紀 / 石紀元 第二季][02][GB][HEVC][1080P][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1472,14 +1472,14 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第01话 GB 1080P MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第01話 GB 1080P MP4(字幕社招人內詳)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[c.c动漫][1月新番][新石纪 / 石纪元 第二季][01][GB][HEVC][1080P][MP4]")
+ val r = parse("[c.c動漫][1月新番][新石紀 / 石紀元 第二季][01][GB][HEVC][1080P][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
diff --git "a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\347\272\246\344\274\232\345\244\247\344\275\234\346\210\230.kt" "b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\347\272\246\344\274\232\345\244\247\344\275\234\346\210\230.kt"
index 1c4f04e31..364b696a5 100644
--- "a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\347\272\246\344\274\232\345\244\247\344\275\234\346\210\230.kt"
+++ "b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\347\272\246\344\274\232\345\244\247\344\275\234\346\210\230.kt"
@@ -26,7 +26,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `685031-679848-675404-675383-675368-675285-675279-674235-674234-673571`() {
kotlin.run {
val r =
- parse("[Fatum Fatalis] 约会大作战 第五季 / デート・ア・ライブV / Date a Live V (BD REENCODE EP01-12+SP Fin)")
+ parse("[Fatum Fatalis] 約會大作戰 第五季 / デート・ア・ライブV / Date a Live V (BD REENCODE EP01-12+SP Fin)")
assertEquals("01..12+SP", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -34,7 +34,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[7³ACG] 约会大作战5/ デート・ア・ライブ Ⅴ/Date A Live S05 | 01-12 [简繁字幕] BDrip 1080p x265 FLAC 2.0")
+ parse("[7³ACG] 約會大作戰5/ デート・ア・ライブ Ⅴ/Date A Live S05 | 01-12 [簡繁字幕] BDrip 1080p x265 FLAC 2.0")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -42,7 +42,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[DBD-Raws][约会大作战 第四季/Date a Live IV/デート・ア・ライブIV][01-12TV全集][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV]")
+ parse("[DBD-Raws][約會大作戰 第四季/Date a Live IV/デート・ア・ライブIV][01-12TV全集][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -50,7 +50,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[DBD-Raws][约会大作战 第三季/Date a Live III/デート・ア・ライブIII][01-12TV全集][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV]")
+ parse("[DBD-Raws][約會大作戰 第三季/Date a Live III/デート・ア・ライブIII][01-12TV全集][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -58,7 +58,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[DBD-Raws][约会大作战 第二季/Date a Live II/デート・ア・ライブ II][01-10TV全集+OAD+特典映像][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV]")
+ parse("[DBD-Raws][約會大作戰 第二季/Date a Live II/デート・ア・ライブ II][01-10TV全集+OAD+特典映像][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV]")
assertEquals("01..10+OAD", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -66,7 +66,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[DBD-Raws][约会大作战 第一季/Date a Live S1/デート・ア・ライブ][导演剪辑版/Director's Cut/ディレクターズカット版][01-12TV全集+OAD][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV]")
+ parse("[DBD-Raws][約會大作戰 第一季/Date a Live S1/デート・ア・ライブ][導演剪輯版/Director's Cut/ディレクターズカット版][01-12TV全集+OAD][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV]")
assertEquals("01..12+OAD", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -74,14 +74,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[DBD-Raws][约会大作战 第一季/Date a Live S1/デート・ア・ライブ][01-12TV全集+OAD][1080P][BDRip][HEVC-10bit][FLAC][MKV]")
+ parse("[DBD-Raws][約會大作戰 第一季/Date a Live S1/デート・ア・ライブ][01-12TV全集+OAD][1080P][BDRip][HEVC-10bit][FLAC][MKV]")
assertEquals("01..12+OAD", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组] 约会大作战/Date A Live V (01-12Fin WEBRIP 1080p AVC AAC MP4 2024年4月 简中)")
+ val r = parse("[愛戀&漫貓字幕組] 約會大作戰/Date A Live V (01-12Fin WEBRIP 1080p AVC AAC MP4 2024年4月 簡中)")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -95,7 +95,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live V 约会大作战V 第12话 MP4 720p 完")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live V 約會大作戰V 第12話 MP4 720p 完")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -106,7 +106,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `673096-673095-672920-672917-672916-672876-672875-672874-672454-672110`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][12][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][12][1080p][MP4][簡中]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -128,7 +128,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][11][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][11][1080p][MP4][簡中]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -142,21 +142,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live V 约会大作战V 第11话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live V 約會大作戰V 第11話 MP4 720p")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live V 约会大作战V 第10话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live V 約會大作戰V 第10話 MP4 720p")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live V 约会大作战V 第09话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live V 約會大作戰V 第09話 MP4 720p")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -204,7 +204,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][09][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][09][1080p][MP4][簡中]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -226,7 +226,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][08][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][08][1080p][MP4][簡中]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -240,14 +240,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live V 约会大作战V 第08话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live V 約會大作戰V 第08話 MP4 720p")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live V 约会大作战V 第07话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live V 約會大作戰V 第07話 MP4 720p")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -258,7 +258,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `671123-670990-670937-670879-670878-670562-670222-670221-670174-670132`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live V 约会大作战V 第06话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live V 約會大作戰V 第06話 MP4 720p")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -280,7 +280,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][07][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][07][1080p][MP4][簡中]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -301,7 +301,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][06][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][06][1080p][MP4][簡中]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -341,7 +341,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][05][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][05][1080p][MP4][簡中]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -355,7 +355,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][05][720p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][05][720p][MP4][簡中]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -369,7 +369,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][04v2][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][04v2][1080p][MP4][簡中]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -383,7 +383,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][04v2][720p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][04v2][720p][MP4][簡中]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -397,7 +397,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][03][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][03][1080p][MP4][簡中]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -415,7 +415,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][03][720p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][03][720p][MP4][簡中]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -429,7 +429,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][02][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][02][1080p][MP4][簡中]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -443,7 +443,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][02][720p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][02][720p][MP4][簡中]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -457,7 +457,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][01][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][01][1080p][MP4][簡中]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -471,7 +471,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][01][720p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][01][720p][MP4][簡中]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -489,7 +489,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live V 约会大作战V 第05话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live V 約會大作戰V 第05話 MP4 720p")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -504,21 +504,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live V 约会大作战V 第04话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live V 約會大作戰V 第04話 MP4 720p")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live V 约会大作战V 第03话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live V 約會大作戰V 第03話 MP4 720p")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战 V][Date A Live V][04][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰 V][Date A Live V][04][1080p][MP4][簡中]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -566,7 +566,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live V 约会大作战V 第02话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live V 約會大作戰V 第02話 MP4 720p")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -588,14 +588,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live V 约会大作战V 第01话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live V 約會大作戰V 第01話 MP4 720p")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[BakeSubs] Date A Bullet [BD][1080p] 约会大作战约战狂三外传前篇虚或实篇后篇红或白篇")
+ val r = parse("[BakeSubs] Date A Bullet [BD][1080p] 約會大作戰約戰狂三外傳前篇虛或實篇後篇紅或白篇")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -617,7 +617,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[7³ACG] 约会大作战IV/Date A Live IV/デート・ア・ライブ IV | 01-12[简繁英字幕] BDrip 1080p x265 FLAC")
+ parse("[7³ACG] 約會大作戰IV/Date A Live IV/デート・ア・ライブ IV | 01-12[簡繁英字幕] BDrip 1080p x265 FLAC")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT, ENG", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -625,7 +625,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 IV / Date A Live IV - 12 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕][End]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 IV / Date A Live IV - 12 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕][End]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -637,7 +637,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `607119-607101-607100-607099-607098-606271-606270-606234-606233-606232`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 IV / Date A Live IV - 11 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 IV / Date A Live IV - 11 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -651,7 +651,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战IV_Date A Live IV】[第12话][1080p_AVC][简体][完]")
+ val r = parse("【千夏字幕組】【約會大作戰IV_Date A Live IV】[第12話][1080p_AVC][簡體][完]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -665,7 +665,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战IV_Date A Live IV】[第11话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰IV_Date A Live IV】[第11話][1080p_AVC][簡體]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -673,7 +673,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 IV / Date A Live IV - 10 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 IV / Date A Live IV - 10 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -681,7 +681,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 IV / Date A Live IV - 09 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 IV / Date A Live IV - 09 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -695,7 +695,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战IV_Date A Live IV】[第10话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰IV_Date A Live IV】[第10話][1080p_AVC][簡體]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -713,35 +713,35 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `606231-605058-604944-604936-604641-604638-604636-604635-604618-604617`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战IV_Date A Live IV】[第09话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰IV_Date A Live IV】[第09話][1080p_AVC][簡體]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live IV 约会大作战IV 第12话 MP4 720p 完")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live IV 約會大作戰IV 第12話 MP4 720p 完")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live IV 约会大作战IV 第11话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live IV 約會大作戰IV 第11話 MP4 720p")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live IV 约会大作战IV 第10话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live IV 約會大作戰IV 第10話 MP4 720p")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组] 约会大作战/Date A Live IV (01-12Fin WEBRIP 1080p AVC AAC 2022年4月 简中)")
+ val r = parse("[愛戀&漫貓字幕組] 約會大作戰/Date A Live IV (01-12Fin WEBRIP 1080p AVC AAC 2022年4月 簡中)")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -755,7 +755,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live IV][12][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live IV][12][1080p][MP4][簡中]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -769,7 +769,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live IV][11][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live IV][11][1080p][MP4][簡中]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -787,7 +787,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `604616-604615-604295-604264-604263-604133-604132-603875-603874-603873`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live IV][10][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live IV][10][1080p][MP4][簡中]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -802,7 +802,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 IV / Date A Live IV - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 IV / Date A Live IV - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -816,14 +816,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战IV_Date A Live IV】[第08话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰IV_Date A Live IV】[第08話][1080p_AVC][簡體]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live IV][09][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live IV][09][1080p][MP4][簡中]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -844,7 +844,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live IV][08][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live IV][08][1080p][MP4][簡中]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -870,21 +870,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳台地區) - 12 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳臺地區) - 12 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 12 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 12 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live IV][07][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live IV][07][1080p][MP4][簡中]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -906,28 +906,28 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳台地區) - 11 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳臺地區) - 11 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 11 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 11 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[c.c動漫][4月新番][約會大作戰 第四季][10][BIG5][1080P][MP4][内详]")
+ val r = parse("[c.c動漫][4月新番][約會大作戰 第四季][10][BIG5][1080P][MP4][內詳]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live IV][06][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live IV][06][1080p][MP4][簡中]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -945,7 +945,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live IV][05][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live IV][05][1080p][MP4][簡中]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -959,7 +959,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 10 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 10 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -967,14 +967,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳台地區) - 10 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳臺地區) - 10 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live IV 约会大作战IV 第09话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live IV 約會大作戰IV 第09話 MP4 720p")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -989,21 +989,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳台地區) - 09 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳臺地區) - 09 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 09 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 09 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live IV 约会大作战IV 第08话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live IV 約會大作戰IV 第08話 MP4 720p")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1014,21 +1014,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `601951-601950-601949-601812-601807-601806-601731-601729-601728-601630`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live IV 约会大作战IV 第07话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live IV 約會大作戰IV 第07話 MP4 720p")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live IV 约会大作战IV 第06话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live IV 約會大作戰IV 第06話 MP4 720p")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live IV 约会大作战IV 第05话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live IV 約會大作戰IV 第05話 MP4 720p")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1036,7 +1036,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 IV / Date A Live IV - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 IV / Date A Live IV - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1050,7 +1050,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战IV_Date A Live IV】[第07话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰IV_Date A Live IV】[第07話][1080p_AVC][簡體]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1058,7 +1058,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 IV / Date A Live IV - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 IV / Date A Live IV - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1072,7 +1072,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战IV_Date A Live IV】[第06话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰IV_Date A Live IV】[第06話][1080p_AVC][簡體]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1091,14 +1091,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `601386-601384-601033-601027-601026-600754-600752-600492-600491-600185`() {
kotlin.run {
val r =
- parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳台地區) - 08 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳臺地區) - 08 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 08 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 08 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1106,7 +1106,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 IV / Date A Live IV - 05 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 IV / Date A Live IV - 05 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1120,7 +1120,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战IV_Date A Live IV】[第05话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰IV_Date A Live IV】[第05話][1080p_AVC][簡體]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1128,21 +1128,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳台地區) - 07 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳臺地區) - 07 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 07 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 07 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live IV][04][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live IV][04][1080p][MP4][簡中]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1157,7 +1157,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳台地區) - 06 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳臺地區) - 06 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1168,7 +1168,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `600183-599803-599802-599801-599524-599522-599508-599507-599392-599391`() {
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 06 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 06 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1176,7 +1176,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 IV / Date A Live IV - 04 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 IV / Date A Live IV - 04 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1190,7 +1190,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战IV_Date A Live IV】[第04话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰IV_Date A Live IV】[第04話][1080p_AVC][簡體]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1198,35 +1198,35 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳台地區) - 05 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳臺地區) - 05 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 05 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 05 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live IV 约会大作战IV 第04话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live IV 約會大作戰IV 第04話 MP4 720p")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live IV 约会大作战IV 第03话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live IV 約會大作戰IV 第03話 MP4 720p")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live IV][03][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live IV][03][1080p][MP4][簡中]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1245,14 +1245,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `598923-598918-598909-598904-598902-598603-598602-598507-598414-598413`() {
kotlin.run {
val r =
- parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳台地區) - 04 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳臺地區) - 04 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 04 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 04 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1260,7 +1260,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 IV / Date A Live IV - 03 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 IV / Date A Live IV - 03 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1274,14 +1274,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战IV_Date A Live IV】[第03话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰IV_Date A Live IV】[第03話][1080p_AVC][簡體]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live IV][02][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live IV][02][1080p][MP4][簡中]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1296,7 +1296,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 IV / Date A Live IV - 02 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 IV / Date A Live IV - 02 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1310,7 +1310,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战IV_Date A Live IV】[第02话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰IV_Date A Live IV】[第02話][1080p_AVC][簡體]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1322,21 +1322,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `598280-598272-597949-597780-597726-597725-597691-597522-597519-597482`() {
kotlin.run {
val r =
- parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳台地區) - 03 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳臺地區) - 03 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 03 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 03 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 02 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 02 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1350,7 +1350,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live IV][01][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live IV][01][1080p][MP4][簡中]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1364,7 +1364,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live IV 约会大作战IV 第02话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live IV 約會大作戰IV 第02話 MP4 720p")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1372,21 +1372,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳台地區) - 02 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳臺地區) - 02 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 02 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 02 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live IV 约会大作战IV 第01话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live IV 約會大作戰IV 第01話 MP4 720p")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1404,7 +1404,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战IV_Date A Live IV】[第01话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰IV_Date A Live IV】[第01話][1080p_AVC][簡體]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1412,7 +1412,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 IV / Date A Live IV - 01 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 IV / Date A Live IV - 01 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1433,7 +1433,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 01 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 01 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1493,14 +1493,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[VCB-Studio] Date A Live / 约会大作战 / デート・ア・ライブ 10-bit 1080p HEVC/AVC BDRip [S1-S2 + MOVIE Reseed V3 Fin]")
+ parse("[VCB-Studio] Date A Live / 約會大作戰 / デート・ア・ライブ 10-bit 1080p HEVC/AVC BDRip [S1-S2 + MOVIE Reseed V3 Fin]")
assertEquals("S1+S2+S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("约会大作战 全三季 Date A Live S1+S2+S3+Movie [BD 1920x1080 HEVC-10bit OPUS][简繁内封字幕]")
+ val r = parse("約會大作戰 全三季 Date A Live S1+S2+S3+Movie [BD 1920x1080 HEVC-10bit OPUS][簡繁內封字幕]")
assertEquals("S1+S2+S3+S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1508,7 +1508,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[Snow-Raws] 约会大作战 第三季/Date a Live III/デート・ア・ライブ III(BD 1920x1080 HEVC-YUV420P10 FLAC)")
+ parse("[Snow-Raws] 約會大作戰 第三季/Date a Live III/デート・ア・ライブ III(BD 1920x1080 HEVC-YUV420P10 FLAC)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1516,14 +1516,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[Snow-Raws] 约会大作战 第二季/Date a Live II/デート・ア・ライブ II(BD 1920x1080 HEVC-YUV420P10 FLAC)")
+ parse("[Snow-Raws] 約會大作戰 第二季/Date a Live II/デート・ア・ライブ II(BD 1920x1080 HEVC-YUV420P10 FLAC)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[Snow-Raws] 约会大作战 第一季/Date a Live/デート・ア・ライブ(BD 1920x1080 HEVC-YUV420P10 FLAC)")
+ val r = parse("[Snow-Raws] 約會大作戰 第一季/Date a Live/デート・ア・ライブ(BD 1920x1080 HEVC-YUV420P10 FLAC)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1531,7 +1531,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[千夏字幕组&VCB-Studio] Date A Live Ⅲ / 约会大作战Ⅲ / デート・ア・ライブⅢ 10-bit 720p HEVC BDRip [MP4 Ver]")
+ parse("[千夏字幕組&VCB-Studio] Date A Live Ⅲ / 約會大作戰Ⅲ / デート・ア・ライブⅢ 10-bit 720p HEVC BDRip [MP4 Ver]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1539,7 +1539,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[千夏字幕组&VCB-Studio] Date A Live Ⅲ / 约会大作战Ⅲ / デート・ア・ライブⅢ 10-bit 1080p HEVC BDRip [Fin]")
+ parse("[千夏字幕組&VCB-Studio] Date A Live Ⅲ / 約會大作戰Ⅲ / デート・ア・ライブⅢ 10-bit 1080p HEVC BDRip [Fin]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1564,21 +1564,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[Moozzi2] 约会大作战第三季 Date A Live S3 BD-BOX 1-12 (BD 1920x1080 x.264 Flac)")
+ val r = parse("[Moozzi2] 約會大作戰第三季 Date A Live S3 BD-BOX 1-12 (BD 1920x1080 x.264 Flac)")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【ReinForce】【约会大作战 第三季】【DATE A LIVE S3 Vol 1】【01-06】【BDrip】【1920x1680】【mkv】")
+ val r = parse("【ReinForce】【約會大作戰 第三季】【DATE A LIVE S3 Vol 1】【01-06】【BDrip】【1920x1680】【mkv】")
assertEquals("01..06", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live III 约会大作战III 第12话 MP4 720p 完")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live III 約會大作戰III 第12話 MP4 720p 完")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1586,7 +1586,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 III / Date A Live III - 12 [WebRip 1080p HEVC-10bit AAC][繁体内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 III / Date A Live III - 12 [WebRip 1080p HEVC-10bit AAC][繁體內封字幕]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1614,7 +1614,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[搬运] 约会大作战III 12 [1080p][简体中文字幕]")
+ val r = parse("[搬運] 約會大作戰III 12 [1080p][簡體中文字幕]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1622,7 +1622,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 III / Date A Live III - 11 [WebRip 1080p HEVC-10bit AAC][繁体内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 III / Date A Live III - 11 [WebRip 1080p HEVC-10bit AAC][繁體內封字幕]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1647,14 +1647,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live III 约会大作战III 第11话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live III 約會大作戰III 第11話 MP4 720p")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[搬运] 约会大作战III 11 [1080p][简体中文字幕]")
+ val r = parse("[搬運] 約會大作戰III 11 [1080p][簡體中文字幕]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1662,14 +1662,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 III / Date A Live III - 10 [WebRip 1080p HEVC-10bit AAC][繁体内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 III / Date A Live III - 10 [WebRip 1080p HEVC-10bit AAC][繁體內封字幕]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live III 约会大作战III 第10话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live III 約會大作戰III 第10話 MP4 720p")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1677,7 +1677,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 III / Date A Live III - 09 [WebRip 1080p HEVC-10bit AAC][繁体内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 III / Date A Live III - 09 [WebRip 1080p HEVC-10bit AAC][繁體內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1723,21 +1723,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[搬运] 约会大作战III 09 [1080p][简体中文字幕]")
+ val r = parse("[搬運] 約會大作戰III 09 [1080p][簡體中文字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live III 约会大作战III 第09话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live III 約會大作戰III 第09話 MP4 720p")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[搬运] 约会大作战III 09 [1080p][简体中文字幕]")
+ val r = parse("[搬運] 約會大作戰III 09 [1080p][簡體中文字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1745,14 +1745,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 III / Date A Live III - 08 [WebRip 1080p HEVC-10bit AAC][繁体内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 III / Date A Live III - 08 [WebRip 1080p HEVC-10bit AAC][繁體內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live III 约会大作战III 第08话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live III 約會大作戰III 第08話 MP4 720p")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1774,7 +1774,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 III / Date A Live III - 07 [WebRip 1080p HEVC-10bit AAC][繁体内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 III / Date A Live III - 07 [WebRip 1080p HEVC-10bit AAC][繁體內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1806,7 +1806,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[搬运] 约会大作战III 08 [1080p][简体中文字幕]")
+ val r = parse("[搬運] 約會大作戰III 08 [1080p][簡體中文字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1814,14 +1814,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[Moozzi2] 约会大作战 剧场版 万由里审判 Date a Live Mayuri Judgement (BD 1920x1080 x.264 2Audio)")
+ parse("[Moozzi2] 約會大作戰 劇場版 萬由裏審判 Date a Live Mayuri Judgement (BD 1920x1080 x.264 2Audio)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[Moozzi2] 约会大作战第二季 Date A Live S2 1-10+OAD (BD 1920x1080 x.264 Flac)")
+ val r = parse("[Moozzi2] 約會大作戰第二季 Date A Live S2 1-10+OAD (BD 1920x1080 x.264 Flac)")
assertEquals("01..10+OAD", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1829,7 +1829,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[Moozzi2] 约会大作战第一季 Date A Live S1 Director's Cut 1-12+OAD (BD 1920x1080 x.264 Flac)")
+ parse("[Moozzi2] 約會大作戰第一季 Date A Live S1 Director's Cut 1-12+OAD (BD 1920x1080 x.264 Flac)")
assertEquals("01..12+OAD", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1843,7 +1843,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live III 约会大作战III 第07话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live III 約會大作戰III 第07話 MP4 720p")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1851,7 +1851,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 III / Date A Live III - 06 [WebRip 1080p HEVC-10bit AAC][繁体内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 III / Date A Live III - 06 [WebRip 1080p HEVC-10bit AAC][繁體內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1876,21 +1876,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[搬运] 约会大作战III 07 [1080p][简体中文字幕]")
+ val r = parse("[搬運] 約會大作戰III 07 [1080p][簡體中文字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live III 约会大作战III 第06话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live III 約會大作戰III 第06話 MP4 720p")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[搬运]约会大作战第三季第06集")
+ val r = parse("[搬運]約會大作戰第三季第06集")
assertEquals("null", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1905,7 +1905,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 III / Date A Live III - 05 [WebRip 1080p HEVC-10bit AAC][繁体内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 III / Date A Live III - 05 [WebRip 1080p HEVC-10bit AAC][繁體內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1926,7 +1926,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live III 约会大作战III 第05话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live III 約會大作戰III 第05話 MP4 720p")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1945,14 +1945,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 III / Date A Live III - 01-04 [WebRip 1080p HEVC-10bit AAC][繁体内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 III / Date A Live III - 01-04 [WebRip 1080p HEVC-10bit AAC][繁體內封字幕]")
assertEquals("01..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[搬运] 约会大作战III 05 [1080p][简体中文字幕]")
+ val r = parse("[搬運] 約會大作戰III 05 [1080p][簡體中文字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2026,7 +2026,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live III 约会大作战III 第04话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live III 約會大作戰III 第04話 MP4 720p")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2040,7 +2040,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[搬运] 约会大作战III 04 [1080p][简体中文字幕]")
+ val r = parse("[搬運] 約會大作戰III 04 [1080p][簡體中文字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2054,7 +2054,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][1月新番] Date A Live III 约会大作战III 第03话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社][1月新番] Date A Live III 約會大作戰III 第03話 MP4 720p")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2062,14 +2062,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[LoliHouse] 约会大作战 III / Date A Live III - 03 [WebRip 1080p HEVC-10bit AAC][英文内封字幕]")
+ parse("[LoliHouse] 約會大作戰 III / Date A Live III - 03 [WebRip 1080p HEVC-10bit AAC][英文內封字幕]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("ENG", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[搬运] 约会大作战III 03 [1080p][简体中文字幕]")
+ val r = parse("[搬運] 約會大作戰III 03 [1080p][簡體中文字幕]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2077,7 +2077,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[LoliHouse] 约会大作战 III / Date A Live III - 02 [WebRip 1080p HEVC-10bit AAC][英文内封字幕]")
+ parse("[LoliHouse] 約會大作戰 III / Date A Live III - 02 [WebRip 1080p HEVC-10bit AAC][英文內封字幕]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("ENG", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2095,7 +2095,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][1月新番] Date A Live III 约会大作战III 第02话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社][1月新番] Date A Live III 約會大作戰III 第02話 MP4 720p")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2103,14 +2103,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[VCB-Studio] Date A Live / 约会大作战 / デート・ア・ライブ 10-bit 1080p AVC BDRip [S1 Reseed Fin]")
+ parse("[VCB-Studio] Date A Live / 約會大作戰 / デート・ア・ライブ 10-bit 1080p AVC BDRip [S1 Reseed Fin]")
assertEquals("S1", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[搬运] 约会大作战III 02 [1080p][简体中文字幕]")
+ val r = parse("[搬運] 約會大作戰III 02 [1080p][簡體中文字幕]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2118,21 +2118,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[LoliHouse] 约会大作战 III / Date A Live III - 01 [WebRip 1080p HEVC-10bit AAC][英文内封字幕]")
+ parse("[LoliHouse] 約會大作戰 III / Date A Live III - 01 [WebRip 1080p HEVC-10bit AAC][英文內封字幕]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("ENG", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][1月新番] Date A Live III 约会大作战III 第01话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社][1月新番] Date A Live III 約會大作戰III 第01話 MP4 720p")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[搬运] 约会大作战III 01 [1080p][简体中文字幕]")
+ val r = parse("[搬運] 約會大作戰III 01 [1080p][簡體中文字幕]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2140,7 +2140,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[VCB-Studio] Date A Live / 约会大作战 / デート・ア・ライブ 10-bit 1080p AVC/HEVC BDRip [S1(DC)+S2+M1 Reseed Fin]")
+ parse("[VCB-Studio] Date A Live / 約會大作戰 / デート・ア・ライブ 10-bit 1080p AVC/HEVC BDRip [S1(DC)+S2+M1 Reseed Fin]")
assertEquals("S2", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2148,7 +2148,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[ANK-Raws] デート・ア・ライブⅡ DATE A LIVEⅡ 约会大作战Ⅱ TV 01-10Fin OVA (BDrip 1920x1080 HEVC-YUV420P10 FLAC)")
+ parse("[ANK-Raws] デート・ア・ライブⅡ DATE A LIVEⅡ 約會大作戰Ⅱ TV 01-10Fin OVA (BDrip 1920x1080 HEVC-YUV420P10 FLAC)")
assertEquals("01..10", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2156,7 +2156,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[ANK-Raws] デート・ア・ライブ DATE A LIVE 约会大作战 TV 01-12Fin OVA (BDrip 1920x1080 HEVC-YUV420P10 FLAC)")
+ parse("[ANK-Raws] デート・ア・ライブ DATE A LIVE 約會大作戰 TV 01-12Fin OVA (BDrip 1920x1080 HEVC-YUV420P10 FLAC)")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2174,28 +2174,28 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【F宅】约会大作战II 11话 OVA 简 720P MP4")
+ val r = parse("【F宅】約會大作戰II 11話 OVA 簡 720P MP4")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【F宅】约会大作战 13话 OVA 简 720P MP4")
+ val r = parse("【F宅】約會大作戰 13話 OVA 簡 720P MP4")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【F宅】约会大作战II 11话 OVA 简 1080P MKV")
+ val r = parse("【F宅】約會大作戰II 11話 OVA 簡 1080P MKV")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【F宅】约会大作战 13话 OVA 简 1080P MKV")
+ val r = parse("【F宅】約會大作戰 13話 OVA 簡 1080P MKV")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2203,21 +2203,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[繁星字幕組][Array Stars][劇場版 約會大作戰 - 萬由里審判][Gekijouban Date a Live - Mayuri Judgement ][BDrip][1080P][BIG5&GB&Jap][中日雙語簡繁內掛][mkv][字幕招新]")
+ parse("[繁星字幕組][Array Stars][劇場版 約會大作戰 - 萬由裏審判][Gekijouban Date a Live - Mayuri Judgement ][BDrip][1080P][BIG5&GB&Jap][中日雙語簡繁內掛][mkv][字幕招新]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【F宅】约会大作战【剧场版】DATE A LIVE 万由里裁决 简 1080P MKV")
+ val r = parse("【F宅】約會大作戰【劇場版】DATE A LIVE 萬由裏裁決 簡 1080P MKV")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 导演剪辑版BDBOX BDRip 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 導演剪輯版BDBOX BDRip 簡繁外掛")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2225,7 +2225,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[繁星字幕組][Array Stars][劇場版 約會大作戰 - 萬由里審判][Gekijouban Date a Live - Mayuri Judgement ][BDrip][720P][BIG5&Jap][中日雙語繁體][mp4][字幕招新]")
+ parse("[繁星字幕組][Array Stars][劇場版 約會大作戰 - 萬由裏審判][Gekijouban Date a Live - Mayuri Judgement ][BDrip][720P][BIG5&Jap][中日雙語繁體][mp4][字幕招新]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2233,7 +2233,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[Makino House&VCB-S&philosophy-raws] Date A Live The Movie:Mayuri Judgement/约会大作战剧场版 万由里裁决 10bit 1080p HEVC BDRip")
+ parse("[Makino House&VCB-S&philosophy-raws] Date A Live The Movie:Mayuri Judgement/約會大作戰劇場版 萬由裏裁決 10bit 1080p HEVC BDRip")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2245,28 +2245,28 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `425985-425643-425240-425043-425018-424999-424922-424896-424729-424579`() {
kotlin.run {
val r =
- parse("[繁星字幕组][Array Stars][剧场版 约会大作战 - 万由里审判][Gekijouban Date a Live - Mayuri Judgement ][BDrip][720P][GB&Jap][中日双语简体][mp4]")
+ parse("[繁星字幕組][Array Stars][劇場版 約會大作戰 - 萬由裏審判][Gekijouban Date a Live - Mayuri Judgement ][BDrip][720P][GB&Jap][中日雙語簡體][mp4]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("约会大作战 万由里裁决[漏勺rip 720P](外挂字幕)")
+ val r = parse("約會大作戰 萬由裏裁決[漏勺rip 720P](外掛字幕)")
assertEquals("null", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] 剧场版 Date A Live 约会大作战 万由里裁决 Mayuri Judgement BDRip 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] 劇場版 Date A Live 約會大作戰 萬由裏裁決 Mayuri Judgement BDRip 簡繁外掛")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【F宅】约会大作战【剧场版】DATE A LIVE 万由里裁决 简 720P MP4")
+ val r = parse("【F宅】約會大作戰【劇場版】DATE A LIVE 萬由裏裁決 簡 720P MP4")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2274,14 +2274,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("【莳乃汉化组】约会大作战 剧场版:万由里审判 [Special Video][GB+BIG5][BDRip_1080p_x264_8bit][AAC](诱宵美九:Go☆Summer Girl MV 内嵌)【请注意这个不是SP,是SV】")
+ parse("【蒔乃漢化組】約會大作戰 劇場版:萬由裏審判 [Special Video][GB+BIG5][BDRip_1080p_x264_8bit][AAC](誘宵美九:Go☆Summer Girl MV 內嵌)【請注意這個不是SP,是SV】")
assertEquals("Special..Special", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【莳乃汉化组】约会大作战 剧场版:万由里审判 [GBv2][BDRip_1080p_x264_8bit][AAC]【请下载本版本,上个版本压成繁体了】")
+ val r = parse("【蒔乃漢化組】約會大作戰 劇場版:萬由裏審判 [GBv2][BDRip_1080p_x264_8bit][AAC]【請下載本版本,上個版本壓成繁體了】")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2289,14 +2289,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("【莳乃汉化组】约会大作战 剧场版:万由里审判 [GB][BDRip_1080p_x264_8bit][AAC]【这个其实是压成了BIG5版的。。。。。下载转v2】")
+ parse("【蒔乃漢化組】約會大作戰 劇場版:萬由裏審判 [GB][BDRip_1080p_x264_8bit][AAC]【這個其實是壓成了BIG5版的。。。。。下載轉v2】")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【蒔乃漢化組】約會大作戰 劇場版:萬由里審判 [BIG5][BDRip_1080p_x264_8bit][AAC]")
+ val r = parse("【蒔乃漢化組】約會大作戰 劇場版:萬由裏審判 [BIG5][BDRip_1080p_x264_8bit][AAC]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2304,7 +2304,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[ReinForce]約會大作戰劇場版 萬由里審判-DATE A LIVE - Mayuri Judgement (BDRip 1920x1080 x264 FLAC) [字幕内附]")
+ parse("[ReinForce]約會大作戰劇場版 萬由裏審判-DATE A LIVE - Mayuri Judgement (BDRip 1920x1080 x264 FLAC) [字幕內附]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2312,7 +2312,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("【千夏字幕組】【約會大作戰 萬由里審判_DATE_A_LIVE Mayuri Judgement】[劇場版][BDRIP_1080P][x264-Hi10P_FLAC][繁體外掛](修正字體包)")
+ parse("【千夏字幕組】【約會大作戰 萬由裏審判_DATE_A_LIVE Mayuri Judgement】[劇場版][BDRIP_1080P][x264-Hi10P_FLAC][繁體外掛](修正字體包)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2324,7 +2324,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `424572-424492-424436-424435-424395-424354-424256-424150-424129-417427`() {
kotlin.run {
val r =
- parse("【漫猫字幕组&爱恋字幕社】【约会大作战 万由里审判/DATE_A_LIVE Mayuri Judgement】[剧场版][1080P][MKV][简繁外挂][ x264_FLAC_Hi10P]")
+ parse("【漫貓字幕組&愛戀字幕社】【約會大作戰 萬由裏審判/DATE_A_LIVE Mayuri Judgement】[劇場版][1080P][MKV][簡繁外掛][ x264_FLAC_Hi10P]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2332,28 +2332,28 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("【千夏字幕組】【約會大作戰 萬由里審判_DATE_A_LIVE Mayuri Judgement】[劇場版][BDRIP_720P][x264_AAC][繁體內嵌](正式版)")
+ parse("【千夏字幕組】【約會大作戰 萬由裏審判_DATE_A_LIVE Mayuri Judgement】[劇場版][BDRIP_720P][x264_AAC][繁體內嵌](正式版)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【MGRT&幻之字幕组】约会大作战 万由里审判 [GB][1080P][PSV&PC][MP4][新人招募]")
+ val r = parse("【MGRT&幻之字幕組】約會大作戰 萬由裏審判 [GB][1080P][PSV&PC][MP4][新人招募]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【MGRT&幻之字幕组】约会大作战 万由里审判 [GB][720P][PSV&PC][MP4][新人招募]")
+ val r = parse("【MGRT&幻之字幕組】約會大作戰 萬由裏審判 [GB][720P][PSV&PC][MP4][新人招募]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【漫猫字幕组&爱恋字幕社】【约会大作战 万由里审判/DATE_A_LIVE Mayuri Judgement】[剧场版]简体][720P][x264_AAC]")
+ val r = parse("【漫貓字幕組&愛戀字幕社】【約會大作戰 萬由裏審判/DATE_A_LIVE Mayuri Judgement】[劇場版]簡體][720P][x264_AAC]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2368,21 +2368,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] 剧场版 Date A Live 约会大作战 万由里裁决 Mayuri Judgement MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] 劇場版 Date A Live 約會大作戰 萬由裏裁決 Mayuri Judgement MP4 720p")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【蒔乃漢化組】約會大作戰 劇場版:萬由里審判 [BIG5][DVDRip_720p_x264_8bit][AAC]")
+ val r = parse("【蒔乃漢化組】約會大作戰 劇場版:萬由裏審判 [BIG5][DVDRip_720p_x264_8bit][AAC]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【莳乃汉化组】约会大作战 剧场版:万由里审判 [GB][DVDRip_720p_x264_8bit][AAC]")
+ val r = parse("【蒔乃漢化組】約會大作戰 劇場版:萬由裏審判 [GB][DVDRip_720p_x264_8bit][AAC]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2390,7 +2390,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[philosophy-raws][约会大作战][BDRIP][1080p 10bit][TV 01-13+Director's cut Edition+SP][日英双语][英文字幕]")
+ parse("[philosophy-raws][約會大作戰][BDRIP][1080p 10bit][TV 01-13+Director's cut Edition+SP][日英雙語][英文字幕]")
assertEquals("01..13+SP", r.episodeRange.toString())
assertEquals("ENG, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2401,14 +2401,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `417426-406743-406031-406024-402130-397951-392118-385057-384760-383828`() {
kotlin.run {
- val r = parse("[VCB-S&philosophy-raws][约会大作战][BDRIP][1080p 10bit][TV 01-13+SP][导演剪辑版]")
+ val r = parse("[VCB-S&philosophy-raws][約會大作戰][BDRIP][1080p 10bit][TV 01-13+SP][導演剪輯版]")
assertEquals("01..13+SP", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【浩天个人发布】约会大作战第二季 BD720P MP4内嵌简体字幕")
+ val r = parse("【浩天個人發佈】約會大作戰第二季 BD720P MP4內嵌簡體字幕")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2423,7 +2423,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【浩天个人发布】约会大作战第一季 BD720P MP4内嵌简体字幕")
+ val r = parse("【浩天個人發佈】約會大作戰第一季 BD720P MP4內嵌簡體字幕")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2431,7 +2431,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("约会大作战2 Date a Live2[BDrip][1920x1080][TV11+CM5+OPED5+pv1+menu8][x264_m4a][10bit]加刘景长压制")
+ parse("約會大作戰2 Date a Live2[BDrip][1920x1080][TV11+CM5+OPED5+pv1+menu8][x264_m4a][10bit]加劉景長壓制")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2439,35 +2439,35 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("约会大作战 Date a Live[BDrip][1920x1080][TV12+OAD+CM10+OPED11+info3+menu14][x264_m4a][10bit]加刘景长压制")
+ parse("約會大作戰 Date a Live[BDrip][1920x1080][TV12+OAD+CM10+OPED11+info3+menu14][x264_m4a][10bit]加劉景長壓制")
assertEquals("OAD..OAD", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II BDRip 简繁外挂 合集")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II BDRip 簡繁外掛 合集")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II BDRip TV未放送第11话 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II BDRip TV未放送第11話 簡繁外掛")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II BDRip Vol.3-5 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II BDRip Vol.3-5 簡繁外掛")
assertEquals("03..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[异域-11番小队][约会大作战合集Date A Live][BDRIP][720P][X264-10bit_AAC][春节贺礼第十八弹]")
+ val r = parse("[異域-11番小隊][約會大作戰合集Date A Live][BDRIP][720P][X264-10bit_AAC][春節賀禮第十八彈]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2478,35 +2478,35 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `381865-378454-378453-378121-377243-377211-377068-376296-375889-375756`() {
kotlin.run {
- val r = parse("[FFF] DATE A LIVE [BD][1080p-FLAC] 约会大作战 第一季 含OVA [内封英文字幕]")
+ val r = parse("[FFF] DATE A LIVE [BD][1080p-FLAC] 約會大作戰 第一季 含OVA [內封英文字幕]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("ENG", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[U2-Rip] Date a Live II/约会大作战2期 10bit 1080p BDRip [Fin]")
+ val r = parse("[U2-Rip] Date a Live II/約會大作戰2期 10bit 1080p BDRip [Fin]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[VCB-Studio & TUcaptions] Date a Live II/约会大作战2期 10bit 1080p BDRip [Fin] 繁简外挂")
+ val r = parse("[VCB-Studio & TUcaptions] Date a Live II/約會大作戰2期 10bit 1080p BDRip [Fin] 繁簡外掛")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("《约会大作战II》(Date A Live II)[漏勺rip 720P](外挂字幕)")
+ val r = parse("《約會大作戰II》(Date A Live II)[漏勺rip 720P](外掛字幕)")
assertEquals("null", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【F宅】【BD版】约会大作战 Date a Live II 01-11【合集】 简 720P MP4")
+ val r = parse("【F宅】【BD版】約會大作戰 Date a Live II 01-11【合集】 簡 720P MP4")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2514,7 +2514,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("【莳乃字幕屋&AE漫画组&LE Project】Date A Live II 约会大作战 II - 第11话(TV未放送)[GB-BIG5-JPN][BDRip_1080p_x264_10bit][FLAC]")
+ parse("【蒔乃字幕屋&AE漫畫組&LE Project】Date A Live II 約會大作戰 II - 第11話(TV未放送)[GB-BIG5-JPN][BDRip_1080p_x264_10bit][FLAC]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2530,7 +2530,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("【莳乃字幕屋&AE漫画组&LE Project】Date A Live II 约会大作战 II - 第11话(TV未放送)[GB-JPN][1080P][PSV&PC][招募内详]")
+ parse("【蒔乃字幕屋&AE漫畫組&LE Project】Date A Live II 約會大作戰 II - 第11話(TV未放送)[GB-JPN][1080P][PSV&PC][招募內詳]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2544,7 +2544,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战 II TV未放送第11话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰 II TV未放送第11話 MP4 720p")
assertEquals("null", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2562,7 +2562,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[VCB-Studio] Date a Live/约会大作战 S1 10bit 1080p BDRip [Fin] (附CD+扫图+特典)")
+ val r = parse("[VCB-Studio] Date a Live/約會大作戰 S1 10bit 1080p BDRip [Fin] (附CD+掃圖+特典)")
assertEquals("S1", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2583,35 +2583,35 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II BDRip Vol.1-2 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II BDRip Vol.1-2 簡繁外掛")
assertEquals("01..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 BDRip 简繁外挂 合集")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 BDRip 簡繁外掛 合集")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 BDRip TV未放送第13话 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 BDRip TV未放送第13話 簡繁外掛")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 BDRip Vol.6 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 BDRip Vol.6 簡繁外掛")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][合集][BIG5][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][合集][BIG5][四月新番][720P][MP4]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2630,70 +2630,70 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `354651-354536-354503-354255-354187-354087-354083-354077-354076-354058`() {
kotlin.run {
- val r = parse("【附百度网盘】【修罗字幕组】【约会大作战 第二季】【10】【720P】【中日双语字幕】")
+ val r = parse("【附百度網盤】【修羅字幕組】【約會大作戰 第二季】【10】【720P】【中日雙語字幕】")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第01-10话 MKV 720p 简繁外挂 合集")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第01-10話 MKV 720p 簡繁外掛 合集")
assertEquals("01..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[4月新番][约会大作战II][Date A Live II][第01-10话][HEVC][MP4][无字幕]")
+ val r = parse("[4月新番][約會大作戰II][Date A Live II][第01-10話][HEVC][MP4][無字幕]")
assertEquals("01..10", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第01-10话 MP4 720p 合集")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第01-10話 MP4 720p 合集")
assertEquals("01..10", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【F宅】Date a Live II 约会大作战II【简】【合集】 720P MP4")
+ val r = parse("【F宅】Date a Live II 約會大作戰II【簡】【合集】 720P MP4")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【萌物百科字幕组】[约会大作战 第二季_Date A Live II][10][END][GB][1280×720][MP4]")
+ val r = parse("【萌物百科字幕組】[約會大作戰 第二季_Date A Live II][10][END][GB][1280×720][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【恶俗×KNA】[约会大作战 2期][Date A Live ll][10][Fin][720P][简体][MP4]")
+ val r = parse("【惡俗×KNA】[約會大作戰 2期][Date A Live ll][10][Fin][720P][簡體][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第09话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第09話 MKV 720p 簡繁外掛")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第10话 MP4 720p 完")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第10話 MP4 720p 完")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[01-10][GB_BIG5][720P][MKV][全]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[01-10][GB_BIG5][720P][MKV][全]")
assertEquals("01..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2711,7 +2711,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[01-10][GB][720P][MP4][全]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[01-10][GB][720P][MP4][全]")
assertEquals("01..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2733,7 +2733,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[10][GB][720P][MP4][完]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[10][GB][720P][MP4][完]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2747,7 +2747,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战 第二季_DATE A LIVE II][10完][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰 第二季_DATE A LIVE II][10完][簡體][720P][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2768,7 +2768,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战 第二季_DATE A LIVE II][09][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰 第二季_DATE A LIVE II][09][簡體][720P][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2779,35 +2779,35 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `353777-353776-353773-353691-353470-353436-353435-353401-353332-353295`() {
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][09][BIG5][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][09][BIG5][四月新番][720P][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][09][GB][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][09][GB][四月新番][720P][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【附百度网盘】【修罗字幕组】【约会大作战 第二季】【09】【720P】【中日双语字幕】")
+ val r = parse("【附百度網盤】【修羅字幕組】【約會大作戰 第二季】【09】【720P】【中日雙語字幕】")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【附百度网盘】【修罗字幕组】【约会大作战 第二季】【08】【720P】【中日双语字幕】")
+ val r = parse("【附百度網盤】【修羅字幕組】【約會大作戰 第二季】【08】【720P】【中日雙語字幕】")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【萌物百科字幕组】[约会大作战 第二季_Date A Live II][09][GB][1280×720][MP4](内附网盘地址)")
+ val r = parse("【萌物百科字幕組】[約會大作戰 第二季_Date A Live II][09][GB][1280×720][MP4](內附網盤地址)")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2821,21 +2821,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战 第二季_DATE A LIVE II][08][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰 第二季_DATE A LIVE II][08][簡體][720P][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第09话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第09話 MP4 720p")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【恶俗×KNA】[约会大作战 2期][Date A Live ll][09][720P][简体][MP4]")
+ val r = parse("【惡俗×KNA】[約會大作戰 2期][Date A Live ll][09][720P][簡體][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2861,7 +2861,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[09][GB][720P][MP4]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[09][GB][720P][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2875,28 +2875,28 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第08话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第08話 MKV 720p 簡繁外掛")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][08][BIG5][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][08][BIG5][四月新番][720P][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][08][GB][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][08][GB][四月新番][720P][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][07][BIG5][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][07][BIG5][四月新番][720P][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2910,14 +2910,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战 第二季_DATE A LIVE II][07][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰 第二季_DATE A LIVE II][07][簡體][720P][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][07][GB][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][07][GB][四月新番][720P][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2928,28 +2928,28 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `352551-352499-352490-352480-352461-352432-352431-352430-352420-351938`() {
kotlin.run {
- val r = parse("【萌物百科字幕组】[约会大作战 第二季_Date A Live II][08][GB][1280×720][MP4](内附网盘地址)")
+ val r = parse("【萌物百科字幕組】[約會大作戰 第二季_Date A Live II][08][GB][1280×720][MP4](內附網盤地址)")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【恶俗×KNA】[约会大作战 2期][Date A Live ll][08][720P][简体][MP4]")
+ val r = parse("【惡俗×KNA】[約會大作戰 2期][Date A Live ll][08][720P][簡體][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第08话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第08話 MP4 720p")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第07话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第07話 MKV 720p 簡繁外掛")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2971,7 +2971,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[08][GB][720P][MP4]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[08][GB][720P][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3011,28 +3011,28 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第07话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第07話 MP4 720p")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【萌物百科字幕组】[约会大作战 第二季_Date A Live II][07][GB][1280×720][MP4](内附网盘地址)")
+ val r = parse("【萌物百科字幕組】[約會大作戰 第二季_Date A Live II][07][GB][1280×720][MP4](內附網盤地址)")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【恶俗×KNA】[约会大作战 2期][Date A Live ll][07][720P][简体][MP4]")
+ val r = parse("【惡俗×KNA】[約會大作戰 2期][Date A Live ll][07][720P][簡體][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【附百度网盘】【修罗字幕组】【约会大作战 第二季】【06】【720P】【中日双语字幕】")
+ val r = parse("【附百度網盤】【修羅字幕組】【約會大作戰 第二季】【06】【720P】【中日雙語字幕】")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3046,7 +3046,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[07][GB][720P][MP4]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[07][GB][720P][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3060,7 +3060,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战 第二季_DATE A LIVE II][06][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰 第二季_DATE A LIVE II][06][簡體][720P][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3078,49 +3078,49 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `351392-351389-351138-351086-351085-350793-350735-350689-350676-350672`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战 第二季_DATE A LIVE II][05][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰 第二季_DATE A LIVE II][05][簡體][720P][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第06话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第06話 MKV 720p 簡繁外掛")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【萌物百科字幕组】[约会大作战 第二季_Date A Live II][06][GB][1280×720][MP4](内附网盘地址)")
+ val r = parse("【萌物百科字幕組】[約會大作戰 第二季_Date A Live II][06][GB][1280×720][MP4](內附網盤地址)")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][06][BIG5][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][06][BIG5][四月新番][720P][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][06][GB][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][06][GB][四月新番][720P][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第06话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第06話 MP4 720p")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【恶俗×KNA】[约会大作战 2期][Date A Live ll][06][720P][简体][MP4]")
+ val r = parse("【惡俗×KNA】[約會大作戰 2期][Date A Live ll][06][720P][簡體][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3142,7 +3142,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[06][GB][720P][MP4][内详]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[06][GB][720P][MP4][內詳]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3167,28 +3167,28 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【附百度网盘】【修罗字幕组】【约会大作战 第二季】【05】【720P】【中日双语字幕】")
+ val r = parse("【附百度網盤】【修羅字幕組】【約會大作戰 第二季】【05】【720P】【中日雙語字幕】")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第05话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第05話 MKV 720p 簡繁外掛")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][05][BIG5][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][05][BIG5][四月新番][720P][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][05][GB][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][05][GB][四月新番][720P][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3202,7 +3202,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组】约会大作战Ⅱ Date a Live Ⅱ - 05[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組】約會大作戰Ⅱ Date a Live Ⅱ - 05[GB][720P][PSV&PC][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3216,7 +3216,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组】约会大作战Ⅱ Date a Live Ⅱ - 04[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組】約會大作戰Ⅱ Date a Live Ⅱ - 04[GB][720P][PSV&PC][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3234,28 +3234,28 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组】约会大作战Ⅱ Date a Live Ⅱ - 03_v2[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組】約會大作戰Ⅱ Date a Live Ⅱ - 03_v2[GB][720P][PSV&PC][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【萌物百科字幕组】[约会大作战 第二季_Date A Live II][05][GB][1280×720][MP4]")
+ val r = parse("【萌物百科字幕組】[約會大作戰 第二季_Date A Live II][05][GB][1280×720][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【恶俗×KNA】[约会大作战 2期][Date A Live ll][05][720P][简体][MP4]")
+ val r = parse("【惡俗×KNA】[約會大作戰 2期][Date A Live ll][05][720P][簡體][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第05话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第05話 MP4 720p")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3269,7 +3269,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【附百度网盘】【修罗字幕组】【约会大作战 第二季】【04】【720P】【中日双语字幕】")
+ val r = parse("【附百度網盤】【修羅字幕組】【約會大作戰 第二季】【04】【720P】【中日雙語字幕】")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3283,7 +3283,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[05][GB][720P][MP4][内详]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[05][GB][720P][MP4][內詳]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3301,21 +3301,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `349681-349679-349546-349522-349521-349470-349195-349114-348910-348854`() {
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][04][BIG5][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][04][BIG5][四月新番][720P][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][04][GB][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][04][GB][四月新番][720P][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第04话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第04話 MKV 720p 簡繁外掛")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3329,35 +3329,35 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战 第二季_DATE A LIVE II][04][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰 第二季_DATE A LIVE II][04][簡體][720P][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【萌物百科字幕组】[约会大作战 第二季_Date A Live II][04][GB][1280×720][MP4](内附网盘地址)")
+ val r = parse("【萌物百科字幕組】[約會大作戰 第二季_Date A Live II][04][GB][1280×720][MP4](內附網盤地址)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【附百度网盘】【修罗字幕组】【约会大作战 第二季】【03】【720P】【中日双语字幕】")
+ val r = parse("【附百度網盤】【修羅字幕組】【約會大作戰 第二季】【03】【720P】【中日雙語字幕】")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第04话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第04話 MP4 720p")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【恶俗×KNA】[约会大作战 2期][Date A Live ll][04][720P][简体][MP4]")
+ val r = parse("【惡俗×KNA】[約會大作戰 2期][Date A Live ll][04][720P][簡體][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3375,7 +3375,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `348802-348797-348796-348793-348466-348465-348422-348420-348334-347912`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][4月新番] Date A Live II 约会大作战II 第03话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社][4月新番] Date A Live II 約會大作戰II 第03話 MKV 720p 簡繁外掛")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3389,7 +3389,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[04][GB][720P][MP4]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[04][GB][720P][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3410,35 +3410,35 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组】约会大作战Ⅱ Date a Live Ⅱ - 03[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組】約會大作戰Ⅱ Date a Live Ⅱ - 03[GB][720P][PSV&PC][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][03][BIG5][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][03][BIG5][四月新番][720P][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][03][GB][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][03][GB][四月新番][720P][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【萌物百科字幕组】[约会大作战 第二季_Date A Live II][03][GB][1280×720][MP4](内附网盘地址)")
+ val r = parse("【萌物百科字幕組】[約會大作戰 第二季_Date A Live II][03][GB][1280×720][MP4](內附網盤地址)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【恶俗×KNA】[约会大作战 2期][Date A Live ll][03][720P][简体][MP4]")
+ val r = parse("【惡俗×KNA】[約會大作戰 2期][Date A Live ll][03][720P][簡體][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3463,7 +3463,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战 第二季_DATE A LIVE II][03][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰 第二季_DATE A LIVE II][03][簡體][720P][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3477,7 +3477,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[03][GB][720P][MP4][V2]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[03][GB][720P][MP4][V2]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3498,14 +3498,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[03][GB][720P][MP4]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[03][GB][720P][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][4月新番] Date A Live II 约会大作战II 第02话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社][4月新番] Date A Live II 約會大作戰II 第02話 MKV 720p 簡繁外掛")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3530,14 +3530,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【附百度网盘】【修罗字幕组】【约会大作战 第二季】【01】【720P】【中日双语字幕】")
+ val r = parse("【附百度網盤】【修羅字幕組】【約會大作戰 第二季】【01】【720P】【中日雙語字幕】")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【附百度网盘】【修罗字幕组】【约会大作战 第二季】【02】【720P】【中日双语字幕】")
+ val r = parse("【附百度網盤】【修羅字幕組】【約會大作戰 第二季】【02】【720P】【中日雙語字幕】")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3551,14 +3551,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][02][BIG5][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][02][BIG5][四月新番][720P][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][02][GB][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][02][GB][四月新番][720P][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3572,7 +3572,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战 第二季_DATE A LIVE II][02][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰 第二季_DATE A LIVE II][02][簡體][720P][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3586,7 +3586,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组】约会大作战Ⅱ Date a Live Ⅱ - 02[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組】約會大作戰Ⅱ Date a Live Ⅱ - 02[GB][720P][PSV&PC][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3597,21 +3597,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `347018-346887-346873-346852-346798-346774-346657-346295-346176-346128`() {
kotlin.run {
- val r = parse("【萌物百科字幕组】[约会大作战 第二季_Date A Live II][02][GB][1280×720][MP4](内附网盘地址)")
+ val r = parse("【萌物百科字幕組】[約會大作戰 第二季_Date A Live II][02][GB][1280×720][MP4](內附網盤地址)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【恶俗×KNA】[约会大作战 2期][Date A Live ll][02][720P][简体][MP4]")
+ val r = parse("【惡俗×KNA】[約會大作戰 2期][Date A Live ll][02][720P][簡體][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][4月新番] Date A Live II 约会大作战II 第02话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社][4月新番] Date A Live II 約會大作戰II 第02話 MP4 720p")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3632,28 +3632,28 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[02][GB][720P][MP4]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[02][GB][720P][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][4月新番] Date A Live II 约会大作战II 第01话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社][4月新番] Date A Live II 約會大作戰II 第01話 MKV 720p 簡繁外掛")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][01][BIG5][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][01][BIG5][四月新番][720P][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][01][GB][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][01][GB][四月新番][720P][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3685,14 +3685,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组】约会大作战Ⅱ Date a Live Ⅱ - 01[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組】約會大作戰Ⅱ Date a Live Ⅱ - 01[GB][720P][PSV&PC][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【恶俗×KNA】[约会大作战 2期][Date A Live ll][01][720P][简体][MP4]")
+ val r = parse("【惡俗×KNA】[約會大作戰 2期][Date A Live ll][01][720P][簡體][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3706,21 +3706,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][4月新番] Date A Live II 约会大作战II 第01话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社][4月新番] Date A Live II 約會大作戰II 第01話 MP4 720p")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[萌物百科字幕组][约会大作战 第二季_Date A Live II][01][GB][1280×720][MP4](内附网盘地址)")
+ val r = parse("[萌物百科字幕組][約會大作戰 第二季_Date A Live II][01][GB][1280×720][MP4](內附網盤地址)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战 第二季_DATE A LIVE II][01][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰 第二季_DATE A LIVE II][01][簡體][720P][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3752,7 +3752,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[01][GB][720P][MP4]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[01][GB][720P][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3824,7 +3824,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `335868-335867-335447-332129-332078-331843-330563-329968-329719-329654`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][13话_OVA][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][13話_OVA][簡體][720P][MP4]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3867,7 +3867,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 TV未放送第13话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 TV未放送第13話 MP4 720p")
assertEquals("null", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3881,7 +3881,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[异域-11番小队][约会大作战Date a Live][BDRIP][720P][X264_AAC]")
+ val r = parse("[異域-11番小隊][約會大作戰Date a Live][BDRIP][720P][X264_AAC]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3899,7 +3899,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `329630-329601-329504-329320-329308-329170-325935-325791-323712-323325`() {
kotlin.run {
- val r = parse("【极影字幕社】★约会大作战_DATE A LIVE 第13话(TV未放送) 720p GB MP4")
+ val r = parse("【極影字幕社】★約會大作戰_DATE A LIVE 第13話(TV未放送) 720p GB MP4")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3914,14 +3914,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第13话_TV未放送][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第13話_TV未放送][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组】约会大作战 Date a Live - 13[GB][720P][PSV&PC][MP4](成員招募)")
+ val r = parse("【幻之字幕組】約會大作戰 Date a Live - 13[GB][720P][PSV&PC][MP4](成員招募)")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3949,21 +3949,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 BDRip Vol.5 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 BDRip Vol.5 簡繁外掛")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 BDRip Vol.4 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 BDRip Vol.4 簡繁外掛")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 BDRip Vol.3 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 BDRip Vol.3 簡繁外掛")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3974,14 +3974,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `323220-316264-315091-315092-315090-313005-312310-309228-309227-309215`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 BDRip Vol.1-2 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 BDRip Vol.1-2 簡繁外掛")
assertEquals("01..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【华盟字幕社&澄空学园】[约会大作战][1-12END] [BIG5][RMVB][848X480]")
+ val r = parse("【華盟字幕社&澄空學園】[約會大作戰][1-12END] [BIG5][RMVB][848X480]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3995,7 +3995,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][全12话][简体][720P][MP4](合集版本)")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][全12話][簡體][720P][MP4](合集版本)")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4016,7 +4016,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("◆[漫游FREEWIND工作室] DATE A LIVE 約會大作戰 1080P BDRIP BD2 第3~4話+SP")
+ val r = parse("◆[漫遊FREEWIND工作室] DATE A LIVE 約會大作戰 1080P BDRIP BD2 第3~4話+SP")
assertEquals("03..04+SP", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4070,7 +4070,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("◆[漫游FREEWIND工作室] DATE A LIVE 約會大作戰 1080P BDRIP 第1~2話+SP")
+ val r = parse("◆[漫遊FREEWIND工作室] DATE A LIVE 約會大作戰 1080P BDRIP 第1~2話+SP")
assertEquals("01..02+SP", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4091,7 +4091,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第01-12话 MKV 720p 简繁外挂 合集")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第01-12話 MKV 720p 簡繁外掛 合集")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4112,7 +4112,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第01-12话 MP4 720p 合集")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第01-12話 MP4 720p 合集")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4130,7 +4130,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第01-12話 完結合集 简繁外挂字幕 X264_AAC 720P MKV")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第01-12話 完結合集 簡繁外掛字幕 X264_AAC 720P MKV")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4144,28 +4144,28 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live 01-12[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live 01-12[GB][720P][PSV&PC][MP4]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live 01-12[BIG5][480P][PSP&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live 01-12[BIG5][480P][PSP&PC][MP4]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 12[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 12[GB][720P][PSV&PC][MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 12[BIG5][480P][PSP&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 12[BIG5][480P][PSP&PC][MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4197,21 +4197,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `306991-306969-306965-306958-306957-306951-306928-306916-306911-306910`() {
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 约会大作战】第12话 完结 GB简体 720P MP4")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第12話 完結 GB簡體 720P MP4")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第11话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第11話 MKV 720p 簡繁外掛")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第12话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第12話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4225,7 +4225,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][12完][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][12完][簡體][720P][MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4254,14 +4254,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第12话 MP4 720p 完")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第12話 MP4 720p 完")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战_DATE A LIVE第12话 720p GB MP4[第一季完]")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE第12話 720p GB MP4[第一季完]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4286,21 +4286,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 11[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 11[GB][720P][PSV&PC][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 11[BIG5][480P][PSP&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 11[BIG5][480P][PSP&PC][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第11话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第11話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4335,7 +4335,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 约会大作战】第11话 GB简体 720P MP4")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第11話 GB簡體 720P MP4")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4346,7 +4346,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `306150-306138-306128-306115-306112-306111-306109-306108-306027-306019`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][11][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][11][簡體][720P][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4374,7 +4374,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战_DATE A LIVE第11话 720p GB MP4")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE第11話 720p GB MP4")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4388,7 +4388,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第11话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第11話 MP4 720p")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4403,7 +4403,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第10话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第10話 MKV 720p 簡繁外掛")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4449,14 +4449,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 10[BIG5][480P][PSP&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 10[BIG5][480P][PSP&PC][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 10[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 10[GB][720P][PSV&PC][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4470,7 +4470,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第09话 MKV 720p 简繁外挂 附EDPV")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第09話 MKV 720p 簡繁外掛 附EDPV")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4484,7 +4484,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 约会大作战】第10话 GB简体 720P MP4")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第10話 GB簡體 720P MP4")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4495,14 +4495,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `305390-305372-305371-305366-305347-305346-305342-305340-305333-305332`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第10话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第10話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][10][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][10][簡體][720P][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4530,7 +4530,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战_DATE A LIVE第10话 720p GB MP4")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE第10話 720p GB MP4")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4551,7 +4551,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第10话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第10話 MP4 720p")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4591,14 +4591,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 09[BIG5][480P][PSP&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 09[BIG5][480P][PSP&PC][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 09[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 09[GB][720P][PSV&PC][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4619,14 +4619,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 约会大作战】第09话 GB简体 720P MP4")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第09話 GB簡體 720P MP4")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第09话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第09話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4644,14 +4644,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `304508-304482-304481-304473-304472-304467-304460-304309-304284-304171`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战_DATE A LIVE第09话 720p GB MP4")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE第09話 720p GB MP4")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][09][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][09][簡體][720P][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4679,7 +4679,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第09话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第09話 MP4 720p")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4694,7 +4694,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第08话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第08話 MKV 720p 簡繁外掛")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4726,7 +4726,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第08話 简繁外挂字幕 X264_AAC 720P MKV")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第08話 簡繁外掛字幕 X264_AAC 720P MKV")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4754,14 +4754,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 08[BIG5][480P][PSP&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 08[BIG5][480P][PSP&PC][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 08[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 08[GB][720P][PSV&PC][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4775,7 +4775,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第07话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第07話 MKV 720p 簡繁外掛")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4793,7 +4793,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `303616-303612-303593-303568-303567-303555-303553-303546-303544-303543`() {
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 约会大作战】第08话 GB简体 720P MP4")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第08話 GB簡體 720P MP4")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4807,14 +4807,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第08话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第08話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][08][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][08][簡體][720P][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4849,14 +4849,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战_DATE A LIVE第08话 720p GB MP4")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE第08話 720p GB MP4")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第08话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第08話 MP4 720p")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4889,14 +4889,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第06话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第06話 MKV 720p 簡繁外掛")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第07話 简繁外挂字幕 X264_AAC 720P MKV")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第07話 簡繁外掛字幕 X264_AAC 720P MKV")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4942,21 +4942,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `302790-302783-302775-302758-302757-302753-302746-302737-302736-302730`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战_DATE A LIVE第07话 720p GB MP4")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE第07話 720p GB MP4")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 07[BIG5][480P][PSP&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 07[BIG5][480P][PSP&PC][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 07[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 07[GB][720P][PSV&PC][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4970,14 +4970,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 约会大作战】第07话 GB简体 720P MP4")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第07話 GB簡體 720P MP4")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第07话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第07話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4991,7 +4991,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][07][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][07][簡體][720P][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5016,7 +5016,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `302718-302717-302555-302386-302385-302347-302013-302012-301971-301969`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第07话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第07話 MP4 720p")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5031,7 +5031,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第06話 简繁外挂字幕 X264_AAC 720P MKV")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第06話 簡繁外掛字幕 X264_AAC 720P MKV")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5066,21 +5066,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 约会大作战】第06话 GB简体 720P MP4")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第06話 GB簡體 720P MP4")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 06[BIG5][480P][PSP&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 06[BIG5][480P][PSP&PC][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 06[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 06[GB][720P][PSV&PC][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5091,14 +5091,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `301965-301964-301952-301938-301937-301917-301914-301904-301903-301899`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第06话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第06話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第05话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第05話 MKV 720p 簡繁外掛")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5112,7 +5112,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][06][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][06][簡體][720P][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5155,7 +5155,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第06话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第06話 MP4 720p")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5166,7 +5166,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `301895-301629-301581-301501-301500-301395-301351-301350-301349-301200`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战_DATE A LIVE第06话 720p GB MP4")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE第06話 720p GB MP4")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5180,7 +5180,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第05話 简繁外挂字幕 X264_AAC 720P MKV")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第05話 簡繁外掛字幕 X264_AAC 720P MKV")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5215,21 +5215,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 05[BIG5][480P][PSP&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 05[BIG5][480P][PSP&PC][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 05[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 05[GB][720P][PSV&PC][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第04话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第04話 MKV 720p 簡繁外掛")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5254,21 +5254,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 约会大作战】第05话 GB简体 720P MP4")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第05話 GB簡體 720P MP4")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第05话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第05話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][05][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][05][簡體][720P][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5321,14 +5321,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第05话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第05話 MP4 720p")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战_DATE A LIVE第05话 720p GB MP4")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE第05話 720p GB MP4")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5343,7 +5343,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第04話 简繁外挂字幕 X264_AAC 720P MKV")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第04話 簡繁外掛字幕 X264_AAC 720P MKV")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5389,7 +5389,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `300251-300187-300161-300160-300129-300127-300102-300085-300084-300072`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第04话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第04話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5403,14 +5403,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 04[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 04[GB][720P][PSV&PC][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 04[BIG5][480P][PSP&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 04[BIG5][480P][PSP&PC][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5424,21 +5424,21 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 约会大作战】第04话 GB简体 720P MP4")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第04話 GB簡體 720P MP4")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][4月新番] Date A Live 约会大作战 第03话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社][4月新番] Date A Live 約會大作戰 第03話 MKV 720p 簡繁外掛")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][04][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][04][簡體][720P][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5492,42 +5492,42 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][4月新番] Date A Live 约会大作战 第04话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社][4月新番] Date A Live 約會大作戰 第04話 MP4 720p")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战_DATE A LIVE第04话 720p GB MP4")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE第04話 720p GB MP4")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第03話 简繁外挂字幕 X264_AAC 720P MKV")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第03話 簡繁外掛字幕 X264_AAC 720P MKV")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 03[BIG5][480P][PSP&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 03[BIG5][480P][PSP&PC][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 03[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 03[GB][720P][PSV&PC][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 02[BIG5][480P][PSP&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 02[BIG5][480P][PSP&PC][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5538,7 +5538,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `299642-299354-299333-299301-299295-299275-299265-299264-299249-299194`() {
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 02[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 02[GB][720P][PSV&PC][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5573,14 +5573,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第03话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第03話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][03][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][03][簡體][720P][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5601,7 +5601,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][4月新番] Date A Live 约会大作战 第02话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社][4月新番] Date A Live 約會大作戰 第02話 MKV 720p 簡繁外掛")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5619,7 +5619,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 约会大作战】第03话 GB简体 720P MP4")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第03話 GB簡體 720P MP4")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5648,14 +5648,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战_DATE A LIVE第03话 720p GB MP4")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE第03話 720p GB MP4")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][4月新番] Date A Live 约会大作战 第03话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社][4月新番] Date A Live 約會大作戰 第03話 MP4 720p")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5676,7 +5676,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第02話 简繁外挂字幕 X264_AAC 720P MKV")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第02話 簡繁外掛字幕 X264_AAC 720P MKV")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5687,7 +5687,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `298722-298514-298512-298433-298432-298428-298328-298327-298326-298313`() {
kotlin.run {
- val r = parse("【风之圣殿字幕组】【★四月新番】[约会大作战 DATE A LIVE][02][BIG5][1280X720][Mp4]")
+ val r = parse("【風之聖殿字幕組】【★四月新番】[約會大作戰 DATE A LIVE][02][BIG5][1280X720][Mp4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5715,7 +5715,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 约会大作战】第02话 GB简体 720P MP4")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第02話 GB簡體 720P MP4")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5729,14 +5729,14 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第02话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第02話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][02][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][02][簡體][720P][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5776,28 +5776,28 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE 第02話 720p BIG5 MP4【字幕社招募片源录制】")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE 第02話 720p BIG5 MP4【字幕社招募片源錄製】")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战_DATE A LIVE第02话 720p GB【字幕社招募片源录制】")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE第02話 720p GB【字幕社招募片源錄製】")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][4月新番] Date A Live 约会大作战 第02话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社][4月新番] Date A Live 約會大作戰 第02話 MP4 720p")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][4月新番] Date A Live 约会大作战 第01话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社][4月新番] Date A Live 約會大作戰 第01話 MKV 720p 簡繁外掛")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5825,7 +5825,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第01話 简繁外挂字幕 X264_AAC 720P MKV")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第01話 簡繁外掛字幕 X264_AAC 720P MKV")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5850,7 +5850,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第01话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第01話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5886,7 +5886,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 约会大作战】第01话 GB简体 720P")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第01話 GB簡體 720P")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5900,7 +5900,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][01][簡体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][01][簡體][720P][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5918,7 +5918,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战 第01话[720p] GB MP4")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰 第01話[720p] GB MP4")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5946,7 +5946,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战 第01话[先行版][nico 854x480] GB MP4")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰 第01話[先行版][nico 854x480] GB MP4")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5967,7 +5967,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【星尘字幕组】1月迷你新番【怪盗丽奈 Kaitou Reinya】【08 诶~丽奈约会大作战】【RV10】")
+ val r = parse("【星塵字幕組】1月迷你新番【怪盜麗奈 Kaitou Reinya】【08 誒~麗奈約會大作戰】【RV10】")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
diff --git "a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\347\273\210\346\234\253\345\210\227\350\275\246\345\216\273\345\276\200\344\275\225\346\226\271.kt" "b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\347\273\210\346\234\253\345\210\227\350\275\246\345\216\273\345\276\200\344\275\225\346\226\271.kt"
index a3ebab0fb..bc9539ffa 100644
--- "a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\347\273\210\346\234\253\345\210\227\350\275\246\345\216\273\345\276\200\344\275\225\346\226\271.kt"
+++ "b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\347\273\210\346\234\253\345\210\227\350\275\246\345\216\273\345\276\200\344\275\225\346\226\271.kt"
@@ -26,7 +26,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `670442-670441-670440-669853-669852-669851-669084-669083-669082-668544`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [08][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [08][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -34,7 +34,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [08][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [08][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -42,7 +42,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [08][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [08][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -50,7 +50,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [07][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [07][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -58,7 +58,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [07][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [07][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -66,7 +66,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [07][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [07][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -74,7 +74,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [06][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [06][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -82,7 +82,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [06][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [06][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -90,7 +90,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [06][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [06][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -98,7 +98,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [05][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [05][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -110,7 +110,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `668543-668542-668092-668034-668033-667470-667469-667468-666692-666691`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [05][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [05][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -118,7 +118,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [05][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [05][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -126,7 +126,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [04][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [04][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -134,7 +134,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [04][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [04][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -142,7 +142,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [04][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [04][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -150,7 +150,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [03][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [03][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -158,7 +158,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [03][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [03][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -166,7 +166,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [03][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [03][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -174,7 +174,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [02][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [02][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -182,7 +182,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [02][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [02][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -194,7 +194,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `666690-666212-666211-666210-666067`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [02][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [02][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -202,7 +202,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [01v2][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [01v2][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -210,7 +210,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [01v2][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [01v2][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -218,7 +218,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [01v2][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [01v2][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -226,7 +226,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
}
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [01][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [01][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
diff --git "a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\350\277\267\345\256\253\351\245\255.kt" "b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\350\277\267\345\256\253\351\245\255.kt"
index 82ded06e7..a1e54a4d0 100644
--- "a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\350\277\267\345\256\253\351\245\255.kt"
+++ "b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\350\277\267\345\256\253\351\245\255.kt"
@@ -32,7 +32,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【21】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【21】【GB_MP4】【1920X1080】")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -46,21 +46,21 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【21】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【21】【GB_MP4】【1280X720】")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [20][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [20][簡體雙語][1080p]招募翻譯")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [20][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [20][1080p][簡繁內封]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -74,7 +74,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [20][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [20][1080p][簡體內嵌]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -82,7 +82,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 20 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 20 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -102,7 +102,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
public fun `670076-669908-669907-669906-669905-669845-669844-669364-669296-669295`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][20][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][20][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -116,7 +116,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【20】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【20】【GB_MP4】【1920X1080】")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -130,21 +130,21 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【20】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【20】【GB_MP4】【1280X720】")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [19][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [19][簡體雙語][1080p]招募翻譯")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [18][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [18][簡體雙語][1080p]招募翻譯")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -152,7 +152,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 19v2 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 19v2 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -168,7 +168,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][19][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][19][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -179,7 +179,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `669290-669289-669288-669202-669201-669200-669199-668901-668900-668899`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [19][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [19][1080p][簡繁內封]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -193,7 +193,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [19][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [19][1080p][簡體內嵌]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -207,7 +207,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【19】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【19】【GB_MP4】【1920X1080】")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -221,14 +221,14 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【19】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【19】【GB_MP4】【1280X720】")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [18][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [18][1080p][簡繁內封]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -242,7 +242,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [18][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [18][1080p][簡體內嵌]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -253,14 +253,14 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `668763-668762-668761-668722-668721-668697-668638-668637-668636-668635`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][17][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][17][x264 1080p][CHT]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][17][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][17][x264 1080p][CHS]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -268,7 +268,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 18 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 18 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -284,14 +284,14 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][18][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][18][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [17][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [17][簡體雙語][1080p]招募翻譯")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -305,7 +305,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【18】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【18】【GB_MP4】【1920X1080】")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -319,7 +319,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【18】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【18】【GB_MP4】【1280X720】")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -330,7 +330,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `668567-668566-668565-668293-668279-668278-668196-668195-668191-668190`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [17v2][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [17v2][1080p][簡繁內封]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -344,7 +344,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [17v2][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [17v2][1080p][簡體內嵌]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -352,7 +352,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 17 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 17 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -368,7 +368,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][17][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][17][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -382,7 +382,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【17】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【17】【GB_MP4】【1920X1080】")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -396,7 +396,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【17】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【17】【GB_MP4】【1280X720】")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -407,7 +407,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `668183-668060-668029-668028-667774-667772-667771-667728-667704-667703`() {
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [16][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [16][簡體雙語][1080p]招募翻譯")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -415,28 +415,28 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[DBD-Raws][迷宫饭/Dungeon Meshi/ダンジョン飯][01-06TV+特典映像][BOX1][1080P][BDRip][HEVC-10bit][FLAC][MKV]")
+ parse("[DBD-Raws][迷宮飯/Dungeon Meshi/ダンジョン飯][01-06TV+特典映像][BOX1][1080P][BDRip][HEVC-10bit][FLAC][MKV]")
assertEquals("01..06", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][16][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][16][x264 1080p][CHT]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][16][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][16][x264 1080p][CHS]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [16][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [16][1080p][簡繁內封]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -450,7 +450,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [16][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [16][1080p][簡體內嵌]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -458,7 +458,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 16 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 16 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -474,7 +474,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][16][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][16][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -485,7 +485,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `667604-667602-667597-667595-667535-667474-667473-667445-667367-667249`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【16】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【16】【GB_MP4】【1920X1080】")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -506,35 +506,35 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【16】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【16】【GB_MP4】【1280X720】")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [15][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [15][簡體雙語][1080p]招募翻譯")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][15][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][15][x264 1080p][CHT]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][15][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][15][x264 1080p][CHS]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [14][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [14][簡體雙語][1080p]招募翻譯")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -542,14 +542,14 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 15 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 15 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [15][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [15][1080p][簡繁內封]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -567,7 +567,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [15][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [15][1080p][簡體內嵌]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -581,7 +581,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社][1月新番][迷宫饭][Dungeon Meshi][06][1080P][MP4][简日双语]")
+ val r = parse("[愛戀字幕社][1月新番][迷宮飯][Dungeon Meshi][06][1080P][MP4][簡日雙語]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -597,7 +597,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][15][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][15][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -611,7 +611,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【15】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【15】【GB_MP4】【1920X1080】")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -625,7 +625,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【15】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【15】【GB_MP4】【1280X720】")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -636,35 +636,35 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `666874-666873-666871-666870-666365-666364-666363-666360-666283-666243`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][14][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][14][x264 1080p][CHT]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][14][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][14][x264 1080p][CHS]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][13][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][13][x264 1080p][CHT]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][13][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][13][x264 1080p][CHS]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [14][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [14][1080p][簡繁內封]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -678,14 +678,14 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [14][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [14][1080p][簡體內嵌]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [13][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [13][簡體雙語][1080p]招募翻譯")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -693,7 +693,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 14 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 14 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -713,7 +713,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
public fun `666242-666136-666135-666134-666133-665797-665785-665784-665781-665780`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][14][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][14][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -727,7 +727,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【14】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【14】【GB_MP4】【1920X1080】")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -741,35 +741,35 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【14】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【14】【GB_MP4】【1280X720】")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [12][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [12][簡體雙語][1080p]招募翻譯")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][12][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][12][x264 1080p][CHT]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][12][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][12][x264 1080p][CHS]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [13][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [13][1080p][簡繁內封]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -787,7 +787,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `665779-665756-665727-665726-665686-665684-665683-665682-665621-665571`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [13][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [13][1080p][簡體內嵌]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -795,7 +795,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 13 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 13 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -811,7 +811,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][13][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][13][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -825,7 +825,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【13】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【13】【GB_MP4】【1920X1080】")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -839,14 +839,14 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【13】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【13】【GB_MP4】【1280X720】")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [11][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [11][簡體雙語][1080p]招募翻譯")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -864,14 +864,14 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `665570-665463-665461-665460-665346-665345-665318-665311-665310-665239`() {
kotlin.run {
- val r = parse("[爱恋字幕社][1月新番][迷宫饭][Dungeon Meshi][05][1080P][MP4][简日双语]")
+ val r = parse("[愛戀字幕社][1月新番][迷宮飯][Dungeon Meshi][05][1080P][MP4][簡日雙語]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [12][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [12][1080p][簡繁內封]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -885,7 +885,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [12][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [12][1080p][簡體內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -899,7 +899,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社][1月新番][迷宫饭][Dungeon Meshi][04][1080P][MP4][简日双语]")
+ val r = parse("[愛戀字幕社][1月新番][迷宮飯][Dungeon Meshi][04][1080P][MP4][簡日雙語]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -907,7 +907,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 12 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 12 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -923,7 +923,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][12][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][12][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -941,14 +941,14 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `665238-665237-665236-665136-665135-664998-664997-664996-664887-664886`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【12】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【12】【GB_MP4】【1280X720】")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【12】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【12】【GB_MP4】【1920X1080】")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -962,21 +962,21 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][11][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][11][x264 1080p][CHT]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][11][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][11][x264 1080p][CHS]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [11][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [11][1080p][簡繁內封]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -990,7 +990,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [11][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [11][1080p][簡體內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -998,7 +998,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 11 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 11 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1018,7 +1018,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
public fun `664885-664850-664849-664848-664847-664840-664782-664728-664727-664726`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][11][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][11][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1032,7 +1032,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【11】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【11】【GB_MP4】【1920X1080】")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1046,14 +1046,14 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【11】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【11】【GB_MP4】【1280X720】")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [10][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [10][簡體雙語][1080p]招募翻譯")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1061,14 +1061,14 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 10 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 10 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [10][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [10][1080p][簡繁內封]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1082,7 +1082,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [10][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [10][1080p][簡體內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1100,21 +1100,21 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社][1月新番][迷宫饭][Dungeon Meshi][03][1080P][MP4][简日双语]")
+ val r = parse("[愛戀字幕社][1月新番][迷宮飯][Dungeon Meshi][03][1080P][MP4][簡日雙語]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][10][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][10][x264 1080p][CHT]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][10][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][10][x264 1080p][CHS]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1130,7 +1130,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][10][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][10][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1144,7 +1144,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【10】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【10】【GB_MP4】【1920X1080】")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1158,7 +1158,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【10】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【10】【GB_MP4】【1280X720】")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1169,14 +1169,14 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `664299-664298-664289-664288-664165-664146-663992-663991-663990-663949`() {
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [09][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [09][簡體雙語][1080p]招募翻譯")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [08][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [08][簡體雙語][1080p]招募翻譯")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1190,14 +1190,14 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社][1月新番][迷宫饭][Dungeon Meshi][02][1080P][MP4][简日双语]")
+ val r = parse("[愛戀字幕社][1月新番][迷宮飯][Dungeon Meshi][02][1080P][MP4][簡日雙語]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [07][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [07][簡體雙語][1080p]招募翻譯")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1205,14 +1205,14 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 09 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 09 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [09][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [09][1080p][簡繁內封]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1226,14 +1226,14 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [09][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [09][1080p][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][09][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][09][x264 1080p][CHT]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1244,7 +1244,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `663948-663878-663877-663857-663856-663855-663854-663851-663602-663601`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][09][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][09][x264 1080p][CHS]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1260,7 +1260,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][09][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][09][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1274,7 +1274,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【09】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【09】【GB_MP4】【1920X1080】")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1288,28 +1288,28 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【09】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【09】【GB_MP4】【1280X720】")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [06][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [06][簡體雙語][1080p]招募翻譯")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][08][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][08][x264 1080p][CHT]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][08][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][08][x264 1080p][CHS]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1320,7 +1320,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `663572-663571-663570-663455-663375-663374-663350-663349-663348-663347`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [08][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [08][1080p][簡繁內封]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1334,7 +1334,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [08][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [08][1080p][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1342,7 +1342,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 08 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 08 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1358,7 +1358,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][08][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][08][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1372,7 +1372,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【08】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【08】【GB_MP4】【1920X1080】")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1386,7 +1386,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【08】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【08】【GB_MP4】【1280X720】")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1397,21 +1397,21 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `663133-663132-663106-663105-663104-662978-662977-662912-662907-662906`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][07][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][07][x264 1080p][CHS]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][07][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][07][x264 1080p][CHT]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [07][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [07][1080p][簡繁內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1425,7 +1425,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [07][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [07][1080p][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1439,7 +1439,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社][1月新番][迷宫饭][Dungeon Meshi][01][1080P][MP4][简日双语]")
+ val r = parse("[愛戀字幕社][1月新番][迷宮飯][Dungeon Meshi][01][1080P][MP4][簡日雙語]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1447,7 +1447,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 07 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 07 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1463,7 +1463,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][07][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][07][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1481,7 +1481,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【07】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【07】【GB_MP4】【1920X1080】")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1495,14 +1495,14 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【07】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【07】【GB_MP4】【1280X720】")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [06][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [06][1080p][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1516,21 +1516,21 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [06][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [06][1080p][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][06][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][06][x264 1080p][CHT]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][06][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][06][x264 1080p][CHS]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1538,7 +1538,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 06 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 06 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1558,7 +1558,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][06][1080p][简日双语][招募翻译]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][06][1080p][簡日雙語][招募翻譯]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1572,7 +1572,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【06】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【06】【GB_MP4】【1920X1080】")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1586,21 +1586,21 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【06】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【06】【GB_MP4】【1280X720】")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [05][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [05][簡體雙語][1080p]招募翻譯")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [05][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [05][1080p][簡繁內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1614,7 +1614,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [05][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [05][1080p][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1625,14 +1625,14 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `662083-662082-661962-661959-661958-661907-661906-661904-661903-661841`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][05][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][05][x264 1080p][CHT]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][05][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][05][x264 1080p][CHS]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1640,7 +1640,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 05 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 05 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1656,7 +1656,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][05][1080p][简日双语][招募翻译]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][05][1080p][簡日雙語][招募翻譯]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1677,21 +1677,21 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【05】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【05】【GB_MP4】【1920X1080】")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【05】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【05】【GB_MP4】【1280X720】")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [04][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [04][簡體雙語][1080p]招募翻譯")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1702,7 +1702,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `661672-661671-661670-661648-661647-661638-661607-661470-661469-661438`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [04][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [04][1080p][簡繁內封]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1716,21 +1716,21 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [04][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [04][1080p][簡體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][04][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][04][x264 1080p][CHS]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][04][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][04][x264 1080p][CHT]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1738,7 +1738,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 04v2 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 04v2 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1746,7 +1746,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 04 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 04 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1762,7 +1762,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][04][1080p][简日双语][招募翻译]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][04][1080p][簡日雙語][招募翻譯]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1780,7 +1780,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `661436-661434-661433-661307-661184-661183-661182-661181-661164-661163`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【04】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【04】【GB_MP4】【1920X1080】")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1794,56 +1794,56 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【04】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【04】【GB_MP4】【1280X720】")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [03][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [03][簡體雙語][1080p]招募翻譯")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][03][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][03][x264 1080p][CHT]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][03][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][03][x264 1080p][CHS]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][02][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][02][x264 1080p][CHT]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][02][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][02][x264 1080p][CHS]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][03][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][03][x264 1080p][CHT]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][03][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][03][x264 1080p][CHS]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1854,21 +1854,21 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `661162-661161-661103-661102-661101-660921-660889-660888-660877-660876`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][02][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][02][x264 1080p][CHT]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][02][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][02][x264 1080p][CHS]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [03][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [03][1080p][簡繁內封]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1882,7 +1882,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [03][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [03][1080p][簡體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1890,7 +1890,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 03 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 03 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1906,7 +1906,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][03][1080p][简日双语][招募翻译]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][03][1080p][簡日雙語][招募翻譯]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1920,7 +1920,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【03】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【03】【GB_MP4】【1920X1080】")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1938,28 +1938,28 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【03】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【03】【GB_MP4】【1280X720】")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [02][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [02][簡體雙語][1080p]招募翻譯")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[摆烂字幕组&猎户译制部] 迷宫饭 / Dungeon Meshi [02] [1080p] [繁日内嵌] [2024年1月番]")
+ val r = parse("[擺爛字幕組&獵戶譯製部] 迷宮飯 / Dungeon Meshi [02] [1080p] [繁日內嵌] [2024年1月番]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[摆烂字幕组&猎户译制部] 迷宫饭 / Dungeon Meshi [02] [1080p] [简日内嵌] [2024年1月番]")
+ val r = parse("[擺爛字幕組&獵戶譯製部] 迷宮飯 / Dungeon Meshi [02] [1080p] [簡日內嵌] [2024年1月番]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1980,7 +1980,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [02][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [02][1080p][簡繁內封]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1994,7 +1994,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [02][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [02][1080p][簡體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2005,7 +2005,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `660374-660359-660340-660339-660326-660325-660324-660323-660128-660127`() {
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [01][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [01][簡體雙語][1080p]招募翻譯")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2013,7 +2013,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 02 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 02 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2029,7 +2029,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][02][1080p][简日双语][招募翻译]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][02][1080p][簡日雙語][招募翻譯]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2043,7 +2043,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【02】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【02】【GB_MP4】【1920X1080】")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2057,21 +2057,21 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【02】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【02】【GB_MP4】【1280X720】")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[悠哈璃羽字幕社][迷宫饭/Dungeon Meshi][01][x264 1080p][CHS]")
+ val r = parse("[悠哈璃羽字幕社][迷宮飯/Dungeon Meshi][01][x264 1080p][CHS]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[悠哈璃羽字幕社][迷宫饭/Dungeon Meshi][01][x264 1080p][CHT]")
+ val r = parse("[悠哈璃羽字幕社][迷宮飯/Dungeon Meshi][01][x264 1080p][CHT]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2082,7 +2082,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `660105-660004-659971-659970-659969-659933-659932-659931-659930-659916`() {
kotlin.run {
- val r = parse("[摆烂字幕组&猎户译制部] 迷宫饭 / Dungeon Meshi [01] [1080p] [简日内嵌] [2024年1月番]")
+ val r = parse("[擺爛字幕組&獵戶譯製部] 迷宮飯 / Dungeon Meshi [01] [1080p] [簡日內嵌] [2024年1月番]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2090,14 +2090,14 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
}
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 01 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 01 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [01][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [01][1080p][簡繁內封]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2111,7 +2111,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [01][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [01][1080p][簡體內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2125,7 +2125,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【01v2】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【01v2】【GB_MP4】【1920X1080】")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2139,7 +2139,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【01v2】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【01v2】【GB_MP4】【1280X720】")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2159,7 +2159,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
public fun `659915-659896-659895`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][01][1080p][简日双语][招募翻译]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][01][1080p][簡日雙語][招募翻譯]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
diff --git "a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\351\227\264\350\260\215\350\277\207\345\256\266\345\256\266.kt" "b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\351\227\264\350\260\215\350\277\207\345\256\266\345\256\266.kt"
index 2210e65d1..5ec27a3ff 100644
--- "a/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\351\227\264\350\260\215\350\277\207\345\256\266\345\256\266.kt"
+++ "b/datasource/api/src/androidInstrumentedTest/kotlin/title/generated/PatternTitleParserTest\351\227\264\350\260\215\350\277\207\345\256\266\345\256\266.kt"
@@ -26,35 +26,35 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `668367-663342-662721-662719-662718-662342-662341-662340-660443-660442`() {
kotlin.run {
val r =
- parse("[DBD-Raws][间谍过家家/间谍家家酒/Spy x Family][01-25TV全集+特典映像][1080P][BDRip][HEVC-10bit][简繁日双语外挂][FLAC][MKV]")
+ parse("[DBD-Raws][間諜過家家/間諜家家酒/Spy x Family][01-25TV全集+特典映像][1080P][BDRip][HEVC-10bit][簡繁日雙語外掛][FLAC][MKV]")
assertEquals("01..25", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][间谍过家家 第二季][Spy x Family S2][01-12][1080P][MP4][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][間諜過家家 第二季][Spy x Family S2][01-12][1080P][MP4][簡中]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [26-37] [WebRip] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [26-37] [WebRip] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("26..37", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 02 / Spy x Family Season 2 [01-12][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 02 / Spy x Family Season 2 [01-12][1080p][簡體內嵌]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [01-12][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [01-12][1080p][簡繁內封]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -62,7 +62,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家Season 2 - 12 END [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRT MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家Season 2 - 12 END [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRT MUSE CHT)")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -70,7 +70,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家Season 2 - 11 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRT MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家Season 2 - 11 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRT MUSE CHT)")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -78,7 +78,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家Season 2 - 10 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRT MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家Season 2 - 10 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRT MUSE CHT)")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -86,7 +86,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家Season 2 - 09 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRT MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家Season 2 - 09 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRT MUSE CHT)")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -94,7 +94,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家Season 2 - 08 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRT MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家Season 2 - 08 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRT MUSE CHT)")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -106,7 +106,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `660441-659917-659912-659911-659910-659841-659839-659665-659663-659552`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家Season 2 - 07 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRT MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家Season 2 - 07 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRT MUSE CHT)")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -120,7 +120,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家 / 间谍家家酒 / SPYxFAMILY][37][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家 / 間諜家家酒 / SPYxFAMILY][37][1080p][簡日雙語][招募翻譯]")
assertEquals("37..37", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -134,42 +134,42 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家 / 间谍家家酒 / SPYxFAMILY][36][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家 / 間諜家家酒 / SPYxFAMILY][36][1080p][簡日雙語][招募翻譯]")
assertEquals("36..36", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家 第二季][Spy x Family S2][12][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家 第二季][Spy x Family S2][12][1080P][MP4][GB][簡中]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家 第二季][Spy x Family S2][11][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家 第二季][Spy x Family S2][11][1080P][MP4][GB][簡中]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [37] [END] [1080p] [繁日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [37] [END] [1080p] [繁日內嵌] [2023年10月番]")
assertEquals("37..37", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [37] [END] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [37] [END] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("37..37", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家第二季Spy x Family Season 2[合集][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家第二季Spy x Family Season 2[合集][簡體雙語][1080p]招募翻譯")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -180,28 +180,28 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `659551-659338-659336-659300-659204-659203-659161-659143-659142-659141`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 第二季 Spy x Family [37][END][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 第二季 Spy x Family [37][END][簡體雙語][1080p]招募翻譯")
assertEquals("37..37", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [12][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [12][1080p][簡繁內封]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [12][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [12][1080p][簡體內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 第二季 Spy x Family [36][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 第二季 Spy x Family [36][簡體雙語][1080p]招募翻譯")
assertEquals("36..36", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -215,14 +215,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家 / 间谍家家酒 / SPYxFAMILY][35][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家 / 間諜家家酒 / SPYxFAMILY][35][1080p][簡日雙語][招募翻譯]")
assertEquals("35..35", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [36] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [36] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("36..36", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -230,7 +230,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家Season 2 - 06 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家Season 2 - 06 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -238,7 +238,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家Season 2 - 05 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家Season 2 - 05 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -246,7 +246,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家Season 2 - 04 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家Season 2 - 04 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -257,49 +257,49 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `659005-658897-658895-658893-658891-658814-658812-658742-658611-658609`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 第二季 Spy x Family [35][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 第二季 Spy x Family [35][簡體雙語][1080p]招募翻譯")
assertEquals("35..35", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家 第二季][Spy x Family S2][10][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家 第二季][Spy x Family S2][10][1080P][MP4][GB][簡中]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家 第二季][Spy x Family S2][09][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家 第二季][Spy x Family S2][09][1080P][MP4][GB][簡中]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家 第二季][Spy x Family S2][08][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家 第二季][Spy x Family S2][08][1080P][MP4][GB][簡中]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家 第二季][Spy x Family S2][07][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家 第二季][Spy x Family S2][07][1080P][MP4][GB][簡中]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [11][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [11][1080p][簡繁內封]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [11][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [11][1080p][簡體內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -313,14 +313,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [35] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [35] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("35..35", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [34] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [34] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("34..34", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -331,7 +331,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `658570-658323-658234-658233-658173-657725-657619-657495-657493-657461`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 第二季 Spy x Family [34][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 第二季 Spy x Family [34][簡體雙語][1080p]招募翻譯")
assertEquals("34..34", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -345,49 +345,49 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [10][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [10][1080p][簡體內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [10][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [10][1080p][簡繁內封]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家 / 间谍家家酒 / SPYxFAMILY][34][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家 / 間諜家家酒 / SPYxFAMILY][34][1080p][簡日雙語][招募翻譯]")
assertEquals("34..34", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 第二季 Spy x Family [33][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 第二季 Spy x Family [33][簡體雙語][1080p]招募翻譯")
assertEquals("33..33", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家 / 间谍家家酒 / SPYxFAMILY][33][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家 / 間諜家家酒 / SPYxFAMILY][33][1080p][簡日雙語][招募翻譯]")
assertEquals("33..33", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [09][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [09][1080p][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [09][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [09][1080p][簡繁內封]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -405,21 +405,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `657441-657398-657394-657336-657335-657333-657201-657199-657099-657049`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家 / 间谍家家酒 / SPYxFAMILY][32][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家 / 間諜家家酒 / SPYxFAMILY][32][1080p][簡日雙語][招募翻譯]")
assertEquals("32..32", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [33] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [33] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("33..33", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [32] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [32] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("32..32", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -427,7 +427,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家Season 2 - 03 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家Season 2 - 03 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -435,7 +435,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家Season 2 - 02 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家Season 2 - 02 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -443,28 +443,28 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家Season 2 - 01 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家Season 2 - 01 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [08][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [08][1080p][簡繁內封]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [08][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [08][1080p][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 第二季 Spy x Family [32][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 第二季 Spy x Family [32][簡體雙語][1080p]招募翻譯")
assertEquals("32..32", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -482,7 +482,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `657048-657047-656783-656782-656776-656710-656617-656615-656612-656527`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家 / 间谍家家酒 / SPYxFAMILY][31][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家 / 間諜家家酒 / SPYxFAMILY][31][1080p][簡日雙語][招募翻譯]")
assertEquals("31..31", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -496,56 +496,56 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [07][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [07][1080p][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [07][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [07][1080p][簡繁內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家 / 间谍家家酒 / SPYxFAMILY][30][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家 / 間諜家家酒 / SPYxFAMILY][30][1080p][簡日雙語][招募翻譯]")
assertEquals("30..30", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 第二季 Spy x Family [31][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 第二季 Spy x Family [31][簡體雙語][1080p]招募翻譯")
assertEquals("31..31", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家 第二季][Spy x Family S2][06][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家 第二季][Spy x Family S2][06][1080P][MP4][GB][簡中]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家 第二季][Spy x Family S2][05][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家 第二季][Spy x Family S2][05][1080P][MP4][GB][簡中]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家 第二季][Spy x Family S2][04][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家 第二季][Spy x Family S2][04][1080P][MP4][GB][簡中]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [31] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [31] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("31..31", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -556,14 +556,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `656196-656195-656125-656017-656015-656014-656013-656012-655931-655899`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [06][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [06][1080p][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [06][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [06][1080p][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -577,49 +577,49 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 第二季 Spy x Family [30][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 第二季 Spy x Family [30][簡體雙語][1080p]招募翻譯")
assertEquals("30..30", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组] 间谍过家家 第二季 Spy x Family Season 2 [01] [AVC-8bit 1080P] [CHT&JPN]")
+ val r = parse("[織夢字幕組] 間諜過家家 第二季 Spy x Family Season 2 [01] [AVC-8bit 1080P] [CHT&JPN]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组] 间谍过家家 第二季 Spy x Family Season 2 [01] [AVC-8bit 1080P] [CHS&JPN]")
+ val r = parse("[織夢字幕組] 間諜過家家 第二季 Spy x Family Season 2 [01] [AVC-8bit 1080P] [CHS&JPN]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组] 间谍过家家 第二季 Spy x Family Season 2 [01] [AVC-8bit 720P] [CHT&JPN]")
+ val r = parse("[織夢字幕組] 間諜過家家 第二季 Spy x Family Season 2 [01] [AVC-8bit 720P] [CHT&JPN]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组] 间谍过家家 第二季 Spy x Family Season 2 [01] [AVC-8bit 720P] [CHS&JPN]")
+ val r = parse("[織夢字幕組] 間諜過家家 第二季 Spy x Family Season 2 [01] [AVC-8bit 720P] [CHS&JPN]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家 / 间谍家家酒 / SPYxFAMILY][29][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家 / 間諜家家酒 / SPYxFAMILY][29][1080p][簡日雙語][招募翻譯]")
assertEquals("29..29", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [30] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [30] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("30..30", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -630,14 +630,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `655770-655769-655719-655705-655704-655703-655702-655505-655390-655247`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [05][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [05][1080p][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [05][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [05][1080p][簡繁內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -645,14 +645,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 29 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 29 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("29..29", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][29][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★10月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][29][1080P][簡體][MP4]")
assertEquals("29..29", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -666,7 +666,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][29][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★10月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][29][720P][簡體][MP4]")
assertEquals("29..29", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -680,21 +680,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 第二季 Spy x Family [29][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 第二季 Spy x Family [29][簡體雙語][1080p]招募翻譯")
assertEquals("29..29", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [29] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [29] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("29..29", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [04][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [04][1080p][簡體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -705,14 +705,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `655245-655206-655078-655075-654806-654778-654761-654749-654747-654616`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [04][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [04][1080p][簡繁內封]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 第二季 Spy x Family [28][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 第二季 Spy x Family [28][簡體雙語][1080p]招募翻譯")
assertEquals("28..28", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -742,28 +742,28 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [28] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [28] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("28..28", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家 / 间谍家家酒 / SPYxFAMILY][28][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家 / 間諜家家酒 / SPYxFAMILY][28][1080p][簡日雙語][招募翻譯]")
assertEquals("28..28", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家 第二季][Spy x Family S2][03][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家 第二季][Spy x Family S2][03][1080P][MP4][GB][簡中]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家 第二季][Spy x Family S2][02][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家 第二季][Spy x Family S2][02][1080P][MP4][GB][簡中]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -771,7 +771,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 28 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 28 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("28..28", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -782,7 +782,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `654610-654609-654608-654607-654522-654521-654423-654293-654286-654160`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][28][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★10月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][28][1080P][簡體][MP4]")
assertEquals("28..28", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -796,7 +796,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][28][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★10月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][28][720P][簡體][MP4]")
assertEquals("28..28", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -810,21 +810,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [03][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [03][1080p][簡體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [03][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [03][1080p][簡繁內封]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 第二季 Spy x Family [27][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 第二季 Spy x Family [27][簡體雙語][1080p]招募翻譯")
assertEquals("27..27", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -847,7 +847,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [27] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [27] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("27..27", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -859,7 +859,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `653998-653982-653947-653933-653932-653931-653930-653891-653882-653881`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 27 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 27 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("27..27", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -873,14 +873,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [26] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [26] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][27][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★10月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][27][1080P][簡體][MP4]")
assertEquals("27..27", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -894,7 +894,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][27][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★10月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][27][720P][簡體][MP4]")
assertEquals("27..27", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -908,21 +908,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家 / 间谍家家酒 / SPYxFAMILY][27][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家 / 間諜家家酒 / SPYxFAMILY][27][1080p][簡日雙語][招募翻譯]")
assertEquals("27..27", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [02][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [02][1080p][簡繁內封]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [02][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [02][1080p][簡體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -940,14 +940,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家 / 间谍家家酒 / SPYxFAMILY][26][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家 / 間諜家家酒 / SPYxFAMILY][26][1080p][簡日雙語][招募翻譯]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 第二季 Spy x Family [26][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 第二季 Spy x Family [26][簡體雙語][1080p]招募翻譯")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -971,21 +971,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 26 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 26 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family S2][01][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family S2][01][1080P][MP4][GB][簡中]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][26][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★10月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][26][1080P][簡體][MP4]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -999,7 +999,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][26][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★10月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][26][720P][簡體][MP4]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1017,14 +1017,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [01][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [01][1080p][簡體內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [01][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [01][1080p][簡繁內封]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1061,14 +1061,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][BD-RIP][下卷][13-25集][1080P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][BD-RIP][下卷][13-25集][1080P][AVC][簡日雙語]")
assertEquals("13..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][BD-RIP][下卷][13-25集][720P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][BD-RIP][下卷][13-25集][720P][AVC][簡日雙語]")
assertEquals("13..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1076,7 +1076,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - S1 [粵日雙語+內封繁體中文字幕] (BD 1920x1080 x264 AACx2 PGS+SRT MUSE CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - S1 [粵日雙語+內封繁體中文字幕] (BD 1920x1080 x264 AACx2 PGS+SRT MUSE CHT)")
assertEquals("S1", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1088,14 +1088,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `642236-642000-630310-630307-630259-630256-628569-628568-628511-628311`() {
kotlin.run {
val r =
- parse("[桜都字幕组&7³ACG] 间谍过家家/间谍家家酒/スパイファミリー/SPY×FAMILY S01 | 01-25 [简繁字幕] BDrip 1080p x265 FLAC 2.0 (repack)")
+ parse("[桜都字幕組&7³ACG] 間諜過家家/間諜家家酒/スパイファミリー/SPY×FAMILY S01 | 01-25 [簡繁字幕] BDrip 1080p x265 FLAC 2.0 (repack)")
assertEquals("01..25", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[DDD] SPY×FAMILY 间谍过家家 [BDrip 1080p HEVC FLAC][10bits]")
+ val r = parse("[DDD] SPY×FAMILY 間諜過家家 [BDrip 1080p HEVC FLAC][10bits]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1103,7 +1103,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 25 END [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 25 END [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1111,21 +1111,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 24 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 24 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【23】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【23】GB MP4_720P")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【23】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【23】GB MP4_1080P")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1133,7 +1133,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 23 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 23 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1141,7 +1141,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 22 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 22 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1149,14 +1149,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 [01-25 精校合集][WebRip 1080p HEVC-10bit AAC][简繁外挂字幕][Fin]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 [01-25 精校合集][WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕][Fin]")
assertEquals("01..25", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][01-25(全集)][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][01-25(全集)][1080P][簡體][MP4]")
assertEquals("01..25", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1174,7 +1174,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][01-25(全集)][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][01-25(全集)][720P][簡體][MP4]")
assertEquals("01..25", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1188,7 +1188,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][22-25][1080P][简体][MP4](第一季完)")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][22-25][1080P][簡體][MP4](第一季完)")
assertEquals("22..25", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1202,7 +1202,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][22-25][720P][简体][MP4](第一季完)")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][22-25][720P][簡體][MP4](第一季完)")
assertEquals("22..25", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1216,21 +1216,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][25][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][25][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【22】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【22】GB MP4_720P")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【22】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【22】GB MP4_1080P")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1241,14 +1241,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `627000-626999-626998-626997-626996-626993-626915-626910-626908-626907`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [1-25 Fin][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [1-25 Fin][1080p][簡體內嵌]")
assertEquals("01..25", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [1-25 Fin][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [1-25 Fin][1080p][簡繁內封]")
assertEquals("01..25", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1262,7 +1262,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][13-25][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][13-25][1080p][簡日雙語][招募翻譯]")
assertEquals("13..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1276,14 +1276,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][13-25][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][13-25][720p][簡日雙語][招募翻譯]")
assertEquals("13..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][24][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][24][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1291,7 +1291,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 21 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 21 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1299,7 +1299,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 20 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 20 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1307,7 +1307,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 19 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 19 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1318,14 +1318,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `626664-626660-626319-626318-626317-626316-626136-626134-626055-626054`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [13-25 Fin][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [13-25 Fin][1080p][簡體內嵌]")
assertEquals("13..25", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [13-25 Fin][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [13-25 Fin][1080p][簡繁內封]")
assertEquals("13..25", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1339,7 +1339,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][25][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][25][1080p][簡日雙語][招募翻譯]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1353,21 +1353,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][25][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][25][720p][簡日雙語][招募翻譯]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [25话合集][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [25話合集][簡體雙語][1080p]招募翻譯")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [25][END][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [25][END][簡體雙語][1080p]招募時軸後期")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1381,7 +1381,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][24][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][24][1080p][簡日雙語][招募翻譯]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1399,28 +1399,28 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][24][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][24][720p][簡日雙語][招募翻譯]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][24][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][24][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【21】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【21】GB MP4_720P")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【21】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【21】GB MP4_1080P")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1444,7 +1444,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][25][END][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][25][END][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1452,14 +1452,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][25][END][1080p][AVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][25][END][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [25][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [25][1080p][簡體內嵌]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1470,42 +1470,42 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `625935-625863-625807-625805-625727-625726-625644-625643-625642-625641`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [25][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [25][1080p][簡繁內封]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][13-25][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][13-25][1080p][MP4][簡中]")
assertEquals("13..25", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [25] [END] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [25] [END] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][25][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][25][1080p][MP4][GB][簡中]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [24][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [24][簡體雙語][1080p]招募時軸後期")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [23][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [23][簡體雙語][1080p]招募時軸後期")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1526,14 +1526,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][25集 - END][1080P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][25集 - END][1080P][AVC][簡日雙語]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][25集 - END][720P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][25集 - END][720P][AVC][簡日雙語]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1558,56 +1558,56 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 25 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 25 (CR 1920x1080 AVC AAC MKV)")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 25 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 25 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][23][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][23][1080p][簡日雙語][招募翻譯]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][23][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][23][720p][簡日雙語][招募翻譯]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][24][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][24][1080p][MP4][GB][簡中]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][23][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][23][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [24][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [24][1080p][簡體內嵌]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [24][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [24][1080p][簡繁內封]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1618,14 +1618,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `625111-624994-624950-624949-624948-624947-624826-624825-624824-624823`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][23][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][23][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [24] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [24] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1649,14 +1649,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][24][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][24][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][24][1080p][AVC][GB][MP4][招募翻译校对]")
+ val r = parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][24][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1677,14 +1677,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][24集][1080P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][24集][1080P][AVC][簡日雙語]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][24集][720P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][24集][720P][AVC][簡日雙語]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1695,14 +1695,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `624757-624722-624664-624662-624646-624593-624558-624557-624553-624503`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 24 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 24 (CR 1920x1080 AVC AAC MKV)")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 24 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 24 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -1710,7 +1710,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 18 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 18 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1718,7 +1718,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 17 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 17 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1726,14 +1726,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 16 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 16 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [22][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [22][簡體雙語][1080p]招募時軸後期")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1747,21 +1747,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻櫻字幕組】【10月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【20-22】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【10月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【20-22】【GB_MP4】【1280X720】")
assertEquals("20..22", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][22][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][22][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][22][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][22][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1773,7 +1773,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `624444-624443-624411-624370-624369-624368-624367-624337-624335-624315`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 21 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 21 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1781,21 +1781,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 20 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 20 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][23][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][23][1080p][MP4][GB][簡中]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][21][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][21][1080P][簡體][MP4]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1809,7 +1809,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][21][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][21][720P][簡體][MP4]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1823,21 +1823,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [23][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [23][1080p][簡體內嵌]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [23][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [23][1080p][簡繁內封]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [23] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [23] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1865,14 +1865,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][23][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][23][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][23][1080p][AVC][GB][MP4][招募翻译校对]")
+ val r = parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][23][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1893,28 +1893,28 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][23集][1080P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][23集][1080P][AVC][簡日雙語]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][23集][720P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][23集][720P][AVC][簡日雙語]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 23 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 23 (CR 1920x1080 AVC AAC MKV)")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 23 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 23 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -1939,49 +1939,49 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][22][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][22][1080p][簡日雙語][招募翻譯]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][22][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][22][720p][簡日雙語][招募翻譯]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [21][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [21][簡體雙語][1080p]招募時軸後期")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [22][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [22][1080p][簡體內嵌]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [22][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [22][1080p][簡繁內封]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][22][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][22][1080p][MP4][GB][簡中]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][20][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][20][1080P][簡體][MP4]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1999,7 +1999,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `623570-623569-623554-623495-623486-623485-623484-623483-623321-623320`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][20][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][20][720P][簡體][MP4]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2013,14 +2013,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [22] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [22] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][21][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][21][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2044,14 +2044,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][22][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][22][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][22][1080p][AVC][GB][MP4][招募翻译校对]")
+ val r = parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][22][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2076,28 +2076,28 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `623319-623318-623253-623223-623205-623204-623157-623156-623090-623020`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][22集][1080P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][22集][1080P][AVC][簡日雙語]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][22集][720P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][22集][720P][AVC][簡日雙語]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 22 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 22 (CR 1920x1080 AVC AAC MKV)")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 22 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 22 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -2118,21 +2118,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][21][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][21][1080p][簡日雙語][招募翻譯]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][21][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][21][720p][簡日雙語][招募翻譯]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][21][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][21][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2140,7 +2140,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 19 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 19 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2151,35 +2151,35 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622990-622989-622925-622807-622803-622786-622785-622768-622767-622754`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【20】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【20】GB MP4_720P")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【20】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【20】GB MP4_1080P")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][21][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][21][1080p][MP4][GB][簡中]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [21][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [21][1080p][簡體內嵌]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [21][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [21][1080p][簡繁內封]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2200,21 +2200,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][20][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][20][1080p][簡日雙語][招募翻譯]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][20][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][20][720p][簡日雙語][招募翻譯]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【19】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【19】GB MP4_720P")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2225,14 +2225,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622753-622744-622701-622700-622699-622698-622694-622628-622627-622626`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【19】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【19】GB MP4_1080P")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [21] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [21] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2256,21 +2256,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][21][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][21][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][21][1080p][AVC][GB][MP4][招募翻译校对]")
+ val r = parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][21][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [20][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [20][簡體雙語][1080p]招募時軸後期")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2291,7 +2291,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[V2][织梦字幕组][间谍过家家 SPY×FAMILY][21集][1080P][AVC][简日双语]")
+ val r = parse("[V2][織夢字幕組][間諜過家家 SPY×FAMILY][21集][1080P][AVC][簡日雙語]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2302,7 +2302,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622625-622478-622470-622469-622447-622446-622445-622444-622373-622363`() {
kotlin.run {
- val r = parse("[V2][织梦字幕组][间谍过家家 SPY×FAMILY][21集][720P][AVC][简日双语]")
+ val r = parse("[V2][織夢字幕組][間諜過家家 SPY×FAMILY][21集][720P][AVC][簡日雙語]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2310,21 +2310,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 15 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 15 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【18】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【18】GB MP4_720P")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【18】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【18】GB MP4_1080P")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2345,21 +2345,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][21集][1080P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][21集][1080P][AVC][簡日雙語]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][21集][720P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][21集][720P][AVC][簡日雙語]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 21 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 21 (CR 1920x1080 AVC AAC MKV)")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2367,7 +2367,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 14 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 14 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2378,14 +2378,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622347-622260-622251-622142-622017-622013-622012-622011-622010-621934`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 21 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 21 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][20][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][20][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2393,21 +2393,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 13 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 13 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][20][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][20][1080p][MP4][GB][簡中]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [19][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [19][簡體雙語][1080p]招募時軸後期")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2421,7 +2421,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][19][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][19][1080p][簡日雙語][招募翻譯]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2435,14 +2435,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][19][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][19][720p][簡日雙語][招募翻譯]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [20] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [20] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2453,42 +2453,42 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621908-621907-621860-621848-621847-621783-621782-621781-621780-621745`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [20][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [20][1080p][簡體內嵌]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [20][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [20][1080p][簡繁內封]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][20][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][20][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【17】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【17】GB MP4_720P")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【17】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【17】GB MP4_1080P")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][19][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][19][1080P][簡體][MP4]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2502,7 +2502,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][19][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][19][720P][簡體][MP4]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2537,14 +2537,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][20][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][20][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][20][1080p][AVC][GB][MP4][招募翻译校对]")
+ val r = parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][20][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2558,7 +2558,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻櫻字幕組】【10月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【19】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【10月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【19】【GB_MP4】【1280X720】")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2566,7 +2566,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 18 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 18 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2574,7 +2574,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 17 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 17 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2582,7 +2582,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 16 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 16 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2607,28 +2607,28 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621621-621620-621508-621476-621348-621347-621275-621192-621190-621191`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][20集][1080P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][20集][1080P][AVC][簡日雙語]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][20集][720P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][20集][720P][AVC][簡日雙語]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 20 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 20 (CR 1920x1080 AVC AAC MKV)")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 20 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 20 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -2642,28 +2642,28 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻櫻字幕組】【10月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【18】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【10月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【18】【GB_MP4】【1280X720】")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][19][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][19][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][16-18][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][16-18][1080P][簡體][MP4]")
assertEquals("16..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][16-18][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][16-18][720P][簡體][MP4]")
assertEquals("16..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2688,21 +2688,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [18][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [18][簡體雙語][1080p]招募時軸後期")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [17][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [17][簡體雙語][1080p]招募時軸後期")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][19][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][19][1080p][MP4][GB][簡中]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2710,28 +2710,28 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[7³ACG x 桜都字幕组] SPY×FAMILY/间谍过家家/间谍家家酒/スパイファミリー | 01-12(Part 1) [简繁字幕] BDrip 1080p x265 FLAC")
+ parse("[7³ACG x 桜都字幕組] SPY×FAMILY/間諜過家家/間諜家家酒/スパイファミリー | 01-12(Part 1) [簡繁字幕] BDrip 1080p x265 FLAC")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [19][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [19][1080p][簡體內嵌]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [19][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [19][1080p][簡繁內封]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [19] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [19] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2759,14 +2759,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `620968-620967-620946-620936-620888-620887-620886-620885-620800-620799`() {
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][19][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][19][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][19][1080p][AVC][GB][MP4][招募翻译校对]")
+ val r = parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][19][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2780,7 +2780,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][19][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][19][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2794,7 +2794,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][18][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][18][1080p][簡日雙語][招募翻譯]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2808,7 +2808,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][18][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][18][720p][簡日雙語][招募翻譯]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2833,35 +2833,35 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `620798-620797-620750-620712-620656-620551-620550-620549-620548-620395`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][19集][1080P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][19集][1080P][AVC][簡日雙語]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][19集][720P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][19集][720P][AVC][簡日雙語]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 19 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 19 (CR 1920x1080 AVC AAC MKV)")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 19 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 19 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][18][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][18][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2885,21 +2885,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][18][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][18][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][18][1080p][AVC][GB][MP4][招募翻译校对]")
+ val r = parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][18][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻櫻字幕組】【10月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【17】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【10月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【17】【GB_MP4】【1280X720】")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2910,49 +2910,49 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `620384-620383-620360-620325-620320-620263-620259-620009-620008-620007`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【16】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【16】GB MP4_720P")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【16】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【16】GB MP4_1080P")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][18][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][18][1080p][MP4][GB][簡中]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [18][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [18][1080p][簡體內嵌]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [18][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [18][1080p][簡繁內封]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][18][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][18][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [18] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [18] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2966,7 +2966,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][17][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][17][1080p][簡日雙語][招募翻譯]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2984,7 +2984,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `620006-619946-619945-619944-619943-619876-619864-619640-619546-619461`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][17][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][17][720p][簡日雙語][招募翻譯]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3005,42 +3005,42 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][18集][1080P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][18集][1080P][AVC][簡日雙語]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][18集][720P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][18集][720P][AVC][簡日雙語]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 18 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 18 (CR 1920x1080 AVC AAC MKV)")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 18 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 18 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][17][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][17][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [16][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [16][簡體雙語][1080p]招募時軸後期")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3065,21 +3065,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[V2][织梦字幕组][间谍过家家 SPY×FAMILY][13集][1080P][AVC][简日双语]")
+ val r = parse("[V2][織夢字幕組][間諜過家家 SPY×FAMILY][13集][1080P][AVC][簡日雙語]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[V2][织梦字幕组][间谍过家家 SPY×FAMILY][13集][720P][AVC][简日双语]")
+ val r = parse("[V2][織夢字幕組][間諜過家家 SPY×FAMILY][13集][720P][AVC][簡日雙語]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][17][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][17][1080p][MP4][GB][簡中]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3087,7 +3087,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 15 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 15 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3101,7 +3101,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻櫻字幕組】【10月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【16】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【10月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【16】【GB_MP4】【1280X720】")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3125,7 +3125,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][17][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][17][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3136,28 +3136,28 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `619368-619364-619363-619361-619298-619297-619296-619295-619249-619040`() {
kotlin.run {
- val r = parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][17][1080p][AVC][GB][MP4][招募翻译校对]")
+ val r = parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][17][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [17][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [17][1080p][簡體內嵌]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [17][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [17][1080p][簡繁內封]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [17] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [17] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3171,7 +3171,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][16][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][16][1080p][簡日雙語][招募翻譯]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3185,14 +3185,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][16][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][16][720p][簡日雙語][招募翻譯]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][17][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][17][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3217,35 +3217,35 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][17集][1080P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][17集][1080P][AVC][簡日雙語]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][17集][720P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][17集][720P][AVC][簡日雙語]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 17 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 17 (CR 1920x1080 AVC AAC MKV)")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 17 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 17 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][15][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][15][1080P][簡體][MP4]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3259,7 +3259,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][15][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][15][720P][簡體][MP4]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3273,7 +3273,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][16][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][16][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3284,49 +3284,49 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `618714-618687-618674-618648-618647-618615-618614-618514-618513-618511`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][16][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][16][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][16][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][16][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][16][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][16][1080p][MP4][GB][簡中]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【14-15】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【14-15】GB MP4_720P")
assertEquals("14..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【14-15】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【14-15】GB MP4_1080P")
assertEquals("14..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [16][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [16][1080p][簡體內嵌]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [16][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [16][1080p][簡繁內封]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3350,7 +3350,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][16][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][16][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3361,70 +3361,70 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `618510-618411-618320-618252-618104-618103-618102-618101-618049-618041`() {
kotlin.run {
- val r = parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][16][1080p][AVC][GB][MP4][招募翻译校对]")
+ val r = parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][16][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [16] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [16] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [15][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [15][簡體雙語][1080p]招募時軸後期")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][16][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][16][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 第二部分][16集][1080P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 第二部分][16集][1080P][AVC][簡日雙語]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 第二部分][16集][1080P][AVC][繁日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 第二部分][16集][1080P][AVC][繁日雙語]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 第二部分][16集][720P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 第二部分][16集][720P][AVC][簡日雙語]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 第二部分][16集][720P][AVC][繁日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 第二部分][16集][720P][AVC][繁日雙語]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 16 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 16 (CR 1920x1080 AVC AAC MKV)")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 16 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 16 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -3435,21 +3435,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `617902-617868-617867-617847-617846-617650-617649-617636-617635-617628`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][15][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][15][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][15][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][15][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][15][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][15][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3463,7 +3463,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻櫻字幕組】【10月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【15】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【10月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【15】【GB_MP4】【1280X720】")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3477,7 +3477,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【14】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【10月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【14】【GB_MP4】【1280X720】")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3485,7 +3485,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 14 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 14 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3493,14 +3493,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 13 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 13 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EXTERNAL_DISCOVER, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][15][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][15][1080p][MP4][GB][簡中]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3511,7 +3511,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `617569-617568-617567-617566-617543-617474-617473-617472-617471-617444`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][13-14][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][13-14][1080P][簡體][MP4]")
assertEquals("13..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3525,7 +3525,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][13-14][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][13-14][720P][簡體][MP4]")
assertEquals("13..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3539,7 +3539,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [14][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [14][簡體雙語][1080p]招募時軸後期")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3553,7 +3553,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][15][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][15][1080p][簡日雙語][招募翻譯]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3567,14 +3567,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][15][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][15][720p][簡日雙語][招募翻譯]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [15] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [15] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3585,14 +3585,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `617429-617427-617375-617374-617373-617372-617271-617200-617199-617198`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [15][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [15][1080p][簡繁內封]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [15][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [15][1080p][簡體內嵌]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3616,21 +3616,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][15][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][15][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][15][1080p][AVC][GB][MP4][招募翻译校对]")
+ val r = parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][15][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][15][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][15][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3651,7 +3651,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 第二部分 SPY×FAMILY][15集][AVC][简日双语][1080P]")
+ val r = parse("[織夢字幕組][間諜過家家 第二部分 SPY×FAMILY][15集][AVC][簡日雙語][1080P]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3662,70 +3662,70 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `617197-617140-617129-617090-616930-616869-616841-616840-616661-616659`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 第二部分 SPY×FAMILY][15集][AVC][简日双语][720P]")
+ val r = parse("[織夢字幕組][間諜過家家 第二部分 SPY×FAMILY][15集][AVC][簡日雙語][720P]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 15 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 15 (CR 1920x1080 AVC AAC MKV)")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 15 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 15 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][14][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][14][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][14][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][14][1080p][MP4][GB][簡中]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [13][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [13][簡體雙語][1080p]招募時軸後期")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][14][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][14][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][14][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][14][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [14][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [14][1080p][簡繁內封]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [14][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [14][1080p][簡體內嵌]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3736,14 +3736,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `616645-616636-616534-616533-616532-616531-616381-616379-616370-616369`() {
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [14] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [14] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][14][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][14][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3757,7 +3757,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][14][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][14][1080p][簡日雙語][招募翻譯]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3771,21 +3771,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][14][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][14][720p][簡日雙語][招募翻譯]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【13】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【13】GB MP4_1080P")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【13】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【13】GB MP4_720P")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3799,7 +3799,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻櫻字幕組】【10月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【13】【GB_MP4】【1280X720】【V2】")
+ val r = parse("【幻櫻字幕組】【10月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【13】【GB_MP4】【1280X720】【V2】")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3827,14 +3827,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][14][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][14][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][14][1080p][AVC][GB][MP4][招募翻译校对]")
+ val r = parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][14][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3855,28 +3855,28 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 第二部分 SPY×FAMILY][14集][AVC][简日双语][1080P]")
+ val r = parse("[織夢字幕組][間諜過家家 第二部分 SPY×FAMILY][14集][AVC][簡日雙語][1080P]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 第二部分 SPY×FAMILY][14集][AVC][简日双语][720P]")
+ val r = parse("[織夢字幕組][間諜過家家 第二部分 SPY×FAMILY][14集][AVC][簡日雙語][720P]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][13][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][13][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][13][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][13][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3887,42 +3887,42 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `616166-616150-616147-615847-615803-615737-615611-615610-615604-615603`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 14 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 14 (CR 1920x1080 AVC AAC MKV)")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 14 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 14 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 14 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 14 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][13][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][13][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][13][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][13][1080p][MP4][GB][簡中]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][13][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][13][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3943,14 +3943,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][13][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][13][1080p][簡日雙語][招募翻譯]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][13][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][13][720p][簡日雙語][招募翻譯]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3961,21 +3961,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `615602-615571-615569-615568-615567-615566-615565-615367-615366-615365`() {
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [13] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [13] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [13][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [13][1080p][簡繁內封]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [13][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [13][1080p][簡體內嵌]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3999,14 +3999,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][13][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][13][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][13][1080p][AVC][GB][MP4][招募翻译校对]")
+ val r = parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][13][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4027,7 +4027,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 第二部分 SPY×FAMILY][13集][AVC][简日双语][720P]")
+ val r = parse("[織夢字幕組][間諜過家家 第二部分 SPY×FAMILY][13集][AVC][簡日雙語][720P]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4038,21 +4038,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `615364-615284-615279-609032-609031-609030-609029-608944-608943-608942`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 第二部分 SPY×FAMILY][13集][AVC][简日双语][1080P]")
+ val r = parse("[織夢字幕組][間諜過家家 第二部分 SPY×FAMILY][13集][AVC][簡日雙語][1080P]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 13 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 13 (CR 1920x1080 AVC AAC MKV)")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 13 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 13 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4066,7 +4066,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][01-12][1080p][简日双语][v2][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][01-12][1080p][簡日雙語][v2][招募翻譯]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4080,7 +4080,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][01-12][720p][简日双语][v2][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][01-12][720p][簡日雙語][v2][招募翻譯]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4094,7 +4094,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][01-12][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][01-12][1080p][簡日雙語][招募翻譯]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4112,14 +4112,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `608941-608760-607638-607637-607557-607556-607523-607447-607145-606777`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][01-12][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][01-12][720p][簡日雙語][招募翻譯]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("V2 间谍过家家4K 粤日双语 - 2160p Spy × Family 附加字体 外挂楷体字幕")
+ val r = parse("V2 間諜過家家4K 粵日雙語 - 2160p Spy × Family 附加字體 外掛楷體字幕")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHC, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -4166,7 +4166,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][01-12][1080P][WebRip][简日双语(内嵌+外挂)][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][01-12][1080P][WebRip][簡日雙語(內嵌+外掛)][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4226,14 +4226,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 12 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 12 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][12][1080P][简体][MP4](前半完)")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][12][1080P][簡體][MP4](前半完)")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4247,7 +4247,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][12][720P][简体][MP4](前半完)")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][12][720P][簡體][MP4](前半完)")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4261,7 +4261,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [合集][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [合集][簡體雙語][1080p]招募翻譯")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4272,21 +4272,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604884-604830-604827-604817-604792-604791-604712-604711-604706-604705`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [12][END][简体双语][1080p]招募后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [12][END][簡體雙語][1080p]招募後期")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [01-12 Fin][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [01-12 Fin][1080p][簡繁內封]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [01-12 Fin][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [01-12 Fin][1080p][簡體內嵌]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4301,42 +4301,42 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【12】【END】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【12】【END】GB MP4_720P")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【12】【END】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【12】【END】GB MP4_1080P")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【11】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【11】GB MP4_720P")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【11】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【11】GB MP4_1080P")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【10】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【10】GB MP4_720P")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【10】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【10】GB MP4_1080P")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4361,7 +4361,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][12][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][12][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4375,7 +4375,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【12】【END】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【12】【END】【GB_MP4】【1280X720】")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4389,21 +4389,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[动漫萌][4月新番][间谍过家家/间谍家家酒/Spy X Family ][GB][10][1080P](字幕组招募内详)")
+ val r = parse("[動漫萌][4月新番][間諜過家家/間諜家家酒/Spy X Family ][GB][10][1080P](字幕組招募內詳)")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组] 间谍过家家/SPY × FAMILY (01-12Fin WEBRIP 1080p AVC AAC 2022年4月 简中)")
+ val r = parse("[愛戀&漫貓字幕組] 間諜過家家/SPY × FAMILY (01-12Fin WEBRIP 1080p AVC AAC 2022年4月 簡中)")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][间谍过家家][SPY × FAMILY][12][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][間諜過家家][SPY × FAMILY][12][1080p][MP4][簡中]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4421,7 +4421,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604258-604249-604248-604240-604239-604216-604215-604190-604183-604158`() {
kotlin.run {
- val r = parse("[动漫萌][4月新番][间谍过家家/间谍家家酒/Spy X Family ][GB][09][1080P](字幕组招募内详)")
+ val r = parse("[動漫萌][4月新番][間諜過家家/間諜家家酒/Spy X Family ][GB][09][1080P](字幕組招募內詳)")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4435,7 +4435,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[动漫萌][4月新番][间谍过家家/间谍家家酒/Spy X Family ][GB][08][1080P](字幕组招募内详)")
+ val r = parse("[動漫萌][4月新番][間諜過家家/間諜家家酒/Spy X Family ][GB][08][1080P](字幕組招募內詳)")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4449,42 +4449,42 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("动漫萌][4月新番][间谍过家家/间谍家家酒/Spy X Family ][GB][07][1080P](字幕组招募内详)")
+ val r = parse("動漫萌][4月新番][間諜過家家/間諜家家酒/Spy X Family ][GB][07][1080P](字幕組招募內詳)")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【09】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【09】GB MP4_720P")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【09】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【09】GB MP4_1080P")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [12][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [12][1080p][簡體內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [12][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [12][1080p][簡繁內封]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【08】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【08】GB MP4_720P")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4495,7 +4495,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604157-604131-604122-604117-604116-604115-604114-604025-604024-604008`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【08】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【08】GB MP4_1080P")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4503,21 +4503,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 11 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 11 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [11][简体双语][1080p]招募后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [11][簡體雙語][1080p]招募後期")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][11][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][11][1080P][簡體][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4531,7 +4531,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][11][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][11][720P][簡體][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4545,21 +4545,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][12][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][12][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][12][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][12][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [12][1080p][简日内嵌]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [12][1080p][簡日內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4570,28 +4570,28 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603990-603989-603927-603775-603707-603706-603593-603571-603570-603569`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][11][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][11][1080p][簡日雙語][招募翻譯]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][11][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][11][720p][簡日雙語][招募翻譯]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 12 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 12 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][11][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][11][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4605,14 +4605,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【11】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【11】【GB_MP4】【1280X720】")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][间谍过家家][SPY × FAMILY][11][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][間諜過家家][SPY × FAMILY][11][1080p][MP4][簡中]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4633,7 +4633,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组】【间谍过家家_Spy x Family】[第04话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【間諜過家家_Spy x Family】[第04話][1080p_AVC][簡體]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4644,14 +4644,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603549-603545-603542-603541-603540-603441-603438-603437-603436-603435`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [11][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [11][1080p][簡繁內封]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [11][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [11][1080p][簡體內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4672,7 +4672,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组】【间谍过家家_Spy x Family】[第03话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【間諜過家家_Spy x Family】[第03話][1080p_AVC][簡體]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4680,28 +4680,28 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 10 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 10 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][11][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][11][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][11][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][11][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][10][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][10][1080P][簡體][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4719,7 +4719,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603434-603433-603376-603332-603305-603304-603161-603149-603148-603142`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][10][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][10][720P][簡體][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4733,56 +4733,56 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [11][1080p][简日内嵌]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [11][1080p][簡日內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 11 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 11 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][10][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][10][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][10][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][10][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [10][简体双语][1080p]招募后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [10][簡體雙語][1080p]招募後期")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【07】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【07】GB MP4_720P")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【07】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【07】GB MP4_1080P")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][10][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][10][1080p][簡日雙語][招募翻譯]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4793,7 +4793,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603141-603129-603128-603055-602892-602890-602837-602807-602730-602729`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][10][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][10][720p][簡日雙語][招募翻譯]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4807,42 +4807,42 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【10】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【10】【GB_MP4】【1280X720】")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][10][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][10][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [10][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [10][1080p][簡繁內封]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [10][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [10][1080p][簡體內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][09][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][09][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [10][1080p][简日内嵌]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [10][1080p][簡日內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4850,14 +4850,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 09 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 09 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][09][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][09][1080P][簡體][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4875,7 +4875,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][09][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][09][720P][簡體][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4889,21 +4889,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 10 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 10 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【06】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【06】GB MP4_720P")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【06】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【06】GB MP4_1080P")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4911,21 +4911,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [09][简体双语][1080p]招募后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [09][簡體雙語][1080p]招募後期")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[间谍过家家 / Spy x Family][06][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[間諜過家家 / Spy x Family][06][x264 1080p][CHS]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4943,7 +4943,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602498-602492-602491-602490-602489-602424-602358-602334-602254-602240`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【09】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【09】【GB_MP4】【1280X720】")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4957,7 +4957,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][09][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][09][1080p][簡日雙語][招募翻譯]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4971,42 +4971,42 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][09][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][09][720p][簡日雙語][招募翻譯]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [09v2][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [09v2][1080p][簡繁內封]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][间谍过家家][SPY × FAMILY][09][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][間諜過家家][SPY × FAMILY][09][1080p][MP4][簡中]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [09][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [09][1080p][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [08][简体双语][1080p]招募后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [08][簡體雙語][1080p]招募後期")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][09][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][09][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5017,28 +5017,28 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602239-602237-602158-602121-602120-602119-602118-602109-602058-602057`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][09][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][09][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][08][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][08][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [09][1080p][简体内嵌]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [09][1080p][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][08][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][08][1080P][簡體][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5052,7 +5052,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][08][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][08][720P][簡體][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5066,21 +5066,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 09 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 09 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][08][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][08][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][08][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][08][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5105,7 +5105,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][间谍过家家][SPY × FAMILY][08][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][間諜過家家][SPY × FAMILY][08][1080p][MP4][簡中]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5119,42 +5119,42 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【08】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【08】【GB_MP4】【1280X720】")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][08][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][08][1080p][簡日雙語][招募翻譯]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][08][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][08][720p][簡日雙語][招募翻譯]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [08][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [08][1080p][簡繁內封]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [08][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [08][1080p][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【05】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【05】GB MP4_720P")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5165,7 +5165,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601658-601607-601587-601586-601585-601584-601576-601488-601368-601367`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【05】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【05】GB MP4_1080P")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5173,14 +5173,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][07][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][07][1080P][簡體][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5194,7 +5194,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][07][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][07][720P][簡體][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5208,14 +5208,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [08][1080p][简体内嵌]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [08][1080p][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 08 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 08 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -5229,7 +5229,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【07】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【07】【GB_MP4】【1280X720】")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5247,7 +5247,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][07][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][07][1080p][簡日雙語][招募翻譯]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5261,28 +5261,28 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][07][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][07][720p][簡日雙語][招募翻譯]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [07][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [07][簡體雙語][1080p]招募翻譯")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][07][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][07][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][间谍过家家][SPY × FAMILY][07][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][間諜過家家][SPY × FAMILY][07][1080p][MP4][簡中]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5296,14 +5296,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[动漫萌][4月新番][间谍过家家/间谍家家酒/Spy X Family ][GB][05][1080P](字幕组招募内详)")
+ val r = parse("[動漫萌][4月新番][間諜過家家/間諜家家酒/Spy X Family ][GB][05][1080P](字幕組招募內詳)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [07][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [07][1080p][簡繁內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5314,56 +5314,56 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601165-601152-601144-601141-601107-600958-600864-600862-600855-600854`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [07][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [07][1080p][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[动漫萌][4月新番][间谍过家家/间谍家家酒/Spy X Family ][GB][04][1080P]")
+ val r = parse("[動漫萌][4月新番][間諜過家家/間諜家家酒/Spy X Family ][GB][04][1080P]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][07][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][07][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][07][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][07][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[间谍过家家 / Spy x Family][05][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[間諜過家家 / Spy x Family][05][x264 1080p][CHS]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [07][1080p][简体内嵌]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [07][1080p][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 07 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 07 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [06][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [06][簡體雙語][1080p]招募翻譯")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5388,14 +5388,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600842-600841-600810-600788-600787-600786-600785-600782-600781-600776`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][06][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][06][1080p][簡日雙語][招募翻譯]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][06][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][06][720p][簡日雙語][招募翻譯]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5403,14 +5403,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][06][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][06][1080P][簡體][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5424,7 +5424,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][06][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][06][720P][簡體][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5438,14 +5438,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][06][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][06][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][06][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][06][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5463,7 +5463,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600775-600746-600745-600625-600605-600510-600509-600436-600374-600354`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【04v2】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【04v2】【GB_MP4】【1280X720】")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5477,49 +5477,49 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【06】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【06】【GB_MP4】【1280X720】")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][06][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][06][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][间谍过家家][SPY × FAMILY][06][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][間諜過家家][SPY × FAMILY][06][1080p][MP4][簡中]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [06][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [06][1080p][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [06][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [06][1080p][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[间谍过家家 / Spy x Family][04][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[間諜過家家 / Spy x Family][04][x264 1080p][CHS]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [06][1080p][简体内嵌]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [06][1080p][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5527,7 +5527,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 05 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 05 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5538,7 +5538,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600320-600319-600318-600317-600280-600208-600100-600099-600087-600086`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][05][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][05][1080P][簡體][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5552,7 +5552,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][05][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][05][720P][簡體][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5566,14 +5566,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 06 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 06 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [05][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [05][簡體雙語][1080p]招募翻譯")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5587,21 +5587,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【05】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【05】【GB_MP4】【1280X720】")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【04】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【04】GB MP4_720P")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【04】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【04】GB MP4_1080P")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5612,14 +5612,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600076-600075-599989-599988-599970-599946-599899-599897-599865-599864`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【03】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【03】GB MP4_720P")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【03】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【03】GB MP4_1080P")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5640,42 +5640,42 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][05][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][05][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][间谍过家家][SPY × FAMILY][05][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][間諜過家家][SPY × FAMILY][05][1080p][MP4][簡中]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [05][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [05][1080p][簡繁內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [05][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [05][1080p][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][05][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][05][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][05][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][05][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5686,14 +5686,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599863-599862-599861-599860-599750-599714-599649-599490-599478-599477`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][05][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][05][1080p][簡日雙語][招募翻譯]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][05][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][05][720p][簡日雙語][招募翻譯]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5714,21 +5714,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [05][1080p][简体内嵌]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [05][1080p][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [04][简体双语][1080p]招募翻译后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [04][簡體雙語][1080p]招募翻譯後期")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 05 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 05 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -5736,14 +5736,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 04 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 04 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][04][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][04][1080P][簡體][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5761,7 +5761,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599476-599475-599433-599431-599417-599416-599410-599409-599382-599346`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][04][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][04][720P][簡體][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5775,14 +5775,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / SPY×FAMILY][04][简日双语][1080P][WEBrip][MP4](急招翻译、校对、时轴)")
+ val r = parse("[星空字幕組][間諜過家家 / SPY×FAMILY][04][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對、時軸)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / SPY×FAMILY][03][简日双语][1080P][WEBrip][MP4](急招翻译、校对、时轴)")
+ val r = parse("[星空字幕組][間諜過家家 / SPY×FAMILY][03][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對、時軸)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5796,35 +5796,35 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【04】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【04】【GB_MP4】【1280X720】")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][04][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][04][1080p][簡日雙語][招募翻譯]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][04][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][04][720p][簡日雙語][招募翻譯]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[间谍过家家 / Spy x Family][03][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[間諜過家家 / Spy x Family][03][x264 1080p][CHS]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][间谍过家家][SPY × FAMILY][04][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][間諜過家家][SPY × FAMILY][04][1080p][MP4][簡中]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5835,28 +5835,28 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599326-599313-599310-599304-599286-599274-599272-599270-599269-599173`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [03][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [03][簡體雙語][1080p]招募翻譯")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][04][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][04][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][04][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][04][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][04][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][04][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5864,35 +5864,35 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[LuoXinSpot & MingYSub] 间谍过家家 / Spy x Family [04][WEBRip 2160p HEVC 10bit AAC][简体内封]")
+ parse("[LuoXinSpot & MingYSub] 間諜過家家 / Spy x Family [04][WEBRip 2160p HEVC 10bit AAC][簡體內封]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [04][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [04][1080p][簡繁內封]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [04][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [04][1080p][簡體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 SPY×FAMILY】【03v2】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 SPY×FAMILY】【03v2】【GB_MP4】【1280X720】")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 SPY×FAMILY】【03v2】【BIG5_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 SPY×FAMILY】【03v2】【BIG5_MP4】【1280X720】")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5917,28 +5917,28 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组】【间谍过家家_Spy x Family】[第02话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【間諜過家家_Spy x Family】[第02話][1080p_AVC][簡體]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【02】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【02】GB MP4_720P")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【02】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【02】GB MP4_1080P")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [04][1080p][简体内嵌]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [04][1080p][簡體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5946,21 +5946,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 03 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 03 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 04 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 04 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][03][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][03][1080P][簡體][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5974,7 +5974,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][03][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][03][720P][簡體][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5992,35 +5992,35 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[间谍过家家 / Spy x Family][02][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[間諜過家家 / Spy x Family][02][x264 1080p][CHS]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][03][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][03][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][间谍过家家][SPY × FAMILY][03][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][間諜過家家][SPY × FAMILY][03][1080p][MP4][簡中]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][03][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][03][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][03][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][03][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6041,14 +6041,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][03][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][03][1080p][簡日雙語][招募翻譯]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][03][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][03][720p][簡日雙語][招募翻譯]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6059,14 +6059,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598593-598591-598522-598453-598388-598317-598283-598156-598154-598151`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [03][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [03][1080p][簡繁內封]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [03][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [03][1080p][簡體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6074,21 +6074,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[LuoXinSpot & MingYSub] 间谍过家家 / Spy x Family [03][WEBRip 2160p HEVC 10bit AAC][简体内封]")
+ parse("[LuoXinSpot & MingYSub] 間諜過家家 / Spy x Family [03][WEBRip 2160p HEVC 10bit AAC][簡體內封]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [03][1080p][简体内嵌]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [03][1080p][簡體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 03 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 03 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -6096,35 +6096,35 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[LuoXinSpot & MingYSub] 间谍过家家 / Spy x Family [01][WEBRip 2160p HEVC 10bit AAC][简体内封]")
+ parse("[LuoXinSpot & MingYSub] 間諜過家家 / Spy x Family [01][WEBRip 2160p HEVC 10bit AAC][簡體內封]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [02][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [02][簡體雙語][1080p]招募翻譯")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / SPY×FAMILY][02][简日双语][1080P][WEBrip][MP4](急招翻译、校对、时轴)")
+ val r = parse("[星空字幕組][間諜過家家 / SPY×FAMILY][02][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對、時軸)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / SPY×FAMILY][01][简日双语][1080P][WEBrip][MP4](急招翻译、校对、时轴)")
+ val r = parse("[星空字幕組][間諜過家家 / SPY×FAMILY][01][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對、時軸)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 SPY×FAMILY】【02】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 SPY×FAMILY】【02】【GB_MP4】【1280X720】")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6135,7 +6135,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598150-598147-598102-598101-598100-598099-598009-598006-598004-598003`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 SPY×FAMILY】【02】【BIG5_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 SPY×FAMILY】【02】【BIG5_MP4】【1280X720】")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6143,14 +6143,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 02 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 02 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][02][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][02][1080P][簡體][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6164,7 +6164,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][02][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][02][720P][簡體][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6178,14 +6178,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 01 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 01 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 02 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 02 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -6210,42 +6210,42 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598002-598001-597966-597898-597894-597891-597824-597822-597821-597820`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][02][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][02][1080p][簡日雙語][招募翻譯]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][间谍过家家][SPY × FAMILY][02][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][間諜過家家][SPY × FAMILY][02][1080p][MP4][簡中]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][02][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][02][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][02][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][02][720p][簡日雙語][招募翻譯]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [02][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [02][1080p][簡體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [02][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [02][1080p][簡繁內封]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6266,14 +6266,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【千夏字幕组】【间谍过家家_Spy x Family】[第01话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【間諜過家家_Spy x Family】[第01話][1080p_AVC][簡體]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][02][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][02][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6284,14 +6284,14 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597819-597723-597717-597695-597655-597628-597610-597428-597409-597408`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][02][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][02][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [01][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [01][簡體雙語][1080p]招募翻譯")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6299,35 +6299,35 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[LuoXinSpot & MingYSub] 间谍过家家 / Spy x Family [02][WEBRip 2160p AVC 8bit AAC][简体内封]")
+ parse("[LuoXinSpot & MingYSub] 間諜過家家 / Spy x Family [02][WEBRip 2160p AVC 8bit AAC][簡體內封]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [02v2][1080p][CHS]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [02v2][1080p][CHS]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [02][1080p][CHS]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [02][1080p][CHS]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 02 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 02 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][01][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][01][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6335,21 +6335,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
}
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 01 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 01 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][01][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][01][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][01][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][01][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6360,7 +6360,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597393-597392-597391-597390-597355-597343-597342-597331-597330-597248`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][01][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][01][1080P][簡體][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6374,7 +6374,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][01][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][01][720P][簡體][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6388,21 +6388,21 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][间谍过家家][SPY × FAMILY][01][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][間諜過家家][SPY × FAMILY][01][1080p][MP4][簡中]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 Spy × Family】【01】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 Spy × Family】【01】【GB_MP4】【1280X720】")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 Spy × Family】【01】【BIG5_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 Spy × Family】【01】【BIG5_MP4】【1280X720】")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6423,7 +6423,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【01】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【01】GB MP4_720P")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6434,49 +6434,49 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597247-597238-597237-597229-597154-597152-596979`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【01】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【01】GB MP4_1080P")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][01][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][01][1080p][簡日雙語][招募翻譯]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][01][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][01][720p][簡日雙語][招募翻譯]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [01][1080p][CHS]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [01][1080p][CHS]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [01][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [01][1080p][簡繁內封]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.CLOSED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [01][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [01][1080p][簡體內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
}
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 01 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 01 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
diff --git a/datasource/api/src/commonMain/kotlin/EpisodeSort.kt b/datasource/api/src/commonMain/kotlin/EpisodeSort.kt
index e037ffe75..451f0ff3c 100644
--- a/datasource/api/src/commonMain/kotlin/EpisodeSort.kt
+++ b/datasource/api/src/commonMain/kotlin/EpisodeSort.kt
@@ -28,7 +28,7 @@ import me.him188.ani.utils.serialization.BigNum
/**
* 剧集序号, 例如 "01", "24.5", "OVA".
*
- * - [Normal] 代表普通正片剧集, 例如 "01", "24.5". 注意, 只有整数和 ".5" 的浮点数会被解析为 Normal 类型.
+ * - [Normal] 代表普通正片剧集, 例如 "01", "24.5". 注意, 只有整數和 ".5" 的浮点数会被解析为 Normal 类型.
* - [Special] 代表任何其他剧集, 统称为特殊剧集, 例如 "OVA", "SP".
*
*
@@ -46,7 +46,7 @@ sealed class EpisodeSort : Comparable {
abstract val number: Float?
/**
- * "1", "1.5", "SP". 对于小于 10 的序号, 前面没有 "0".
+ * "1", "1.5", "SP". 對於小於 10 的序號, 前面沒有 "0".
*
* @see toString
*/
diff --git a/datasource/api/src/commonMain/kotlin/Media.kt b/datasource/api/src/commonMain/kotlin/Media.kt
index aee10e5c4..4ab91b9eb 100644
--- a/datasource/api/src/commonMain/kotlin/Media.kt
+++ b/datasource/api/src/commonMain/kotlin/Media.kt
@@ -78,7 +78,7 @@ sealed interface Media {
*
* 在 [MediaSource.fetch] 时, 如果自定义的数据源查询到的资源没有确定的剧集信息, 可以考虑猜测该资源的剧集为 [MediaFetchRequest.episodeSort].
*
- * 如果剧集为单集 [EpisodeRange.single], 且类型 [kind] 为 [MediaSourceKind.BitTorrent], 则很有可能会因为默认启用的"完结番隐藏单集资源"功能而被过滤掉.
+ * 如果剧集为单集 [EpisodeRange.single], 且类型 [kind] 为 [MediaSourceKind.BitTorrent], 则很有可能会因为默认启用的"完結番隱藏單集資源"功能而被过滤掉.
* 在 UI 中不会显示. 设计上, 这是为了让用户看到的资源更加整洁. 如果你期望一直显示资源, 考虑将 [kind] 改为 [MediaSourceKind.WEB], 或是在 GitHub 讨论更改这个过滤行为.
*/
val episodeRange: EpisodeRange?
@@ -231,7 +231,7 @@ data class MediaProperties @SerializationOnly constructor(
* ## APP 行为细节
*
* 建议的值: "CHS", "CHT", "JPY", "ENG".
- * 这些值能保证在 APP UI 中显示为 "简体中文" 等本地化名称.
+ * 这些值能保证在 APP UI 中显示为 "簡體中文" 等本地化名称.
*
* 为空字符串表示没有任何字幕. 但这很有可能会导致被数据源选择器忽略掉. 因为默认偏好设置是忽略无字幕的资源 (可在 APP 设置中关闭)
*
@@ -253,14 +253,14 @@ data class MediaProperties @SerializationOnly constructor(
*/
val resolution: String,
/**
- * 字幕组名称, 例如 "桜都字幕组", "北宇治字幕组".
+ * 字幕组名称, 例如 "桜都字幕組", "北宇治字幕組".
* 空字符串可能导致数据源选择器忽略掉这个资源.
*
* 对于在线数据源, 这会是线路名称.
*
* 对于无法确定字幕组的数据源, 可以使用数据源的 [MediaSource.mediaSourceId] 代替.
*
- * 该属性建议比较稳定. 例如对于桜都字幕组资源, 总是返回 "桜都字幕组", 而不要返回相似的 "樱都字幕组", "桜都字幕组2" 等内容.
+ * 该属性建议比较稳定. 例如对于桜都字幕组资源, 总是返回 "桜都字幕組", 而不要返回相似的 "櫻都字幕組", "桜都字幕組2" 等内容.
* 因为当用户选择字幕组后, 该偏好会保存, 并在下次选择时自动使用. 如果字幕组名称不稳定, 将无法选择正确的偏好资源.
*/
val alliance: String,
@@ -322,7 +322,7 @@ enum class SubtitleKind {
EMBEDDED,
/**
- * "内封字幕"是指嵌入在视频文件中的字幕,可以通过播放器的设置来显示或隐藏。这类字幕通常存在于视频文件的字幕轨道中,因此用户可以选择是否显示这些字幕。
+ * "內封字幕"是指嵌入在视频文件中的字幕,可以通过播放器的设置来显示或隐藏。这类字幕通常存在于视频文件的字幕轨道中,因此用户可以选择是否显示这些字幕。
*/
CLOSED,
diff --git a/datasource/api/src/commonMain/kotlin/source/MediaFetchRequest.kt b/datasource/api/src/commonMain/kotlin/source/MediaFetchRequest.kt
index 70131f0c5..2069a791f 100644
--- a/datasource/api/src/commonMain/kotlin/source/MediaFetchRequest.kt
+++ b/datasource/api/src/commonMain/kotlin/source/MediaFetchRequest.kt
@@ -43,7 +43,7 @@ data class MediaFetchRequest(
*
* 所有名称包括简体中文译名, 各种别名, 简称, 以及日文原名.
*
- * E.g. "关于我转生变成史莱姆这档事 第三季"
+ * E.g. "關於我轉生變成史萊姆這檔事 第三季"
*/
val subjectNames: List,
/**
@@ -55,7 +55,7 @@ data class MediaFetchRequest(
*/
val episodeSort: EpisodeSort,
/**
- * 条目服务 (Bangumi) 提供的剧集名称, 例如 "恶魔与阴谋", 不会包含 "第 x 集".
+ * 条目服务 (Bangumi) 提供的剧集名称, 例如 "惡魔與陰謀", 不会包含 "第 x 集".
* 不一定为简体中文, 可能为日文. 也可能为空字符串.
*/
val episodeName: String,
diff --git a/datasource/api/src/commonMain/kotlin/source/MediaSource.kt b/datasource/api/src/commonMain/kotlin/source/MediaSource.kt
index d230d56a5..4d6db5a0e 100644
--- a/datasource/api/src/commonMain/kotlin/source/MediaSource.kt
+++ b/datasource/api/src/commonMain/kotlin/source/MediaSource.kt
@@ -107,7 +107,7 @@ interface MediaSource : AutoCloseable {
* 若请求 [MediaFetchRequest.episodeSort] 为 "01", 但 [fetch] 返回 "02", 该剧集**不会**被后续流程自动剔除, 它会被原封不动地展示给用户.
*
* 所有 [fetch] 返回的资源, 都将会被数据源选择器 `MediaSelector` 接收并能够显示.
- * 但需要注意数据源选择系统有一系列过滤选项 (APP 设置中 "播放与缓存" 的 "高级设置")
+ * 但需要注意数据源选择系统有一系列过滤选项 (APP 设置中 "播放與緩存" 的 "高級設置")
*
* 当用户关闭设置中的所有自动过滤选项时, 将能够看到所有 [fetch] 返回的资源.
*
diff --git a/datasource/api/src/commonMain/kotlin/source/MediaSourceKind.kt b/datasource/api/src/commonMain/kotlin/source/MediaSourceKind.kt
index 7ece46974..e2c4ee57e 100644
--- a/datasource/api/src/commonMain/kotlin/source/MediaSourceKind.kt
+++ b/datasource/api/src/commonMain/kotlin/source/MediaSourceKind.kt
@@ -23,7 +23,7 @@ enum class MediaSourceKind {
/**
* P2P BitTorrent 网络. 资源为 [ResourceLocation.HttpTorrentFile] 或 [ResourceLocation.MagnetLink].
*
- * 如果 [Media.episodeRange] 剧集为单集 [EpisodeRange.single], 且类型为 [MediaSourceKind.BitTorrent], 则很有可能会因为默认启用的"完结番隐藏单集资源"功能而被过滤掉.
+ * 如果 [Media.episodeRange] 剧集为单集 [EpisodeRange.single], 且类型为 [MediaSourceKind.BitTorrent], 则很有可能会因为默认启用的"完結番隱藏單集資源"功能而被过滤掉.
* @see WEB
* @see Media.episodeRange
*/
diff --git a/datasource/api/src/commonMain/kotlin/topic/SubtitleLanguage.kt b/datasource/api/src/commonMain/kotlin/topic/SubtitleLanguage.kt
index 5fe2a3b9a..4632d4dff 100644
--- a/datasource/api/src/commonMain/kotlin/topic/SubtitleLanguage.kt
+++ b/datasource/api/src/commonMain/kotlin/topic/SubtitleLanguage.kt
@@ -35,24 +35,24 @@ sealed class SubtitleLanguage(
sealed class Chinese(id: String, displayName: String) : SubtitleLanguage(id, displayName)
- object ChineseCantonese : Chinese("CHC", "粤语") {
- private val tokens = arrayOf("粤", "粵", "Cantonese", "CHC", "Yue")
+ object ChineseCantonese : Chinese("CHC", "粵語") {
+ private val tokens = arrayOf("粵", "粵", "Cantonese", "CHC", "Yue")
override fun matches(text: String): Boolean {
return tokens.any { text.contains(it, ignoreCase = true) }
}
}
- object ChineseSimplified : Chinese("CHS", "简中") {
+ object ChineseSimplified : Chinese("CHS", "簡中") {
private val tokens =
arrayOf(
- "简中",
+ "簡中",
"GB",
"GBK",
- "简体中文",
+ "簡體中文",
"中文",
"中字",
"簡",
- "简",
+ "簡",
"CHS",
"Zh-Hans",
"Zh_Hans",
@@ -74,14 +74,14 @@ sealed class SubtitleLanguage(
}
- object Japanese : SubtitleLanguage("JPN", "日语") {
+ object Japanese : SubtitleLanguage("JPN", "日語") {
private val tokens = arrayOf("日", "Japanese", "JP")
override fun matches(text: String): Boolean {
return tokens.any { text.contains(it, ignoreCase = true) }
}
}
- object English : SubtitleLanguage("ENG", "英语") {
+ object English : SubtitleLanguage("ENG", "英語") {
private val tokens = arrayOf("英", "English")
override fun matches(text: String): Boolean {
return tokens.any { text.contains(it, ignoreCase = true) }
diff --git a/datasource/api/src/commonMain/kotlin/topic/titles/LabelFirstRawTitleParser.kt b/datasource/api/src/commonMain/kotlin/topic/titles/LabelFirstRawTitleParser.kt
index 1f04a1cb3..0713dd756 100644
--- a/datasource/api/src/commonMain/kotlin/topic/titles/LabelFirstRawTitleParser.kt
+++ b/datasource/api/src/commonMain/kotlin/topic/titles/LabelFirstRawTitleParser.kt
@@ -52,8 +52,8 @@ class LabelFirstRawTitleParser : RawTitleParser() {
if (builder.episodeRange == null) {
words.forEach { word ->
if (word.contains("Movie", ignoreCase = true)
- || word.contains("电影", ignoreCase = true)
- || word.contains("剧场版", ignoreCase = true)
+ || word.contains("電影", ignoreCase = true)
+ || word.contains("劇場版", ignoreCase = true)
) {
// #1193
builder.episodeRange = EpisodeRange.unknownSeason()
@@ -78,8 +78,8 @@ class LabelFirstRawTitleParser : RawTitleParser() {
if (builder.subtitleLanguages.isEmpty()) {
when {
- "字幕组" in text -> {
- // 如果标题只有 "字幕组", 则认为是简日内嵌.
+ "字幕組" in text -> {
+ // 如果标题只有 "字幕組", 则认为是简日内嵌.
builder.subtitleLanguages.add(SubtitleLanguage.ChineseSimplified)
if (builder.subtitleKind == null) {
builder.subtitleKind = SubtitleKind.EMBEDDED
@@ -91,9 +91,9 @@ class LabelFirstRawTitleParser : RawTitleParser() {
// 判断字幕类型
if (builder.subtitleKind == null) {
builder.subtitleKind = when {
- "内嵌" in text || "內嵌" in text -> SubtitleKind.EMBEDDED
- "内封" in text || "內封" in text -> SubtitleKind.CLOSED
- "外挂" in text || "外掛" in text -> SubtitleKind.EXTERNAL_DISCOVER
+ "內嵌" in text || "內嵌" in text -> SubtitleKind.EMBEDDED
+ "內封" in text || "內封" in text -> SubtitleKind.CLOSED
+ "外掛" in text || "外掛" in text -> SubtitleKind.EXTERNAL_DISCOVER
// 将同时有超过两个非日语语言的资源,标记为非内嵌 #719
builder.subtitleLanguages.count { it != SubtitleLanguage.Japanese } >= 2 -> SubtitleKind.CLOSED
@@ -101,7 +101,7 @@ class LabelFirstRawTitleParser : RawTitleParser() {
}
}
- if (words.any { it == "无中文字幕" }) {
+ if (words.any { it == "無中文字幕" }) {
builder.subtitleLanguages.clear()
builder.subtitleKind = null
}
@@ -128,7 +128,7 @@ class LabelFirstRawTitleParser : RawTitleParser() {
private fun String.parseSubtitleLanguages(): Boolean {
var any = false
- if (this == "简体双语") {
+ if (this == "簡體雙語") {
builder.subtitleLanguages.add(SubtitleLanguage.ChineseSimplified)
builder.subtitleLanguages.add(SubtitleLanguage.Japanese)
return true
@@ -400,7 +400,7 @@ private fun String.getPrefix(): String? {
private val episodeRemove = listOf(
Regex("""第"""),
Regex("""_?(?:完|END)|\(完\)""", RegexOption.IGNORE_CASE),
- Regex("""[话集話]"""),
+ Regex("""[話集話]"""),
Regex("""_?v[0-9]""", RegexOption.IGNORE_CASE),
Regex("""版"""),
Regex("""Fin|FIN"""),
@@ -411,7 +411,7 @@ private val seasonEpisodePattern = Regex("""S(\d+)E(\d+)""")
// 1998 2022 需要去除, 否则会被匹配为剧集
private val yearPattern = Regex("""19[0-9]{2}|20[0-3][0-9]""")
-private val newAnime = Regex("(?:★?|★(.*)?)([0-9]|[一二三四五六七八九十]{0,4}) ?[月年] ?(?:新番|日剧)★?")
+private val newAnime = Regex("(?:★?|★(.*)?)([0-9]|[一二三四五六七八九十]{0,4}) ?[月年] ?(?:新番|日劇)★?")
// 性能没问题, 测了一般就 100 steps
@Suppress("RegExpRedundantEscape") // required on android
@@ -440,15 +440,15 @@ private val collectionPattern = Regex(
)
private val singleSpecialEpisode = Regex(
- """(SP|Special|Moview|OVA|OAD|小剧场|特别篇?|番外篇?)[0-9]{0,3}""",
+ """(SP|Special|Moview|OVA|OAD|小劇場|特別篇?|番外篇?)[0-9]{0,3}""",
RegexOption.IGNORE_CASE,
)
private val movieKeywords = setOf(
"Movie",
"MOVIE",
- "剧场版",
- "电影",
+ "劇場版",
+ "電影",
)
// S1
@@ -485,7 +485,7 @@ internal fun String.splitWords(vararg delimiters: Char = DEFAULT_SPLIT_WORDS_DEL
?: groups["v5"]
?: groups["v6"]
?: groups["v7"]
- // can be "WebRip 1080p HEVC-10bit AAC" or "简繁内封字幕"
+ // can be "WebRip 1080p HEVC-10bit AAC" or "簡繁內封字幕"
yield(tag!!.value)
}
if (index < text.length) {
diff --git a/datasource/api/src/commonMain/kotlin/topic/titles/PatternBasedRawTitleParser.kt b/datasource/api/src/commonMain/kotlin/topic/titles/PatternBasedRawTitleParser.kt
index 4ed3c4675..a404d9494 100644
--- a/datasource/api/src/commonMain/kotlin/topic/titles/PatternBasedRawTitleParser.kt
+++ b/datasource/api/src/commonMain/kotlin/topic/titles/PatternBasedRawTitleParser.kt
@@ -21,9 +21,9 @@ import me.him188.ani.datasources.api.topic.SubtitleLanguage
*/
class PatternBasedRawTitleParser : RawTitleParser() {
private val brackets = Regex("""[\[【(](.*?)[]】)]""")
- private val newAnime = Regex("(?:★?|★(.*)?)([0-9]|[一二三四五六七八九十]{0,4}) ?[月年] ?(?:新番|日剧)★?")
- private val specialEpisode = Regex("★特别篇") // 风之圣殿
- private val excludeTags = arrayOf(newAnime, specialEpisode, Regex("(短篇动画)|(招募)"))
+ private val newAnime = Regex("(?:★?|★(.*)?)([0-9]|[一二三四五六七八九十]{0,4}) ?[月年] ?(?:新番|日劇)★?")
+ private val specialEpisode = Regex("★特別篇") // 风之圣殿
+ private val excludeTags = arrayOf(newAnime, specialEpisode, Regex("(短篇動畫)|(招募)"))
override fun parse(text: String, allianceName: String?, builder: ParsedTopicTitle.Builder) {
return parse(
@@ -61,7 +61,7 @@ class PatternBasedRawTitleParser : RawTitleParser() {
}
index = result.range.last + 1
- val tagOrTags = result.groups[1]!!.value // can be "WebRip 1080p HEVC-10bit AAC" or "简繁内封字幕"
+ val tagOrTags = result.groups[1]!!.value // can be "WebRip 1080p HEVC-10bit AAC" or "簡繁內封字幕"
for (tag in splitTags(tagOrTags)) {
val anyMatched = processTag(
tag = tag,
@@ -70,7 +70,7 @@ class PatternBasedRawTitleParser : RawTitleParser() {
collectFrameRate = collectFrameRate,
collectMediaOrigin = collectMediaOrigin,
collectEpisode = {
- if (allianceName == "天使动漫论坛") return@processTag
+ if (allianceName == "天使動漫論壇") return@processTag
// if (text.indexOf(tag) < text.indexOf()) { // ignore tag that appeared before titles
collectEpisode(it)
// }
@@ -96,7 +96,7 @@ class PatternBasedRawTitleParser : RawTitleParser() {
val exceptTags = exceptTagsBuilder.toString()
.replace(newAnime) { "" }
.replace(specialEpisode) { "" }
- if (exceptTags.isBlank() || allianceName == "极影字幕社" || text.contains("沸羊羊")) {
+ if (exceptTags.isBlank() || allianceName == "極影字幕社" || text.contains("沸羊羊")) {
// B 类
val primaryTitles = unknownTags.removeFirstOrNull()
?: return // may contain multiple languages separated by '/' or other delimiters
@@ -357,10 +357,10 @@ class PatternBasedRawTitleParser : RawTitleParser() {
return true
}
if (this.startsWith("第")) {
- collectEpisode(EpisodeRange.single(this.removePrefix("第").removeSuffix("话").removeSuffix("話"))) // 千夏字幕組
+ collectEpisode(EpisodeRange.single(this.removePrefix("第").removeSuffix("話").removeSuffix("話"))) // 千夏字幕組
return true
}
- if (this.contains("SP", ignoreCase = true) || this.contains("小剧场")) {
+ if (this.contains("SP", ignoreCase = true) || this.contains("小劇場")) {
collectEpisode(EpisodeRange.single(this))
return true
}
diff --git a/datasource/api/src/commonTest/kotlin/RawPatternBasedTitleParserTestSuite.kt b/datasource/api/src/commonTest/kotlin/RawPatternBasedTitleParserTestSuite.kt
index 548039d5c..0a76dac7b 100644
--- a/datasource/api/src/commonTest/kotlin/RawPatternBasedTitleParserTestSuite.kt
+++ b/datasource/api/src/commonTest/kotlin/RawPatternBasedTitleParserTestSuite.kt
@@ -68,13 +68,13 @@ internal class RawPatternBasedTitleParserTestSuite {
// https://www.dmhy.org/topics/list?keyword=&sort_id=31&team_id=0&order=date-desc
private val episodeRangeData = listOf(
range(1, 12)
- to "[悠哈璃羽字幕社&LoliHouse] Overtake! [01-12 合集][WebRip 1080p HEVC-10bit AAC][简繁内封字幕][Fin]",
+ to "[悠哈璃羽字幕社&LoliHouse] Overtake! [01-12 合集][WebRip 1080p HEVC-10bit AAC][簡繁內封字幕][Fin]",
range(1, 77) to
- "[DBD-Raws][偶像活动! 第三季&第四季/Aikatsu! Akari Generation/アイカツ! あかり Generation][01-77TV全集+特典映像][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV]",
+ "[DBD-Raws][偶像活動! 第三季&第四季/Aikatsu! Akari Generation/アイカツ! あかり Generation][01-77TV全集+特典映像][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV]",
range(1, 12) to
- "【喵萌奶茶屋】★01月新番★[最弱驯魔师开始了捡垃圾之旅。 / Saijaku Tamer wa Gomi Hiroi no Tabi wo Hajimemashita][01-12END][1080p][简日双语][招募翻译]",
+ "【喵萌奶茶屋】★01月新番★[最弱馴魔師開始了撿垃圾之旅。 / Saijaku Tamer wa Gomi Hiroi no Tabi wo Hajimemashita][01-12END][1080p][簡日雙語][招募翻譯]",
range(1, 12) to
- " [百冬练习组&LoliHouse] 为了在异世界也能抚摸毛茸茸而努力。 / Isekai de Mofumofu Nadenade suru Tame ni Ganbattemasu [01-12 合集][WebRip 1080p HEVC-10bit AAC][简繁内封字幕][Fin]",
+ " [百冬練習組&LoliHouse] 爲了在異世界也能撫摸毛茸茸而努力。 / Isekai de Mofumofu Nadenade suru Tame ni Ganbattemasu [01-12 合集][WebRip 1080p HEVC-10bit AAC][簡繁內封字幕][Fin]",
)
@TestFactory
diff --git a/datasource/api/src/commonTest/kotlin/title/TitleParserTest.kt b/datasource/api/src/commonTest/kotlin/title/TitleParserTest.kt
index 199d75513..d4ba4acc3 100644
--- a/datasource/api/src/commonTest/kotlin/title/TitleParserTest.kt
+++ b/datasource/api/src/commonTest/kotlin/title/TitleParserTest.kt
@@ -52,7 +52,7 @@ class TitleParserTest : PatternBasedTitleParserTestSuite() {
@Test
fun special() {
- val r = parse("特典映像/[DBD-Raws] [龙猫] [特典映像] [01][1080P][BDRip][HEVC-10bit][AC3].mkv")
+ val r = parse("特典映像/[DBD-Raws] [龍貓] [特典映像] [01][1080P][BDRip][HEVC-10bit][AC3].mkv")
assertEquals("SP01..SP01", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -60,7 +60,7 @@ class TitleParserTest : PatternBasedTitleParserTestSuite() {
@Test
fun `movie v2 as 01`() {
- val r = parse("[北宇治字幕组] 蓦然回首 / Look Back [Movie v2][WebRip][HEVC_AAC×2][简繁日内封]")
+ val r = parse("[北宇治字幕組] 驀然回首 / Look Back [Movie v2][WebRip][HEVC_AAC×2][簡繁日內封]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -68,7 +68,7 @@ class TitleParserTest : PatternBasedTitleParserTestSuite() {
@Test
fun `movie as 01`() {
- val r = parse("[北宇治字幕组] 蓦然回首 / Look Back [Movie][WebRip][HEVC_AAC×2][简繁日内封]")
+ val r = parse("[北宇治字幕組] 驀然回首 / Look Back [Movie][WebRip][HEVC_AAC×2][簡繁日內封]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -76,7 +76,7 @@ class TitleParserTest : PatternBasedTitleParserTestSuite() {
@Test
fun `no subtitle`() {
- val r = parse("[北宇治字幕组] 蓦然回首 / Look Back [Movie][WebRip][HEVC_AAC×2][无中文字幕]")
+ val r = parse("[北宇治字幕組] 驀然回首 / Look Back [Movie][WebRip][HEVC_AAC×2][無中文字幕]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -84,7 +84,7 @@ class TitleParserTest : PatternBasedTitleParserTestSuite() {
@Test
fun `no subtitle even if matches`() {
- val r = parse("[北宇治字幕组] 蓦然回首 / Look Back [Movie][WebRip][HEVC_AAC×2][简繁日内封][无中文字幕]")
+ val r = parse("[北宇治字幕組] 驀然回首 / Look Back [Movie][WebRip][HEVC_AAC×2][簡繁日內封][無中文字幕]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -92,7 +92,7 @@ class TitleParserTest : PatternBasedTitleParserTestSuite() {
@Test
fun `S1-S2`() {
- val r = parse("[H-Enc] 我心里危险的东西 / Boku no Kokoro no Yabai Yatsu S1-S2 (BDRip 1080p HEVC AAC)\n")
+ val r = parse("[H-Enc] 我心裏危險的東西 / Boku no Kokoro no Yabai Yatsu S1-S2 (BDRip 1080p HEVC AAC)\n")
assertEquals("S1+S2", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -100,7 +100,7 @@ class TitleParserTest : PatternBasedTitleParserTestSuite() {
@Test
fun `S1-S3`() {
- val r = parse("[H-Enc] 我心里危险的东西 / Boku no Kokoro no Yabai Yatsu S1-S3 (BDRip 1080p HEVC AAC)\n")
+ val r = parse("[H-Enc] 我心裏危險的東西 / Boku no Kokoro no Yabai Yatsu S1-S3 (BDRip 1080p HEVC AAC)\n")
assertEquals("S1+S2+S3", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
diff --git a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTestRecent202503.kt b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTestRecent202503.kt
index a2608a3fc..7cd4596ef 100644
--- a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTestRecent202503.kt
+++ b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTestRecent202503.kt
@@ -36,7 +36,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690640_YUI_Yami_Shibai_14_09_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社&西农YUI汉化组】[暗芝居 第十四季_Yami Shibai 14][09][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社&西農YUI漢化組】[暗芝居 第十四季_Yami Shibai 14][09][x264 1080p][CHS]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -48,7 +48,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690639_LoliHouse_Nihon_e_Youkoso_Elf_san___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 精灵来日 / 歡迎來到日本,妖精小姐。 / 日本へようこそエルフさん。 / Nihon e Youkoso Elf-san. - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 精靈來日 / 歡迎來到日本,妖精小姐。 / 日本へようこそエルフさん。 / Nihon e Youkoso Elf-san. - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -60,7 +60,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690638_Arafou_Otoko_no_Isekai_Tsuuhan_Seikatsu_08_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]中年男的异世界网购生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [08] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]中年男的異世界網購生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [08] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -72,7 +72,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690637_Magic_Maker_Isekai_Mahou_no_Tsukurikata_08_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]魔术发明家 ~异世界魔法的制作方法~ / Magic Maker: Isekai Mahou no Tsukurikata [08] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]魔術發明家 ~異世界魔法的製作方法~ / Magic Maker: Isekai Mahou no Tsukurikata [08] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -85,7 +85,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690636_Botsuraku_Yotei_no_Kizoku_dakedo_Hima_Datta_kara_Mahou_wo_Kiwametemita_07_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]虽然我是注定没落的贵族,闲来无事只好来深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita [07] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]雖然我是註定沒落的貴族,閒來無事只好來深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita [07] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -110,7 +110,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690634_Class_no_Daikirai_na_Joshi_to_Kekkon_Suru_Koto_ni_Natta_09_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 我和班上最讨厌的女生结婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [09][1080p][简繁内封]")
+ parse("[桜都字幕組] 我和班上最討厭的女生結婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [09][1080p][簡繁內封]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -135,7 +135,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690632_Botsuraku_Yotei_no_Kizoku_dakedo_Hima_Datta_kara_Mahou_wo_Kiwametemita_07_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]虽然我是注定没落的贵族,闲来无事只好来深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita [07] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]雖然我是註定沒落的貴族,閒來無事只好來深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita [07] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -147,7 +147,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690631_Magic_Maker_Isekai_Mahou_no_Tsukurikata_08_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]魔术发明家 ~异世界魔法的制作方法~ / Magic Maker: Isekai Mahou no Tsukurikata [08] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]魔術發明家 ~異世界魔法的製作方法~ / Magic Maker: Isekai Mahou no Tsukurikata [08] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -159,7 +159,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690630_Class_no_Daikirai_na_Joshi_to_Kekkon_Suru_Koto_ni_Natta_09_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 我和班上最讨厌的女生结婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [09][1080p][简体内嵌]")
+ parse("[桜都字幕組] 我和班上最討厭的女生結婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [09][1080p][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -171,7 +171,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690629_Arafou_Otoko_no_Isekai_Tsuuhan_Seikatsu_08_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]中年男的异世界网购生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [08] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]中年男的異世界網購生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [08] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -182,7 +182,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690628_Dr_STONE_Science_Future_04_1080p_2025_1`() {
kotlin.run {
- val r = parse("[猎户压制部] 新石纪 第四季 科学与未来 / Dr.STONE:Science Future [04] [1080p] [繁日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 新石紀 第四季 科學與未來 / Dr.STONE:Science Future [04] [1080p] [繁日內嵌] [2025年1月番]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -193,7 +193,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690627_Dr_STONE_Science_Future_04_1080p_2025_1`() {
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第四季 科学与未来 / Dr.STONE:Science Future [04] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第四季 科學與未來 / Dr.STONE:Science Future [04] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -226,7 +226,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690624_YYQ_New_Doraemon_A_852_2025_03_01_AVC_1080P_GB_JP`() {
kotlin.run {
- val r = parse("[夜莺家族&YYQ字幕组]New Doraemon 哆啦A梦新番[852][2025.03.01][AVC][1080P][GB_JP]")
+ val r = parse("[夜鶯家族&YYQ字幕組]New Doraemon 哆啦A夢新番[852][2025.03.01][AVC][1080P][GB_JP]")
assertEquals("852..852", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -237,7 +237,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690623_The_Colors_Within_2024_1080p_BluRay_x264_DTS_CTRLHD`() {
kotlin.run {
- val r = parse("你的颜色[简繁字幕].The.Colors.Within.2024.1080p.BluRay.x264.DTS-CTRLHD")
+ val r = parse("你的顏色[簡繁字幕].The.Colors.Within.2024.1080p.BluRay.x264.DTS-CTRLHD")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -260,7 +260,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690620_Yoru_wa_Neko_to_Issho_3_73_HEVC_10bit_1080P`() {
kotlin.run {
- val r = parse("[织梦字幕组] 与猫共度的夜晚 Yoru wa Neko to Issho 3 [73] [HEVC-10bit 1080P] [简日双语] [特效字幕]")
+ val r = parse("[織夢字幕組] 與貓共度的夜晚 Yoru wa Neko to Issho 3 [73] [HEVC-10bit 1080P] [簡日雙語] [特效字幕]")
assertEquals("73..73", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -271,7 +271,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690619_SAKAMOTO_DAYS_08_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 坂本日常 / SAKAMOTO DAYS [08][WebRip][HEVC_AAC][简繁日內封]")
+ val r = parse("[北宇治字幕組] 坂本日常 / SAKAMOTO DAYS [08][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -282,7 +282,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690618_SAKAMOTO_DAYS_08_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 坂本日常 / SAKAMOTO DAYS [08][WebRip][HEVC_AAC][繁日內嵌]")
+ val r = parse("[北宇治字幕組] 坂本日常 / SAKAMOTO DAYS [08][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -293,7 +293,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690617_SAKAMOTO_DAYS_08_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 坂本日常 / SAKAMOTO DAYS [08][WebRip][HEVC_AAC][简日內嵌]")
+ val r = parse("[北宇治字幕組] 坂本日常 / SAKAMOTO DAYS [08][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -304,7 +304,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690616_161_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[吞噬星空][第161集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[吞噬星空][第161集][國語中字][WEB-MKV][2160P]")
assertEquals("161..161", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -316,7 +316,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690614_Nichijou_My_Ordinary_Life_TV_OVA_2023_05_13`() {
kotlin.run {
val r =
- parse("[整理搬运] 日常 (Nichijou/My Ordinary Life):TV动画+OVA+漫画+音乐+其他;日语音轨; 外挂简中字幕 (整理时间:2023.05.13)")
+ parse("[整理搬運] 日常 (Nichijou/My Ordinary Life):TV動畫+OVA+漫畫+音樂+其他;日語音軌; 外掛簡中字幕 (整理時間:2023.05.13)")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -327,7 +327,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690612_SweetSub_Momentary_Lily_09_WebRip_1080P_AVC_8bit`() {
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][09][WebRip][1080P][AVC 8bit][简日内嵌]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][09][WebRip][1080P][AVC 8bit][簡日內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -339,7 +339,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690611_SweetSub_LoliHouse_Momentary_Lily___09v2_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[SweetSub&LoliHouse] 刹那之花 / Momentary Lily - 09v2 [WebRip 1080p HEVC-10bit AAC][简日内封字幕]")
+ parse("[SweetSub&LoliHouse] 剎那之花 / Momentary Lily - 09v2 [WebRip 1080p HEVC-10bit AAC][簡日內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -351,7 +351,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690610_Sentai_Red_Isekai_de_Boukensha_ni_Naru_08_1080p_WebRip_x264_AAC_CHS`() {
kotlin.run {
val r =
- parse("[蓝白汉化] 战队红战士在异世界当冒险者 / Sentai Red Isekai de Boukensha ni Naru [08][1080p][WebRip][x264_AAC][CHS]")
+ parse("[藍白漢化] 戰隊紅戰士在異世界當冒險者 / Sentai Red Isekai de Boukensha ni Naru [08][1080p][WebRip][x264_AAC][CHS]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -362,7 +362,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690608_SweetSub_Momentary_Lily_09_WebRip_1080P_AV1_10bit`() {
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][09][WebRip][1080P][AV1 10bit][简日内封]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][09][WebRip][1080P][AV1 10bit][簡日內封]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -374,7 +374,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690607_Ai_Yori_Aoshi_TV_2002_2003_OVA_CD_2024_06_30`() {
kotlin.run {
val r =
- parse("[整理搬运] 青出于蓝/青蓝姻缘/未婚关系 (藍より青し) (Ai Yori Aoshi):TV动画 (2002年版、2003年版)+OVA+漫画+CD+其他;日语音轨; 外挂繁中字幕 (整理时间:2024.06.30)")
+ parse("[整理搬運] 青出於藍/青藍姻緣/未婚關係 (藍より青し) (Ai Yori Aoshi):TV動畫 (2002年版、2003年版)+OVA+漫畫+CD+其他;日語音軌; 外掛繁中字幕 (整理時間:2024.06.30)")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -386,7 +386,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690606__21_K_ON__21_TV_2009_2010_2023_05_09`() {
kotlin.run {
val r =
- parse("[整理搬运] 轻音少女 (けいおん !) (K-ON !):TV动画 (2009年版、2010年版)+剧场版+漫画+演唱会+其他;日语音轨; 外挂简中字幕 (整理时间:2023.05.09)")
+ parse("[整理搬運] 輕音少女 (けいおん !) (K-ON !):TV動畫 (2009年版、2010年版)+劇場版+漫畫+演唱會+其他;日語音軌; 外掛簡中字幕 (整理時間:2023.05.09)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -410,7 +410,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690604_Chibi_Maruko_chan_II_1469_2025_03_02_GB_1080P_MP4`() {
kotlin.run {
val r =
- parse("[丸子家族][樱桃小丸子第二期(Chibi Maruko-chan II)][1469]樱家的女儿节玩偶骚动&小玉想要午饭添菜[2025.03.02][GB][1080P][MP4]")
+ parse("[丸子家族][櫻桃小丸子第二期(Chibi Maruko-chan II)][1469]櫻家的女兒節玩偶騷動&小玉想要午飯添菜[2025.03.02][GB][1080P][MP4]")
assertEquals("1469..1469", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -433,7 +433,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690601_Grisaia_Phantom_Trigger_09_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 灰色:幻影扳机 / Grisaia:Phantom Trigger [09][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 灰色:幻影扳機 / Grisaia:Phantom Trigger [09][1080p][簡繁內封]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -455,7 +455,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690599_Grisaia_Phantom_Trigger_09_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 灰色:幻影扳机 / Grisaia:Phantom Trigger [09][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 灰色:幻影扳機 / Grisaia:Phantom Trigger [09][1080p][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -467,7 +467,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690598_Har_Guu_TV_OVA_2023_12_12`() {
kotlin.run {
val r =
- parse("[整理搬运] 热带雨林的爆笑生活/哈雷小子 (ジャングルはいつもハレのちグゥ) (Haré+Guu):TV动画+OVA+漫画+音乐+其他;日语音轨; 外挂简中字幕 (整理时间:2023.12.12)")
+ parse("[整理搬運] 熱帶雨林的爆笑生活/哈雷小子 (ジャングルはいつもハレのちグゥ) (Haré+Guu):TV動畫+OVA+漫畫+音樂+其他;日語音軌; 外掛簡中字幕 (整理時間:2023.12.12)")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -479,7 +479,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690596_Ai_Yori_Aoshi_TV_2002_2003_OVA_CD_2024_06_30`() {
kotlin.run {
val r =
- parse("【归档】[整理搬运] 青出于蓝/青蓝姻缘/未婚关系 (藍より青し) (Ai Yori Aoshi):TV动画 (2002年版、2003年版)+OVA+漫画+CD+其他;日语音轨; 外挂繁中字幕 (整理时间:2024.06.30)")
+ parse("【歸檔】[整理搬運] 青出於藍/青藍姻緣/未婚關係 (藍より青し) (Ai Yori Aoshi):TV動畫 (2002年版、2003年版)+OVA+漫畫+CD+其他;日語音軌; 外掛繁中字幕 (整理時間:2024.06.30)")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -501,7 +501,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690592_01_Act_2_Unnamed_Memory_Act_2_20_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[无名记忆 Act.2 / Unnamed Memory Act.2][20][1080p][简日双语][招募翻译时轴]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[無名記憶 Act.2 / Unnamed Memory Act.2][20][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -512,7 +512,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690586___21_NF_WebRip_AI2160p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 青之箱 - 21 [NF WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 青之箱 - 21 [NF WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -523,7 +523,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690585___21_NF_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 青之箱 - 21 [NF WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 青之箱 - 21 [NF WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -535,7 +535,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690584_LoliHouse_Douse_Koishite_Shimaunda___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 终究、与你相恋 / Douse, Koishite Shimaunda - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 終究、與你相戀 / Douse, Koishite Shimaunda - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -548,7 +548,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690583_Dungeon_ni_Deai_o_Motomeru_no_wa_Machigatte_Iru_Darouka_Familia_Myth_V_14_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 在地下城寻求邂逅是否搞错了什么 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [14][1080p][简繁内封]")
+ parse("[桜都字幕組] 在地下城尋求邂逅是否搞錯了什麼 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [14][1080p][簡繁內封]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -560,7 +560,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690582_LoliHouse_Shangri_La_Frontier___46_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] Shangri-La Frontier / 香格里拉·开拓异境~粪作猎手挑战神作~ - 46 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] Shangri-La Frontier / 香格里拉·開拓異境~糞作獵手挑戰神作~ - 46 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("46..46", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -586,7 +586,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690580_Dungeon_ni_Deai_o_Motomeru_no_wa_Machigatte_Iru_Darouka_Familia_Myth_V_14_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 在地下城寻求邂逅是否搞错了什么 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [14][1080p][简体内嵌]")
+ parse("[桜都字幕組] 在地下城尋求邂逅是否搞錯了什麼 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [14][1080p][簡體內嵌]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -597,7 +597,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690579_LoliHouse_Medalist___09_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[喵萌奶茶屋&LoliHouse] 金牌得主 / Medalist - 09 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ val r = parse("[喵萌奶茶屋&LoliHouse] 金牌得主 / Medalist - 09 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -621,7 +621,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690577_Billion_Meta_Lab_1080P_WEBRIP`() {
kotlin.run {
- val r = parse("[Billion Meta Lab] 你的颜色 [1080P][WEBRIP][简日内嵌双语]")
+ val r = parse("[Billion Meta Lab] 你的顏色 [1080P][WEBRIP][簡日內嵌雙語]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -643,7 +643,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690575_01_Medalist_09_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[金牌得主 / Medalist][09][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[金牌得主 / Medalist][09][1080p][簡日雙語][招募翻譯]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -654,7 +654,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690574_______09_CR_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 我独自升级 第二季 -起于暗影- - 09 [CR WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 我獨自升級 第二季 -起於暗影- - 09 [CR WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -727,7 +727,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690567_____Rurouni_Kenshin_Meiji_Kenkaku_Romantan___Kyoto_Douran_44_1080p_2024_10`() {
kotlin.run {
val r =
- parse("[猎户手抄部] 神剑闯江湖 -明治剑客浪漫谭- 京都动乱 / Rurouni Kenshin:Meiji Kenkaku Romantan - Kyoto Douran [44] [1080p] [繁日内嵌] [2024年10月番]")
+ parse("[獵戶手抄部] 神劍闖江湖 -明治劍客浪漫譚- 京都動亂 / Rurouni Kenshin:Meiji Kenkaku Romantan - Kyoto Douran [44] [1080p] [繁日內嵌] [2024年10月番]")
assertEquals("44..44", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -739,7 +739,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690566_____Rurouni_Kenshin_Meiji_Kenkaku_Romantan___Kyoto_Douran_44_1080p_2024_10`() {
kotlin.run {
val r =
- parse("[猎户手抄部] 浪客剑心 -明治剑客浪漫谭- 京都动乱 / Rurouni Kenshin: Meiji Kenkaku Romantan - Kyoto Douran [44] [1080p] [简日内嵌] [2024年10月番]")
+ parse("[獵戶手抄部] 浪客劍心 -明治劍客浪漫譚- 京都動亂 / Rurouni Kenshin: Meiji Kenkaku Romantan - Kyoto Douran [44] [1080p] [簡日內嵌] [2024年10月番]")
assertEquals("44..44", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -751,7 +751,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690565_Dr_STONE_SCIENCE_FUTURE_03_CR_WebRip_1080p_HEVC_AAC_S4`() {
kotlin.run {
val r =
- parse("[芝士动物朋友] 石纪元 科学与未来 / Dr.STONE SCIENCE FUTURE [03][CR-WebRip][1080p][HEVC+AAC][简繁内封](新石纪 第四季 S4)")
+ parse("[芝士動物朋友] 石紀元 科學與未來 / Dr.STONE SCIENCE FUTURE [03][CR-WebRip][1080p][HEVC+AAC][簡繁內封](新石紀 第四季 S4)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -763,7 +763,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690564_LoliHouse_Kurakon___09_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 我和班上最讨厌的女生结婚了。 / クラスの大嫌いな女子と結婚することになった。 / Kurakon - 09 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 我和班上最討厭的女生結婚了。 / クラスの大嫌いな女子と結婚することになった。 / Kurakon - 09 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -787,7 +787,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690562_Kuroiwa_Medaka_ni_Watashi_no_Kawaii_ga_Tsuujinai_08_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]我的可爱对黑岩目高不管用 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai [08] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]我的可愛對黑巖目高不管用 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai [08] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -800,7 +800,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690561_Kuroiwa_Medaka_ni_Watashi_no_Kawaii_ga_Tsuujinai_08_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]我的可爱对黑岩目高不管用 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai [08] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]我的可愛對黑巖目高不管用 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai [08] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -822,7 +822,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690558_10_Touhai_Ura_Rate_Mahjong_Touhai_Roku_20_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[冻牌 / Touhai: Ura Rate Mahjong Touhai Roku][20][1080p][简体][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[凍牌 / Touhai: Ura Rate Mahjong Touhai Roku][20][1080p][簡體][招募翻譯]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -844,7 +844,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690556_78_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[仙逆][第78集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[仙逆][第78集][國語中字][WEB-MKV][2160P]")
assertEquals("78..78", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -866,7 +866,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690549_10_DAIMA_Dragon_Ball_DAIMA_19_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】【龙珠DAIMA Dragon Ball DAIMA】【19】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【10月新番】【龍珠DAIMA Dragon Ball DAIMA】【19】【GB_MP4】【1920X1080】")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -888,7 +888,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690547_10_DAIMA_Dragon_Ball_DAIMA_19_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】【龙珠DAIMA Dragon Ball DAIMA】【19】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【10月新番】【龍珠DAIMA Dragon Ball DAIMA】【19】【GB_MP4】【1280X720】")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -913,7 +913,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690545_Sub_7_Tokidoki_Bosotto_Russia_go_de_Dereru_Tonari_no_Alya_san_09_HEVC_10Bit_1080P`() {
kotlin.run {
val r =
- parse("[新Sub][7月新番][不时轻声地以俄语遮羞的邻座艾莉同学_Tokidoki Bosotto Russia-go de Dereru Tonari no Alya-san][09][HEVC][10Bit][1080P][简日双语][招募翻译]")
+ parse("[新Sub][7月新番][不時輕聲地以俄語遮羞的鄰座艾莉同學_Tokidoki Bosotto Russia-go de Dereru Tonari no Alya-san][09][HEVC][10Bit][1080P][簡日雙語][招募翻譯]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -924,7 +924,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690544_Himitsu_no_Aipri_47`() {
kotlin.run {
- val r = parse("[雪飄工作室][ひみつのアイプリ/Himitsu_no_Aipri/秘密的美妙公主][47][简繁外挂](检索:/美妙旋律/美妙天堂/美妙頻道/美妙魔法)")
+ val r = parse("[雪飄工作室][ひみつのアイプリ/Himitsu_no_Aipri/祕密的美妙公主][47][簡繁外掛](檢索:/美妙旋律/美妙天堂/美妙頻道/美妙魔法)")
assertEquals("47..47", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -936,7 +936,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690543_Himitsu_no_Aipri_720P_47`() {
kotlin.run {
val r =
- parse("[雪飄工作室][ひみつのアイプリ/Himitsu_no_Aipri/秘密的美妙公主][720P][47][繁](检索:/美妙旋律/美妙天堂/美妙頻道/美妙魔法)")
+ parse("[雪飄工作室][ひみつのアイプリ/Himitsu_no_Aipri/祕密的美妙公主][720P][47][繁](檢索:/美妙旋律/美妙天堂/美妙頻道/美妙魔法)")
assertEquals("47..47", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -948,7 +948,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690542_LoliHouse_A_Aparida___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 离开A级队伍的我,和从前的弟子往迷宫深处迈进 / Aparida - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 離開A級隊伍的我,和從前的弟子往迷宮深處邁進 / Aparida - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -960,7 +960,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690541_LoliHouse_NEET_Kunoichi___09_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 我与尼特女忍者的莫名同居生活 / NEET Kunoichi - 09 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 我與尼特女忍者的莫名同居生活 / NEET Kunoichi - 09 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -995,7 +995,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690538_Strange_Raw_SAKAMOTO_DAYS_S01_08_Bilibili_WEB_DL_1080P_AVC_8Bits_AAC_2_0`() {
kotlin.run {
val r =
- parse("[Strange-Raw] 坂本日常 第一季 / SAKAMOTO DAYS S01 [08] [Bilibili] [WEB-DL] [1080P AVC-8Bits AAC 2.0] [简日内嵌字幕]")
+ parse("[Strange-Raw] 坂本日常 第一季 / SAKAMOTO DAYS S01 [08] [Bilibili] [WEB-DL] [1080P AVC-8Bits AAC 2.0] [簡日內嵌字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1006,7 +1006,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690537_1_08_HEVC_x265_10bit_1080p`() {
kotlin.run {
- val r = parse("[云歌字幕组][1月新番][欢迎来到日本,精灵小姐][08][HEVC][x265 10bit][1080p][简日双语]")
+ val r = parse("[雲歌字幕組][1月新番][歡迎來到日本,精靈小姐][08][HEVC][x265 10bit][1080p][簡日雙語]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1018,7 +1018,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690536_VCB_Studio_Sword_Art_Online_10_bit_1080p_HEVC_BDRip_S1_2_EE_Reseed_Fin`() {
kotlin.run {
val r =
- parse("[VCB-Studio] 刀剑神域 / Sword Art Online / ソードアート・オンライン 10-bit 1080p HEVC BDRip [S1-2+EE+序列之争 Reseed Fin]")
+ parse("[VCB-Studio] 刀劍神域 / Sword Art Online / ソードアート・オンライン 10-bit 1080p HEVC BDRip [S1-2+EE+序列之爭 Reseed Fin]")
assertEquals("01..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1030,7 +1030,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690535_LoliHouse_Ameku_Takao_s_Detective_Karte___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[悠哈璃羽字幕社&LoliHouse] 天久鹰央的推理病历表 / Ameku Takao's Detective Karte - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[悠哈璃羽字幕社&LoliHouse] 天久鷹央的推理病歷表 / Ameku Takao's Detective Karte - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1042,7 +1042,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690533_LoliHouse_S_Beheneko___10_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] S级怪兽《贝希摩斯》被误认成小猫,成为精灵女孩的骑士(宠物)一起生活 / Beheneko - 10 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] S級怪獸《貝希摩斯》被誤認成小貓,成爲精靈女孩的騎士(寵物)一起生活 / Beheneko - 10 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1054,7 +1054,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690531_You_and_Idol_Precure_1080p_05_Q`() {
kotlin.run {
val r =
- parse("[雪飘工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/与你同为 偶像光之美少女♪][1080p][05][简繁外挂](检索:Q娃)")
+ parse("[雪飄工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/與你同爲 偶像光之美少女♪][1080p][05][簡繁外掛](檢索:Q娃)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1066,7 +1066,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690530_You_and_Idol_Precure_720p_05_Q`() {
kotlin.run {
val r =
- parse("[雪飄工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/与你同为 偶像光之美少女♪][720p][05][繁體內嵌](檢索:Q娃)")
+ parse("[雪飄工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/與你同爲 偶像光之美少女♪][720p][05][繁體內嵌](檢索:Q娃)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1078,7 +1078,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690529_You_and_Idol_Precure_720p_05_Q`() {
kotlin.run {
val r =
- parse("[雪飘工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/与你同为 偶像光之美少女♪][720p][05][简体内嵌](检索:Q娃)")
+ parse("[雪飄工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/與你同爲 偶像光之美少女♪][720p][05][簡體內嵌](檢索:Q娃)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1089,7 +1089,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690528_DBFC_020end_1080P_MP4`() {
kotlin.run {
- val r = parse("【DBFC字幕组】【龙珠 大魔】【020end】【中日双语字幕】【1080P】【MP4】")
+ val r = parse("【DBFC字幕組】【龍珠 大魔】【020end】【中日雙語字幕】【1080P】【MP4】")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1100,7 +1100,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690527_______09_CR_WebRip_AI2160p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 我独自升级 第二季 -起于暗影- - 09 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 我獨自升級 第二季 -起於暗影- - 09 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -1135,7 +1135,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690524_MingY__That_s_Journey__Zatsu_Tabi_That_s_Journey_01_WebRip`() {
kotlin.run {
val r =
- parse("[MingY] 随兴旅 -That's Journey- / Zatsu Tabi: That's Journey [01][先行版][WebRip][简日内嵌](检索:杂旅)")
+ parse("[MingY] 隨興旅 -That's Journey- / Zatsu Tabi: That's Journey [01][先行版][WebRip][簡日內嵌](檢索:雜旅)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1146,7 +1146,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690523_YUI_Yami_Shibai_14_08_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社&西农YUI汉化组】[暗芝居 第十四季_Yami Shibai 14][08][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社&西農YUI漢化組】[暗芝居 第十四季_Yami Shibai 14][08][x264 1080p][CHS]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1159,7 +1159,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690522_LoliHouse_____Ore_dake_Level_Up_na_Ken_Solo_Leveling___21_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 我独自升级 -起于暗影- / Ore dake Level Up na Ken / Solo Leveling - 21 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 我獨自升級 -起於暗影- / Ore dake Level Up na Ken / Solo Leveling - 21 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1171,7 +1171,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690517__21_21_MIRAI_DAYS_Maho_Girls_Precure_21_21__21_21_1080p_08_Q`() {
kotlin.run {
val r =
- parse("[雪飘工作室][魔法つかいプリキュア!!~MIRAI DAYS~/Maho_Girls_Precure!!/魔法少女 光之美少女!!~未来的日子~][1080p][08][简繁外挂](检索:Q娃)")
+ parse("[雪飄工作室][魔法つかいプリキュア!!~MIRAI DAYS~/Maho_Girls_Precure!!/魔法少女 光之美少女!!~未來的日子~][1080p][08][簡繁外掛](檢索:Q娃)")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1183,7 +1183,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690516__21_21_MIRAI_DAYS_Maho_Girls_Precure_21_21__21_21_720p_08_Q`() {
kotlin.run {
val r =
- parse("[雪飘工作室][魔法つかいプリキュア!!~MIRAI DAYS~/Maho_Girls_Precure!!/魔法少女 光之美少女!!~未来的日子~][720p][08][简体内嵌](检索:Q娃)")
+ parse("[雪飄工作室][魔法つかいプリキュア!!~MIRAI DAYS~/Maho_Girls_Precure!!/魔法少女 光之美少女!!~未來的日子~][720p][08][簡體內嵌](檢索:Q娃)")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1206,7 +1206,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690512_10_20_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&澄空学园&华盟字幕社&千夏字幕组】★10月新番[冻牌][20][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組&澄空學園&華盟字幕社&千夏字幕組】★10月新番[凍牌][20][1080P][簡體][MP4]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1228,7 +1228,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690510_Ao_no_Exorcist_Yosuga_Hen_09_1080P_MP4`() {
kotlin.run {
- val r = parse("【豌豆字幕组】[青之驱魔师 终夜篇 / Ao no Exorcist _Yosuga Hen][09][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組】[青之驅魔師 終夜篇 / Ao no Exorcist _Yosuga Hen][09][簡體][1080P][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1250,7 +1250,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690508___08_CR_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 药屋少女的呢喃 第二季 - 08 [CR WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 藥屋少女的呢喃 第二季 - 08 [CR WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1261,7 +1261,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690507_1155_2_WEBRIP_MKV_1080P`() {
kotlin.run {
- val r = parse("[银色子弹字幕组][名侦探柯南][第1155集 追踪!侦探出租车2][WEBRIP][简繁日多语MKV][1080P]")
+ val r = parse("[銀色子彈字幕組][名偵探柯南][第1155集 追蹤!偵探出租車2][WEBRIP][簡繁日多語MKV][1080P]")
assertEquals("1155..1155", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1272,7 +1272,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690506_1155_2_WEBRIP_MP4_1080P`() {
kotlin.run {
- val r = parse("[银色子弹字幕组][名侦探柯南][第1155集 追蹤!偵探計程車2][WEBRIP][繁日雙語MP4][1080P]")
+ val r = parse("[銀色子彈字幕組][名偵探柯南][第1155集 追蹤!偵探計程車2][WEBRIP][繁日雙語MP4][1080P]")
assertEquals("1155..1155", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1283,7 +1283,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690505_1155_2_WEBRIP_MP4_1080P`() {
kotlin.run {
- val r = parse("[银色子弹字幕组][名侦探柯南][第1155集 追踪!侦探出租车2][WEBRIP][简日双语MP4][1080P]")
+ val r = parse("[銀色子彈字幕組][名偵探柯南][第1155集 追蹤!偵探出租車2][WEBRIP][簡日雙語MP4][1080P]")
assertEquals("1155..1155", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1364,7 +1364,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690498_Sub_BanG_Dream_21_Ave_Mujica_08_1080P_AVC_AAC_WebRip`() {
kotlin.run {
- val r = parse("[霜庭云花Sub][BanG Dream! Ave Mujica][08][1080P][AVC AAC][简日双语][WebRip]")
+ val r = parse("[霜庭雲花Sub][BanG Dream! Ave Mujica][08][1080P][AVC AAC][簡日雙語][WebRip]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1375,7 +1375,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690497___20_CR_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 龙珠大魔 - 20 [CR WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 龍珠大魔 - 20 [CR WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1387,7 +1387,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690496_LoliHouse_Ishura_S2___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 异修罗 第二季 / Ishura S2 - 08 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 異修羅 第二季 / Ishura S2 - 08 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1434,7 +1434,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690492_LoliHouse_Myth_of_Emotions_Sousei_no_Aquarion_Myth_of_Emotions___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 想星的大天使 Myth of Emotions / Sousei no Aquarion: Myth of Emotions - 08 [WebRip 1080p HEVC-10bit AAC][无字幕]")
+ parse("[LoliHouse] 想星的大天使 Myth of Emotions / Sousei no Aquarion: Myth of Emotions - 08 [WebRip 1080p HEVC-10bit AAC][無字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1472,7 +1472,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690489_LoliHouse_Ao_no_Hako_Blue_Box___20_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 青箱 / Ao no Hako / Blue Box - 20 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 青箱 / Ao no Hako / Blue Box - 20 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1507,7 +1507,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690486_A_Doraemon1979_1998_3_7_1080P_WEB_A_MKV`() {
kotlin.run {
val r =
- parse("[哆啦字幕组][哆啦A梦大山版附映中篇 Doraemon1979][1998.3.7][1080P][WEB][简日&繁日][哆啦A梦归来了][数码修复版][MKV]")
+ parse("[哆啦字幕組][哆啦A夢大山版附映中篇 Doraemon1979][1998.3.7][1080P][WEB][簡日&繁日][哆啦A夢歸來了][數碼修復版][MKV]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1518,7 +1518,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690485_60_WEBRIP_MP4_MP4_MKV_1080P`() {
kotlin.run {
- val r = parse("[银色子弹字幕组][名侦探柯南][第60集 插画家杀人事件][WEBRIP][简日双语MP4/繁日雙語MP4/简繁日多语MKV][1080P]")
+ val r = parse("[銀色子彈字幕組][名偵探柯南][第60集 插畫家殺人事件][WEBRIP][簡日雙語MP4/繁日雙語MP4/簡繁日多語MKV][1080P]")
assertEquals("60..60", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1529,7 +1529,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690484_GM_Team_5_Fights_Break_Sphere_2022_136_HEVC_GB_4K`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][斗破苍穹 第5季][Fights Break Sphere Ⅴ][2022][136][HEVC][GB][4K]")
+ val r = parse("[GM-Team][國漫][鬥破蒼穹 第5季][Fights Break Sphere Ⅴ][2022][136][HEVC][GB][4K]")
assertEquals("136..136", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1540,7 +1540,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690483_GM_Team_5_Fights_Break_Sphere_2022_136_AVC_GB_1080P`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][斗破苍穹 第5季][Fights Break Sphere Ⅴ][2022][136][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][鬥破蒼穹 第5季][Fights Break Sphere Ⅴ][2022][136][AVC][GB][1080P]")
assertEquals("136..136", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1552,7 +1552,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690482_LoliHouse_Hana_wa_Saku_Shura_no_Gotoku___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 群花绽放,仿如修罗 / Hana wa Saku Shura no Gotoku - 08 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 羣花綻放,仿如修羅 / Hana wa Saku Shura no Gotoku - 08 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1564,7 +1564,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690481_V_V_Chou_Denji_Machine_Voltes_V_1977_TV_01_40_Fin_1080p_REV`() {
kotlin.run {
val r =
- parse("[白恋字幕组][超电磁侠波鲁吉斯V][超電磁マシーン ボルテスV][Chou Denji Machine Voltes V][1977][TV 01-40 Fin][1080p][内封简中字幕][REV]")
+ parse("[白戀字幕組][超電磁俠波魯吉斯V][超電磁マシーン ボルテスV][Chou Denji Machine Voltes V][1977][TV 01-40 Fin][1080p][內封簡中字幕][REV]")
assertEquals("01..40", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1575,7 +1575,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690479___08_CR_WebRip_AI2160p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 药屋少女的呢喃 第二季 - 08 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 藥屋少女的呢喃 第二季 - 08 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -1586,7 +1586,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690478_136_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[斗破苍穹年番][第136集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[鬥破蒼穹年番][第136集][國語中字][WEB-MKV][2160P]")
assertEquals("136..136", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -1597,7 +1597,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690477___20_CR_WebRip_AI2160p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 龙珠大魔 - 20 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 龍珠大魔 - 20 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -1610,7 +1610,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690474_LoliHouse_Fuguushoku_Kanteishi_ga_Jitsu_wa_Saikyou_Datta___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 不幸职业【鉴定士】实则最强 / Fuguushoku 'Kanteishi' ga Jitsu wa Saikyou Datta - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 不幸職業【鑑定士】實則最強 / Fuguushoku 'Kanteishi' ga Jitsu wa Saikyou Datta - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1621,7 +1621,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690473_1_BanG_Dream_21_Ave_Mujica_08_1080p_MP4`() {
kotlin.run {
- val r = parse("[漫猫字幕组][1月新番][BanG Dream! Ave Mujica][08][1080p][MP4][简中]")
+ val r = parse("[漫貓字幕組][1月新番][BanG Dream! Ave Mujica][08][1080p][MP4][簡中]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1643,7 +1643,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690471_1_BanG_Dream_21_Ave_Mujica_07_1080p_MP4`() {
kotlin.run {
- val r = parse("[漫猫字幕组][1月新番][BanG Dream! Ave Mujica][07][1080p][MP4][简中]")
+ val r = parse("[漫貓字幕組][1月新番][BanG Dream! Ave Mujica][07][1080p][MP4][簡中]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1677,7 +1677,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690468_LoliHouse_Shangri_La_Frontier___45_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] Shangri-La Frontier / 香格里拉·开拓异境~粪作猎手挑战神作~ - 45 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] Shangri-La Frontier / 香格里拉·開拓異境~糞作獵手挑戰神作~ - 45 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("45..45", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1688,7 +1688,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690467_132_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[凡人修仙传][第132集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[凡人修仙傳][第132集][國語中字][WEB-MKV][2160P]")
assertEquals("132..132", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -1699,7 +1699,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690466_SweetSub_Momentary_Lily_08_WebRip_1080P_AV1_10bit`() {
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][08][WebRip][1080P][AV1 10bit][简日内封]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][08][WebRip][1080P][AV1 10bit][簡日內封]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1711,7 +1711,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690465_LoliHouse_Dragon_Ball_Daima___20_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 龙珠 大魔 / Dragon Ball Daima - 20 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 龍珠 大魔 / Dragon Ball Daima - 20 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1722,7 +1722,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690464_10_Ao_no_Hako_Blue_Box_20_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[青箱 / Ao no Hako / Blue Box][20][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[青箱 / Ao no Hako / Blue Box][20][1080p][簡日雙語][招募翻譯]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1744,7 +1744,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690462_SweetSub_Momentary_Lily_07_WebRip_1080P_AV1_10bit`() {
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][07][WebRip][1080P][AV1 10bit][简日内封]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][07][WebRip][1080P][AV1 10bit][簡日內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1755,7 +1755,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690461_SweetSub_Momentary_Lily_06_WebRip_1080P_AV1_10bit`() {
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][06][WebRip][1080P][AV1 10bit][简日内封]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][06][WebRip][1080P][AV1 10bit][簡日內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1766,7 +1766,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690460_SweetSub_Momentary_Lily_05_WebRip_1080P_AV1_10bit`() {
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][05][WebRip][1080P][AV1 10bit][简日内封]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][05][WebRip][1080P][AV1 10bit][簡日內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1777,7 +1777,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690459_SweetSub_Momentary_Lily_04_WebRip_1080P_AV1_10bit`() {
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][04][WebRip][1080P][AV1 10bit][简日内封]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][04][WebRip][1080P][AV1 10bit][簡日內封]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1788,7 +1788,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690458_SweetSub_Momentary_Lily_03_WebRip_1080P_AV1_10bit`() {
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][03][WebRip][1080P][AV1 10bit][简日内封]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][03][WebRip][1080P][AV1 10bit][簡日內封]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1799,7 +1799,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690457_SweetSub_Momentary_Lily_02_WebRip_1080P_AV1_10bit`() {
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][02][WebRip][1080P][AV1 10bit][简日内封]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][02][WebRip][1080P][AV1 10bit][簡日內封]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1822,7 +1822,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690455_SweetSub_Momentary_Lily_01_WebRip_1080P_AV1_10bit`() {
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][01][WebRip][1080P][AV1 10bit][简日内封]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][01][WebRip][1080P][AV1 10bit][簡日內封]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1834,7 +1834,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690454_Ao_no_Hako_Blue_Box_19_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 青之箱 / 青春之箱 / 青春盒子 / 蓝箱 / Ao no Hako / Blue Box [19][WebRip][HEVC_AAC][简繁日内封]")
+ parse("[北宇治字幕組] 青之箱 / 青春之箱 / 青春盒子 / 藍箱 / Ao no Hako / Blue Box [19][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1845,7 +1845,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690453_Ao_no_Hako_Blue_Box_19_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 青之箱 / 蓝箱 / Ao no Hako / Blue Box [19][WebRip][HEVC_AAC][简日内嵌]")
+ val r = parse("[北宇治字幕組] 青之箱 / 藍箱 / Ao no Hako / Blue Box [19][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1856,7 +1856,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690452_Ao_no_Hako_Blue_Box_19_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 青春之箱 / 青春盒子 / Ao no Hako / Blue Box [19][WebRip][HEVC_AAC][繁日內嵌]")
+ val r = parse("[北宇治字幕組] 青春之箱 / 青春盒子 / Ao no Hako / Blue Box [19][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1889,7 +1889,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690449_Ameku_Takao_no_Suiri_Karte_07_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[天久鹰央的推理病历表_Ameku Takao no Suiri Karte][07][1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[天久鷹央的推理病歷表_Ameku Takao no Suiri Karte][07][1080p][CHS]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1900,7 +1900,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690447_Amor_Kusuriya_no_Hitorigoto_32_WEBDL_1080P_MKV`() {
kotlin.run {
- val r = parse("[Amor压制组][药师少女的独语 藥師少女的獨語 Kusuriya no Hitorigoto][32][简繁内封][WEBDL][1080P][MKV]")
+ val r = parse("[Amor壓制組][藥師少女的獨語 藥師少女的獨語 Kusuriya no Hitorigoto][32][簡繁內封][WEBDL][1080P][MKV]")
assertEquals("32..32", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1911,7 +1911,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690445_GM_Team_Fan_Ren_Xiu_Xian_Zhuan_2024_01_08_AVC_GB_1080P`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][凡人修仙传 外海风云][Fan Ren Xiu Xian Zhuan][2024][01-08][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][凡人修仙傳 外海風雲][Fan Ren Xiu Xian Zhuan][2024][01-08][AVC][GB][1080P]")
assertEquals("01..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1933,7 +1933,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690443_08_GB_CN_HEVC_opus_1080p`() {
kotlin.run {
- val r = parse("【极影字幕·毁片党】 这家公司里有我喜欢的人 第08集 GB_CN HEVC_opus 1080p")
+ val r = parse("【極影字幕·毀片黨】 這家公司裏有我喜歡的人 第08集 GB_CN HEVC_opus 1080p")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1945,7 +1945,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690442_LoliHouse_Akuyaku_Reijou_Tensei_Ojisan___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 大叔转生恶役大小姐 / Akuyaku Reijou Tensei Ojisan - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 大叔轉生惡役大小姐 / Akuyaku Reijou Tensei Ojisan - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1967,7 +1967,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690440_01_Tasokare_Hotel_09_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[黄昏旅店 / Tasokare Hotel][09][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[黃昏旅店 / Tasokare Hotel][09][1080p][簡日雙語][招募翻譯]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2002,7 +2002,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690435_Kusuriya_no_Hitorigoto_32_1080P_MP4`() {
kotlin.run {
- val r = parse("【豌豆字幕组】[药屋少女的呢喃(药师少女的独语)/ Kusuriya no Hitorigoto][32][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組】[藥屋少女的呢喃(藥師少女的獨語)/ Kusuriya no Hitorigoto][32][簡體][1080P][MP4]")
assertEquals("32..32", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2024,7 +2024,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690433_GM_Team_5_Fights_Break_Sphere_2022_131_135_HEVC_GB_4K`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][斗破苍穹 第5季][Fights Break Sphere Ⅴ][2022][131-135][HEVC][GB][4K]")
+ val r = parse("[GM-Team][國漫][鬥破蒼穹 第5季][Fights Break Sphere Ⅴ][2022][131-135][HEVC][GB][4K]")
assertEquals("131..135", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2035,7 +2035,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690432_GM_Team_5_Fights_Break_Sphere_2022_131_135_AVC_GB_1080P`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][斗破苍穹 第5季][Fights Break Sphere Ⅴ][2022][131-135][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][鬥破蒼穹 第5季][Fights Break Sphere Ⅴ][2022][131-135][AVC][GB][1080P]")
assertEquals("131..135", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2046,7 +2046,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690431_GM_Team_Tales_of_Qin_Mu_2024_15_19_AVC_GB_1080P`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][牧神记][Tales of Qin Mu][2024][15-19][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][牧神記][Tales of Qin Mu][2024][15-19][AVC][GB][1080P]")
assertEquals("15..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2058,7 +2058,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690430_GM_Team_Soul_Land_The_Peerless_Tang_Clan_2023_85_90_AVC_GB_1080P`() {
kotlin.run {
val r =
- parse("[GM-Team][国漫][斗罗大陆Ⅱ 绝世唐门][Soul Land Ⅱ:The Peerless Tang Clan][2023][85-90][AVC][GB][1080P]")
+ parse("[GM-Team][國漫][斗羅大陸Ⅱ 絕世唐門][Soul Land Ⅱ:The Peerless Tang Clan][2023][85-90][AVC][GB][1080P]")
assertEquals("85..90", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2080,7 +2080,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690428_GM_Team_2_The_Demon_Hunter_2024_09_14_GB_4K_HEVC_10Bit`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][沧元图 第2季][The Demon Hunter Ⅱ][2024][09-14][GB][4K HEVC 10Bit]")
+ val r = parse("[GM-Team][國漫][滄元圖 第2季][The Demon Hunter Ⅱ][2024][09-14][GB][4K HEVC 10Bit]")
assertEquals("09..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2091,7 +2091,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690427_GM_Team_2_Tomb_of_Fallen_Gods_2024_27_END_GB_4K_HEVC_10Bit`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][神墓 第2季][Tomb of Fallen Gods Ⅱ][2024][27 END][GB][4K HEVC 10Bit]")
+ val r = parse("[GM-Team][國漫][神墓 第2季][Tomb of Fallen Gods Ⅱ][2024][27 END][GB][4K HEVC 10Bit]")
assertEquals("27..27", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2102,7 +2102,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690426_GM_Team_2_Tomb_of_Fallen_Gods_2024_26_GB_4K_HEVC_10Bit`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][神墓 第2季][Tomb of Fallen Gods Ⅱ][2024][26][GB][4K HEVC 10Bit]")
+ val r = parse("[GM-Team][國漫][神墓 第2季][Tomb of Fallen Gods Ⅱ][2024][26][GB][4K HEVC 10Bit]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2113,7 +2113,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690425_GM_Team_4_Rakshasa_Street_2024_11_16_AVC_GB_1080P`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][镇魂街 第4季 天武风雷篇][Rakshasa Street Ⅳ][2024][11-16][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][鎮魂街 第4季 天武風雷篇][Rakshasa Street Ⅳ][2024][11-16][AVC][GB][1080P]")
assertEquals("11..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2124,7 +2124,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690424_GM_Team_Perfect_World_2021_200_204_AVC_GB_1080P`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][完美世界][Perfect World][2021][200-204][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][完美世界][Perfect World][2021][200-204][AVC][GB][1080P]")
assertEquals("200..204", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2136,7 +2136,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690423_GM_Team_My_Senior_Brother_is_Too_Steady_2023_74_78_GB_4K_HEVC_10Bit`() {
kotlin.run {
val r =
- parse("[GM-Team][国漫][师兄啊师兄][My Senior Brother is Too Steady][2023][74-78][GB][4K HEVC 10Bit]")
+ parse("[GM-Team][國漫][師兄啊師兄][My Senior Brother is Too Steady][2023][74-78][GB][4K HEVC 10Bit]")
assertEquals("74..78", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2147,7 +2147,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690422_GM_Team_Throne_of_Seal_2022_144_148_AVC_GB_1080P`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][神印王座][Throne of Seal][2022][144-148][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][神印王座][Throne of Seal][2022][144-148][AVC][GB][1080P]")
assertEquals("144..148", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2158,7 +2158,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690421_GM_Team_Shrouding_the_Heavens_2023_94_98_AVC_GB_1080P`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][遮天][Shrouding the Heavens][2023][94-98][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][遮天][Shrouding the Heavens][2023][94-98][AVC][GB][1080P]")
assertEquals("94..98", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2239,7 +2239,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690413_Unnamed_Memory_Act_2_20_1080p_2025_1`() {
kotlin.run {
- val r = parse("[猎户手抄部] 无名记忆 第二季 / Unnamed Memory Act.2 [20] [1080p] [繁日内嵌] [2025年1月番]")
+ val r = parse("[獵戶手抄部] 無名記憶 第二季 / Unnamed Memory Act.2 [20] [1080p] [繁日內嵌] [2025年1月番]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2251,7 +2251,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690412_A_Doraemon1979_1998_3_7_2080P_4K_WEB_A_MP4`() {
kotlin.run {
val r =
- parse("[哆啦字幕組][哆啦A夢大山版附映中篇Doraemon1979][1998.3.7][2080P(准4K)][WEB][繁日雙語][哆啦A夢歸來了][数位修復版][MP4]")
+ parse("[哆啦字幕組][哆啦A夢大山版附映中篇Doraemon1979][1998.3.7][2080P(準4K)][WEB][繁日雙語][哆啦A夢歸來了][數位修復版][MP4]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2263,7 +2263,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690411_A_Doraemon1979_1998_3_7_2080P_4K_WEB_A_MP4`() {
kotlin.run {
val r =
- parse("[哆啦字幕组][哆啦A梦大山版附映中篇 Doraemon1979][1998.3.7][2080P(准4K)][WEB][简日双语][哆啦A梦归来了][数码修复版][MP4]")
+ parse("[哆啦字幕組][哆啦A夢大山版附映中篇 Doraemon1979][1998.3.7][2080P(準4K)][WEB][簡日雙語][哆啦A夢歸來了][數碼修復版][MP4]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2274,7 +2274,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690410_Unnamed_Memory_Act_2_20_1080p_2025_1`() {
kotlin.run {
- val r = parse("[猎户手抄部] 无名记忆 第二季 / Unnamed Memory Act.2 [20] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶手抄部] 無名記憶 第二季 / Unnamed Memory Act.2 [20] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2285,7 +2285,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690409_SweetSub_Momentary_Lily_09_WebRip_1080P_AVC_8bit`() {
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][09][WebRip][1080P][AVC 8bit][简体内嵌]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][09][WebRip][1080P][AVC 8bit][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2319,7 +2319,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690406_____Ore_dake_Level_Up_na_Ken_S2_20_1080p_KoVer_2025_1`() {
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [20] [1080p] [繁日内嵌] [KoVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [20] [1080p] [繁日內嵌] [KoVer] [2025年1月番]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2331,7 +2331,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690405_____Ore_dake_Level_Up_na_Ken_S2_20_1080p_KoVer_2025_1`() {
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [20] [1080p] [简日内嵌] [KoVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [20] [1080p] [簡日內嵌] [KoVer] [2025年1月番]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2367,7 +2367,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690402_Re_Re_Zero_kara_Hajimeru_Isekai_Seikatsu_62_WebRip_1080p_AVC_AAC`() {
kotlin.run {
val r =
- parse("【百冬练习组】【Re: 从零开始的异世界的生活_Re꞉ Zero kara Hajimeru Isekai Seikatsu】[62][WebRip 1080p AVC AAC][简体]")
+ parse("【百冬練習組】【Re: 從零開始的異世界的生活_Re꞉ Zero kara Hajimeru Isekai Seikatsu】[62][WebRip 1080p AVC AAC][簡體]")
assertEquals("62..62", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2378,7 +2378,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690401_4_16_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[镇魂街 第4季][第16集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[鎮魂街 第4季][第16集][國語中字][WEB-MKV][2160P]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -2389,7 +2389,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690400_2_90_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[斗罗大陆2绝世唐门][第90集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[斗羅大陸2絕世唐門][第90集][國語中字][WEB-MKV][2160P]")
assertEquals("90..90", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -2402,7 +2402,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690399_LoliHouse_Kono_Kaisha_ni_Suki_na_Hito_ga_Imasu___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 这公司有我喜欢的人 / この会社に好きな人がいます / Kono Kaisha ni Suki na Hito ga Imasu - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 這公司有我喜歡的人 / この會社に好きな人がいます / Kono Kaisha ni Suki na Hito ga Imasu - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2414,7 +2414,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690398_LoliHouse_____Rurouni_Kenshin_2023___44_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 浪客剑心 -明治剑客浪漫谭- 京都动乱 / Rurouni Kenshin (2023) - 44 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 浪客劍心 -明治劍客浪漫譚- 京都動亂 / Rurouni Kenshin (2023) - 44 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("44..44", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2425,7 +2425,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690389_BanG_Dream_21_Ave_Mujica_07_1080p`() {
kotlin.run {
- val r = parse("[萌樱字幕组] BanG Dream! Ave Mujica [07][1080p]")
+ val r = parse("[萌櫻字幕組] BanG Dream! Ave Mujica [07][1080p]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2449,7 +2449,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690387_Chibi_Maruko_chan_II_1468_2025_02_23_GB_1080P_MP4`() {
kotlin.run {
val r =
- parse("[丸子家族][樱桃小丸子第二期(Chibi Maruko-chan II)][1468]小丸子想沾花轮的光&友藏想疼爱宏志[2025.02.23][GB][1080P][MP4]")
+ parse("[丸子家族][櫻桃小丸子第二期(Chibi Maruko-chan II)][1468]小丸子想沾花輪的光&友藏想疼愛宏志[2025.02.23][GB][1080P][MP4]")
assertEquals("1468..1468", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2461,7 +2461,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690386_VCB_Studio_Yuru_Camp_Season_3_SEASON3_10_bit_1080p_HEVC_BDRip_Fin`() {
kotlin.run {
val r =
- parse("[千夏字幕组&VCB-Studio] 摇曳露营△ 第三季 / Yuru Camp Season 3 / ゆるキャン△ SEASON3 10-bit 1080p HEVC BDRip [Fin]")
+ parse("[千夏字幕組&VCB-Studio] 搖曳露營△ 第三季 / Yuru Camp Season 3 / ゆるキャン△ SEASON3 10-bit 1080p HEVC BDRip [Fin]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2473,7 +2473,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690385_BanG_Dream_21_Ave_Mujica___09_CR_WebRip_AI2160p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[不当舔狗制作组] BanG Dream! Ave Mujica - 09 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ parse("[不當舔狗製作組] BanG Dream! Ave Mujica - 09 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -2485,7 +2485,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690384_BanG_Dream_21_Ave_Mujica___09_CR_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[不当舔狗制作组] BanG Dream! Ave Mujica - 09 [CR WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ parse("[不當舔狗製作組] BanG Dream! Ave Mujica - 09 [CR WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2507,7 +2507,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690382_083_085_1080P_MP4`() {
kotlin.run {
- val r = parse("【枫叶字幕组】[宠物小精灵 / 宝可梦 地平线 烈空坐飞升][083-085][简体][1080P][MP4]")
+ val r = parse("【楓葉字幕組】[寵物小精靈 / 寶可夢 地平線 烈空坐飛昇][083-085][簡體][1080P][MP4]")
assertEquals("83..85", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2529,7 +2529,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690379_Ao_no_Hako_22_WEBrip_1080P`() {
kotlin.run {
- val r = parse("【今晚月色真美】[青之箱 / アオのハコ / Ao no Hako][22][WEBrip][1080P][简日双语]")
+ val r = parse("【今晚月色真美】[青之箱 / アオのハコ / Ao no Hako][22][WEBrip][1080P][簡日雙語]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2551,7 +2551,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690377_GalaxyRailroad_888_GO_RUSH_21_21_Yu_Gi_Oh_21_GO_RUSH__21_21_146_720P_GB`() {
kotlin.run {
- val r = parse("[GalaxyRailroad-888] 游戏王GO RUSH!! Yu-Gi-Oh! GO RUSH !! 146 720P [GB_简中]")
+ val r = parse("[GalaxyRailroad-888] 遊戲王GO RUSH!! Yu-Gi-Oh! GO RUSH !! 146 720P [GB_簡中]")
assertEquals("146..146", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2574,7 +2574,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690375_Production_01_BanG_Dream_21_Ave_Mujica_09_1080p`() {
kotlin.run {
- val r = parse("【喵萌Production】★01月新番★[BanG Dream! Ave Mujica][09][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌Production】★01月新番★[BanG Dream! Ave Mujica][09][1080p][簡日雙語][招募翻譯]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2621,7 +2621,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690371_Zenshuu_08_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 全修。 / Zenshuu. [08][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 全修。 / Zenshuu. [08][1080p][簡繁內封]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2643,7 +2643,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690369_Zenshuu_08_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 全修。 / Zenshuu. [08][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 全修。 / Zenshuu. [08][1080p][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2655,7 +2655,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690368_Billion_Meta_Lab_Momentary_Lily_07_1080P_HEVC_10bit`() {
kotlin.run {
val r =
- parse("[Billion Meta Lab] 昙花一现的百合 Momentary Lily [07][1080P][HEVC 10bit][简繁日内封][检索:刹那之花]")
+ parse("[Billion Meta Lab] 曇花一現的百合 Momentary Lily [07][1080P][HEVC 10bit][簡繁日內封][檢索:剎那之花]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2677,7 +2677,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690366_Billion_Meta_Lab_Momentary_Lily_07_1080P`() {
kotlin.run {
- val r = parse("[Billion Meta Lab] 昙花一现的百合 Momentary Lily [07][1080P][简日内嵌][检索:刹那之花]")
+ val r = parse("[Billion Meta Lab] 曇花一現的百合 Momentary Lily [07][1080P][簡日內嵌][檢索:剎那之花]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2700,7 +2700,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690364_01_Hana_wa_Saku_Shura_no_Gotoku_08_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[群花綻放,彷如修羅 / Hana wa Saku Shura no Gotoku][08][1080p][繁日雙語][招募翻譯]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[羣花綻放,彷如修羅 / Hana wa Saku Shura no Gotoku][08][1080p][繁日雙語][招募翻譯]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2711,7 +2711,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690363_01_Hana_wa_Saku_Shura_no_Gotoku_08_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[群花绽放,彷如修罗 / Hana wa Saku Shura no Gotoku][08][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[羣花綻放,彷如修羅 / Hana wa Saku Shura no Gotoku][08][1080p][簡日雙語][招募翻譯]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2722,7 +2722,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690362_01_Ishura_S2_08_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[异修罗 第二季 / Ishura S2][08][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[異修羅 第二季 / Ishura S2][08][1080p][簡日雙語][招募翻譯]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2746,7 +2746,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690360_A_Doraemon1979_1998_3_7_1080P_WEB_A_MP4`() {
kotlin.run {
val r =
- parse("[哆啦字幕組][哆啦A夢大山版附映中篇Doraemon1979][1998.3.7][1080P][WEB][繁日雙語][哆啦A夢歸來了][数位修復版][MP4]")
+ parse("[哆啦字幕組][哆啦A夢大山版附映中篇Doraemon1979][1998.3.7][1080P][WEB][繁日雙語][哆啦A夢歸來了][數位修復版][MP4]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2758,7 +2758,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690359_A_Doraemon1979_1998_3_7_1080P_WEB_A_MP4`() {
kotlin.run {
val r =
- parse("[哆啦字幕组][哆啦A梦大山版附映中篇 Doraemon1979][1998.3.7][1080P][WEB][简日双语][哆啦A梦归来了][数码修复版][MP4]")
+ parse("[哆啦字幕組][哆啦A夢大山版附映中篇 Doraemon1979][1998.3.7][1080P][WEB][簡日雙語][哆啦A夢歸來了][數碼修復版][MP4]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2770,7 +2770,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690358_LoliHouse_Ameku_Takao_s_Detective_Karte___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 天久鹰央的推理病历表 / Ameku Takao's Detective Karte - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 天久鷹央的推理病歷表 / Ameku Takao's Detective Karte - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2782,7 +2782,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690357_____Ore_dake_Level_Up_na_Ken_S2_20_1080p_JaVer_2025_1`() {
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [20] [1080p] [繁日内嵌] [JaVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [20] [1080p] [繁日內嵌] [JaVer] [2025年1月番]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2794,7 +2794,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690356_____Ore_dake_Level_Up_na_Ken_S2_20_1080p_JaVer_2025_1`() {
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [20] [1080p] [简日内嵌] [JaVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [20] [1080p] [簡日內嵌] [JaVer] [2025年1月番]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2806,7 +2806,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690355_Shangri_La_Frontier_S2_45_1080p_2024_10`() {
kotlin.run {
val r =
- parse("[猎户压制部] 香格里拉·开拓异境~粪作猎手挑战神作 第二季 / Shangri-La Frontier S2 [45] [1080p] [繁日内嵌] [2024年10月番]")
+ parse("[獵戶壓制部] 香格里拉·開拓異境~糞作獵手挑戰神作 第二季 / Shangri-La Frontier S2 [45] [1080p] [繁日內嵌] [2024年10月番]")
assertEquals("45..45", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2818,7 +2818,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690354_Shangri_La_Frontier_S2_45_1080p_2024_10`() {
kotlin.run {
val r =
- parse("[猎户压制部] 香格里拉·开拓异境~粪作猎手挑战神作 第二季 / Shangri-La Frontier S2 [45] [1080p] [简日内嵌] [2024年10月番]")
+ parse("[獵戶壓制部] 香格里拉·開拓異境~糞作獵手挑戰神作 第二季 / Shangri-La Frontier S2 [45] [1080p] [簡日內嵌] [2024年10月番]")
assertEquals("45..45", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2830,7 +2830,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690353_DBD_4K_2160P_HDR_1080P_BanG_Dream_21_Ave_Mujica_09_WEB_DL_AAC_MKV`() {
kotlin.run {
val r =
- parse("[DBD制作组][4K(2160P)+HDR+1080P][BanG Dream! Ave Mujica][09][WEB-DL][简日双语内嵌][AAC][MKV]")
+ parse("[DBD製作組][4K(2160P)+HDR+1080P][BanG Dream! Ave Mujica][09][WEB-DL][簡日雙語內嵌][AAC][MKV]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2853,7 +2853,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690351_LoliHouse_DanMachi_S5___14_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 在地下城寻求邂逅是否搞错了什么 第五季 / DanMachi S5 - 14 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 在地下城尋求邂逅是否搞錯了什麼 第五季 / DanMachi S5 - 14 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2876,7 +2876,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690349_S1_BanG_Dream_21_Ave_Mujica_09_2160p_Bilibili_Web_DL_HDR_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[S1百综字幕组]BanG Dream! Ave Mujica [09][2160p][Bilibili][Web-DL][HDR][HEVC_AAC][简日双语]")
+ parse("[S1百綜字幕組]BanG Dream! Ave Mujica [09][2160p][Bilibili][Web-DL][HDR][HEVC_AAC][簡日雙語]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -2900,7 +2900,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690345_LoliHouse_Izure_Saikyou_no_Renkinjutsushi___09_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 迟早是最强的炼金术师? / Izure Saikyou no Renkinjutsushi? - 09 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 遲早是最強的鍊金術師? / Izure Saikyou no Renkinjutsushi? - 09 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2911,7 +2911,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690344_148_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[神印王座][第148集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[神印王座][第148集][國語中字][WEB-MKV][2160P]")
assertEquals("148..148", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -2922,7 +2922,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690343_204_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[完美世界][第204集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[完美世界][第204集][國語中字][WEB-MKV][2160P]")
assertEquals("204..204", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -2933,7 +2933,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690341_The_Colors_Within_2024_1080p_AMZN_WEB_DL_H264_DDP5_1_QuickIO`() {
kotlin.run {
- val r = parse("你的颜色.The.Colors.Within.2024.1080p.AMZN.WEB-DL.H264.DDP5.1-QuickIO")
+ val r = parse("你的顏色.The.Colors.Within.2024.1080p.AMZN.WEB-DL.H264.DDP5.1-QuickIO")
assertEquals("null", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2946,7 +2946,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690339_LoliHouse_Around_40_Otoko_no_Isekai_Tsuuhan___06_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 中年男的异世界网购生活 / Around 40 Otoko no Isekai Tsuuhan - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 中年男的異世界網購生活 / Around 40 Otoko no Isekai Tsuuhan - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2959,7 +2959,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690338_LoliHouse_Around_40_Otoko_no_Isekai_Tsuuhan___05_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 中年男的异世界网购生活 / Around 40 Otoko no Isekai Tsuuhan - 05 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 中年男的異世界網購生活 / Around 40 Otoko no Isekai Tsuuhan - 05 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2970,7 +2970,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690334_Hana_wa_Saku_Shura_no_Gotoku_07_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕組] 群花綻放、彷如修羅 / Hana wa Saku, Shura no Gotoku [07][1080p][繁體內嵌]")
+ val r = parse("[桜都字幕組] 羣花綻放、彷如修羅 / Hana wa Saku, Shura no Gotoku [07][1080p][繁體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2981,7 +2981,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690333_Hana_wa_Saku_Shura_no_Gotoku_07_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 群花绽放、彷如修罗 / Hana wa Saku, Shura no Gotoku [07][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 羣花綻放、彷如修羅 / Hana wa Saku, Shura no Gotoku [07][1080p][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2992,7 +2992,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690332_Re___12_CR_WebRip_AI2160p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] Re:从零开始的异世界生活 第三季 - 12 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] Re:從零開始的異世界生活 第三季 - 12 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -3003,7 +3003,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690331_Hana_wa_Saku_Shura_no_Gotoku_07_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 群花绽放、彷如修罗 / Hana wa Saku, Shura no Gotoku [07][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 羣花綻放、彷如修羅 / Hana wa Saku, Shura no Gotoku [07][1080p][簡繁內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3014,7 +3014,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690330_Re___12_CR_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] Re:从零开始的异世界生活 第三季 - 12 [CR WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] Re:從零開始的異世界生活 第三季 - 12 [CR WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3026,7 +3026,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690328_MagicStar_2024_WEBDL_1080p_U_NEXT`() {
kotlin.run {
val r =
- parse("[MagicStar] 蜡笔小新 剧场版 我们的恐龙日记 / 映画クレヨンしんちゃん オラたちの恐竜日記 2024 [WEBDL] [1080p] [U-NEXT]【生】")
+ parse("[MagicStar] 蠟筆小新 劇場版 我們的恐龍日記 / 映畫クレヨンしんちゃん オラたちの恐竜日記 2024 [WEBDL] [1080p] [U-NEXT]【生】")
assertEquals("S?", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3038,7 +3038,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690325_10_Chi_____Chi_Chikyuu_no_Undou_ni_Tsuite_20_1080p`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★10月新番★[Chi。-关于地球的运动- / Chi. Chikyuu no Undou ni Tsuite][20][1080p][简日双语][招募翻译]")
+ parse("【喵萌奶茶屋】★10月新番★[Chi。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite][20][1080p][簡日雙語][招募翻譯]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3099,7 +3099,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690320_______08V3_CR_WebRip_AI2160p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 我独自升级 第二季 -起于暗影- - 08V3 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 我獨自升級 第二季 -起於暗影- - 08V3 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -3111,7 +3111,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690319_The_Sea_Prince_and_the_Fire_Child_1981_Movie_1080p`() {
kotlin.run {
val r =
- parse("[冷番补完字幕组][天狼星的传说][シリウスの伝説][The Sea Prince and the Fire Child][1981]Movie[1080p][内封中英双语字幕]")
+ parse("[冷番補完字幕組][天狼星的傳說][シリウスの伝説][The Sea Prince and the Fire Child][1981]Movie[1080p][內封中英雙語字幕]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("ENG", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3134,7 +3134,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690317_LoliHouse_Amagami_san_Chi_no_Enmusubi___20_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 结缘甘神神社 / Amagami-san Chi no Enmusubi - 20 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 結緣甘神神社 / Amagami-san Chi no Enmusubi - 20 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3146,7 +3146,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690316_LoliHouse_FAIRY_TAIL_01_25_WebRip_1080p_HEVC_10bit_AAC_Fin`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] FAIRY TAIL 魔导少年 / 妖精尾巴 百年任务 [01-25 精校合集][WebRip 1080p HEVC-10bit AAC][简繁内封字幕][Fin]")
+ parse("[動漫國字幕組&LoliHouse] FAIRY TAIL 魔導少年 / 妖精尾巴 百年任務 [01-25 精校合集][WebRip 1080p HEVC-10bit AAC][簡繁內封字幕][Fin]")
assertEquals("01..25", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3158,7 +3158,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690315_LoliHouse_Honey_Lemon_Soda___04_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 蜂蜜柠檬苏打 / ハニーレモンソーダ / Honey Lemon Soda - 04 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 蜂蜜檸檬蘇打 / ハニーレモンソーダ / Honey Lemon Soda - 04 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3170,7 +3170,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690314_LoliHouse_Honey_Lemon_Soda___03_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 蜂蜜柠檬苏打 / ハニーレモンソーダ / Honey Lemon Soda - 03 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 蜂蜜檸檬蘇打 / ハニーレモンソーダ / Honey Lemon Soda - 03 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3203,7 +3203,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690311_YYQ_New_Doraemon_A_851_2025_02_22_AVC_1080P_GB_JP`() {
kotlin.run {
- val r = parse("[夜莺家族&YYQ字幕组]New Doraemon 哆啦A梦新番[851][2025.02.22][AVC][1080P][GB_JP]")
+ val r = parse("[夜鶯家族&YYQ字幕組]New Doraemon 哆啦A夢新番[851][2025.02.22][AVC][1080P][GB_JP]")
assertEquals("851..851", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3227,7 +3227,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690307_1_Magic_Maker_Isekai_Mahou_no_Tsukurikata_07_GB_MP4_1920X1080`() {
kotlin.run {
val r =
- parse("【幻樱字幕组】【1月新番】【魔法制造者 ~异世界魔法的制作方法~ Magic Maker ~Isekai Mahou no Tsukurikata~】【07】【GB_MP4】【1920X1080】")
+ parse("【幻櫻字幕組】【1月新番】【魔法製造者 ~異世界魔法的製作方法~ Magic Maker ~Isekai Mahou no Tsukurikata~】【07】【GB_MP4】【1920X1080】")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3240,7 +3240,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690306_DBD_Raws_You_re_Next_Boku_no_Hero_Academia_the_Movie_You_re_Next_1080P_BDRip_HEVC_10bit_FLAC_MKV_THE_MOVIE`() {
kotlin.run {
val r =
- parse("[DBD-Raws][我的英雄学院剧场版:You're Next/Boku no Hero Academia the Movie You're Next][正片+特典映像][1080P][BDRip][HEVC-10bit][FLAC][MKV](僕のヒーローアカデミア THE MOVIE ユアネクスト)")
+ parse("[DBD-Raws][我的英雄學院劇場版:You're Next/Boku no Hero Academia the Movie You're Next][正片+特典映像][1080P][BDRip][HEVC-10bit][FLAC][MKV](僕のヒーローアカデミア THE MOVIE ユアネクスト)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("ENG", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3251,7 +3251,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690305_LoliHouse_ZENSHU___06_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[喵萌奶茶屋&LoliHouse] 全修。 / ZENSHU - 06 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ val r = parse("[喵萌奶茶屋&LoliHouse] 全修。 / ZENSHU - 06 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3263,7 +3263,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690304___ef___a_tale_of_memories___02_BDRip_HEVC_10bit_1080p`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 悠久之翼 - 前尘遗响 / ef - a tale of memories - 02 [BDRip][HEVC-10bit 1080p][繁日内嵌]")
+ parse("[❀撥雪尋春❀] 悠久之翼 - 前塵遺響 / ef - a tale of memories - 02 [BDRip][HEVC-10bit 1080p][繁日內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3275,7 +3275,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690303___ef___a_tale_of_memories___02_BDRip_HEVC_10bit_1080p`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 悠久之翼 - 前尘遗响 / ef - a tale of memories - 02 [BDRip][HEVC-10bit 1080p][简日内嵌]")
+ parse("[❀撥雪尋春❀] 悠久之翼 - 前塵遺響 / ef - a tale of memories - 02 [BDRip][HEVC-10bit 1080p][簡日內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3287,7 +3287,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690302___ef___a_tale_of_memories___02_BDRip_HEVC_10bit_1080p`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 悠久之翼 - 前尘遗响 / ef - a tale of memories - 02 [BDRip][HEVC-10bit 1080p][简繁日内封]")
+ parse("[❀撥雪尋春❀] 悠久之翼 - 前塵遺響 / ef - a tale of memories - 02 [BDRip][HEVC-10bit 1080p][簡繁日內封]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3299,7 +3299,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690301___ef___a_tale_of_memories___01_BDRip_HEVC_10bit_1080p`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 悠久之翼 - 前尘遗响 / ef - a tale of memories - 01 [BDRip][HEVC-10bit 1080p][繁日内嵌]")
+ parse("[❀撥雪尋春❀] 悠久之翼 - 前塵遺響 / ef - a tale of memories - 01 [BDRip][HEVC-10bit 1080p][繁日內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3311,7 +3311,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690300___ef___a_tale_of_memories___01_BDRip_HEVC_10bit_1080p`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 悠久之翼 - 前尘遗响 / ef - a tale of memories - 01 [BDRip][HEVC-10bit 1080p][简日内嵌]")
+ parse("[❀撥雪尋春❀] 悠久之翼 - 前塵遺響 / ef - a tale of memories - 01 [BDRip][HEVC-10bit 1080p][簡日內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3323,7 +3323,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690299___ef___a_tale_of_memories___01_BDRip_HEVC_10bit_1080p`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 悠久之翼 - 前尘遗响 / ef - a tale of memories - 01 [BDRip][HEVC-10bit 1080p][简繁日内封]")
+ parse("[❀撥雪尋春❀] 悠久之翼 - 前塵遺響 / ef - a tale of memories - 01 [BDRip][HEVC-10bit 1080p][簡繁日內封]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3335,7 +3335,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690298___ef___a_tale_of_memories___00_BDRip_HEVC_10bit_1080p`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 悠久之翼 - 前尘遗响 / ef - a tale of memories - 00 [BDRip][HEVC-10bit 1080p][繁日内嵌]")
+ parse("[❀撥雪尋春❀] 悠久之翼 - 前塵遺響 / ef - a tale of memories - 00 [BDRip][HEVC-10bit 1080p][繁日內嵌]")
assertEquals("00..00", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3347,7 +3347,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690297___ef___a_tale_of_memories___00_BDRip_HEVC_10bit_1080p`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 悠久之翼 - 前尘遗响 / ef - a tale of memories - 00 [BDRip][HEVC-10bit 1080p][简日内嵌]")
+ parse("[❀撥雪尋春❀] 悠久之翼 - 前塵遺響 / ef - a tale of memories - 00 [BDRip][HEVC-10bit 1080p][簡日內嵌]")
assertEquals("00..00", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3359,7 +3359,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690296___ef___a_tale_of_memories___00_BDRip_HEVC_10bit_1080p`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 悠久之翼 - 前尘遗响 / ef - a tale of memories - 00 [BDRip][HEVC-10bit 1080p][简繁日内封]")
+ parse("[❀撥雪尋春❀] 悠久之翼 - 前塵遺響 / ef - a tale of memories - 00 [BDRip][HEVC-10bit 1080p][簡繁日內封]")
assertEquals("00..00", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3370,7 +3370,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690292_LevelX_Kankin_Kuiki_Level_X_07_CHS_1920x1080_AVC_AAC_mp4`() {
kotlin.run {
- val r = parse("[黑白字幕组]监禁区域LevelX / Kankin Kuiki Level X [07][CHS](1920x1080 AVC AAC ).mp4")
+ val r = parse("[黑白字幕組]監禁區域LevelX / Kankin Kuiki Level X [07][CHS](1920x1080 AVC AAC ).mp4")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3383,7 +3383,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690291_Botsuraku_Yotei_no_Kizoku_dakedo_Hima_Datta_kara_Mahou_wo_Kiwametemita_06_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]虽然我是注定没落的贵族,闲来无事只好来深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita [06] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]雖然我是註定沒落的貴族,閒來無事只好來深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita [06] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3396,7 +3396,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690290_Botsuraku_Yotei_no_Kizoku_dakedo_Hima_Datta_kara_Mahou_wo_Kiwametemita_06_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]虽然我是注定没落的贵族,闲来无事只好来深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita [06] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]雖然我是註定沒落的貴族,閒來無事只好來深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita [06] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3408,7 +3408,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690288_1_Hana_wa_Saku_Shura_no_Gotoku_05_1080P_MP4_BIG5`() {
kotlin.run {
val r =
- parse("[愛戀字幕社][1月新番][群花綻放,彷如修羅][Hana wa Saku, Shura no Gotoku][05][1080P][MP4][BIG5][繁中]")
+ parse("[愛戀字幕社][1月新番][羣花綻放,彷如修羅][Hana wa Saku, Shura no Gotoku][05][1080P][MP4][BIG5][繁中]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3419,7 +3419,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690287_1_Hana_wa_Saku_Shura_no_Gotoku_05_1080P_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社][1月新番][群花绽放,彷如修罗][Hana wa Saku, Shura no Gotoku][05][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社][1月新番][羣花綻放,彷如修羅][Hana wa Saku, Shura no Gotoku][05][1080P][MP4][GB][簡中]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3431,7 +3431,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690286_1_Hana_wa_Saku_Shura_no_Gotoku_04_1080P_MP4_BIG5`() {
kotlin.run {
val r =
- parse("[愛戀字幕社][1月新番][群花綻放,彷如修羅][Hana wa Saku, Shura no Gotoku][04][1080P][MP4][BIG5][繁中]")
+ parse("[愛戀字幕社][1月新番][羣花綻放,彷如修羅][Hana wa Saku, Shura no Gotoku][04][1080P][MP4][BIG5][繁中]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3442,7 +3442,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690285_1_Hana_wa_Saku_Shura_no_Gotoku_04_1080P_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社][1月新番][群花绽放,彷如修罗][Hana wa Saku, Shura no Gotoku][04][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社][1月新番][羣花綻放,彷如修羅][Hana wa Saku, Shura no Gotoku][04][1080P][MP4][GB][簡中]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3454,7 +3454,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690284_LoliHouse_Kinomi_Master___09_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 最弱技能《果实大师》 ~关于能无限食用技能果实(吃了就会死)这件事~ / Kinomi Master - 09 [WebRip 1080p HEVC-10bit AAC][无字幕]")
+ parse("[LoliHouse] 最弱技能《果實大師》 ~關於能無限食用技能果實(喫了就會死)這件事~ / Kinomi Master - 09 [WebRip 1080p HEVC-10bit AAC][無字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3466,7 +3466,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690274_LoliHouse_Ao_no_Hako_Blue_Box___19_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 青箱 / Ao no Hako / Blue Box - 19 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 青箱 / Ao no Hako / Blue Box - 19 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3479,7 +3479,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690273_LoliHouse_2_Watashi_no_Shiawase_na_Kekkon_S2___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 我的幸福婚姻 2期 / Watashi no Shiawase na Kekkon S2 - 08 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 我的幸福婚姻 2期 / Watashi no Shiawase na Kekkon S2 - 08 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3491,7 +3491,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690272_SweetSub_LoliHouse_Momentary_Lily___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[SweetSub&LoliHouse] 刹那之花 / Momentary Lily - 08 [WebRip 1080p HEVC-10bit AAC][简日内封字幕]")
+ parse("[SweetSub&LoliHouse] 剎那之花 / Momentary Lily - 08 [WebRip 1080p HEVC-10bit AAC][簡日內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3503,7 +3503,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690271_ANi_Hana_wa_Saku_Shura_no_Gotoku___08_1080P_Baha_WEB_DL_AAC_AVC_CHT_MP4`() {
kotlin.run {
val r =
- parse("[ANi] Hana wa Saku Shura no Gotoku / 群花綻放、彷如修羅 - 08 [1080P][Baha][WEB-DL][AAC AVC][CHT][MP4]")
+ parse("[ANi] Hana wa Saku Shura no Gotoku / 羣花綻放、彷如修羅 - 08 [1080P][Baha][WEB-DL][AAC AVC][CHT][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3514,7 +3514,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690270_98_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[遮天][第98集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[遮天][第98集][國語中字][WEB-MKV][2160P]")
assertEquals("98..98", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -3526,7 +3526,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690269_LoliHouse_Kusuriya_no_Hitorigoto___30_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 药师少女的独语 / 药屋少女的呢喃 / Kusuriya no Hitorigoto - 30 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 藥師少女的獨語 / 藥屋少女的呢喃 / Kusuriya no Hitorigoto - 30 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("30..30", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3537,7 +3537,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690268_30_1080p`() {
kotlin.run {
- val r = parse("[萌樱字幕组] 药屋少女的呢喃 [30][1080p][简繁日内封]")
+ val r = parse("[萌櫻字幕組] 藥屋少女的呢喃 [30][1080p][簡繁日內封]")
assertEquals("30..30", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3548,7 +3548,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690267_01_Zenshuu_ZENSHU_07_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[全修。 / Zenshuu. / ZENSHU][07][1080p][简日双语]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[全修。 / Zenshuu. / ZENSHU][07][1080p][簡日雙語]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3570,7 +3570,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690265_01_Zenshuu_ZENSHU_06_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[全修。 / Zenshuu. / ZENSHU][06][1080p][简日双语]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[全修。 / Zenshuu. / ZENSHU][06][1080p][簡日雙語]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3592,7 +3592,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690263_01_2_Watashi_no_Shiawase_na_Kekkon_S2_08_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[我的幸福婚姻 2期 / Watashi no Shiawase na Kekkon S2][08][1080p][简日双语]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[我的幸福婚姻 2期 / Watashi no Shiawase na Kekkon S2][08][1080p][簡日雙語]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3603,7 +3603,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690262_01_Kusuriya_no_Hitorigoto_31_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[药师少女的独语 / 药屋少女的呢喃 / Kusuriya no Hitorigoto][31][1080p][简日双语]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[藥師少女的獨語 / 藥屋少女的呢喃 / Kusuriya no Hitorigoto][31][1080p][簡日雙語]")
assertEquals("31..31", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3625,7 +3625,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690260_01_Kusuriya_no_Hitorigoto_30_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[药师少女的独语 / 药屋少女的呢喃 / Kusuriya no Hitorigoto][30][1080p][简日双语]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[藥師少女的獨語 / 藥屋少女的呢喃 / Kusuriya no Hitorigoto][30][1080p][簡日雙語]")
assertEquals("30..30", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3647,7 +3647,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690258_10_Ao_no_Hako_Blue_Box_19_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[青箱 / Ao no Hako / Blue Box][19][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[青箱 / Ao no Hako / Blue Box][19][1080p][簡日雙語][招募翻譯]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3658,7 +3658,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690257_Honey_Lemon_Soda_07_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组] 蜂蜜柠檬苏打水 Honey Lemon Soda [07][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 蜂蜜檸檬蘇打水 Honey Lemon Soda [07][簡體雙語][1080p]招募翻譯")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3670,7 +3670,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690256_LoliHouse_Mahoutsukai_no_Yakusoku___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 魔法使的约定 / Mahoutsukai no Yakusoku - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 魔法使的約定 / Mahoutsukai no Yakusoku - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3693,7 +3693,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690254_Dr_STONE_Science_Future_03_1080p_2025_1`() {
kotlin.run {
- val r = parse("[猎户压制部] 新石纪 第四季 科学与未来 / Dr.STONE:Science Future [03] [1080p] [繁日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 新石紀 第四季 科學與未來 / Dr.STONE:Science Future [03] [1080p] [繁日內嵌] [2025年1月番]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3704,7 +3704,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690253_Dr_STONE_Science_Future_03_1080p_2025_1`() {
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第四季 科学与未来 / Dr.STONE:Science Future [03] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第四季 科學與未來 / Dr.STONE:Science Future [03] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3716,7 +3716,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690252_____Chi_Chikyuu_no_Undou_ni_Tsuite_22_1080p_2024_10`() {
kotlin.run {
val r =
- parse("[猎户手抄部] 地。-关于地球的运动- / Chi. Chikyuu no Undou ni Tsuite [22] [1080p] [繁日内嵌] [2024年10月番]")
+ parse("[獵戶手抄部] 地。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite [22] [1080p] [繁日內嵌] [2024年10月番]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3728,7 +3728,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690251_____Chi_Chikyuu_no_Undou_ni_Tsuite_22_1080p_2024_10`() {
kotlin.run {
val r =
- parse("[猎户手抄部] 地。-关于地球的运动- / Chi. Chikyuu no Undou ni Tsuite [22] [1080p] [简日内嵌] [2024年10月番]")
+ parse("[獵戶手抄部] 地。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite [22] [1080p] [簡日內嵌] [2024年10月番]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3741,7 +3741,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690250_Botsuraku_Yotei_no_Kizoku_dakedo_Hima_Datta_kara_Mahou_wo_Kiwametemita_05_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]虽然我是注定没落的贵族,闲来无事只好来深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita [05] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]雖然我是註定沒落的貴族,閒來無事只好來深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita [05] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3754,7 +3754,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690249_Botsuraku_Yotei_no_Kizoku_dakedo_Hima_Datta_kara_Mahou_wo_Kiwametemita_05_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]虽然我是注定没落的贵族,闲来无事只好来深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita [05] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]雖然我是註定沒落的貴族,閒來無事只好來深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita [05] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3765,7 +3765,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690248_Yoru_wa_Neko_to_Issho_3_72_HEVC_10bit_1080P`() {
kotlin.run {
- val r = parse("[织梦字幕组] 与猫共度的夜晚 Yoru wa Neko to Issho 3 [72] [HEVC-10bit 1080P] [简日双语] [特效字幕]")
+ val r = parse("[織夢字幕組] 與貓共度的夜晚 Yoru wa Neko to Issho 3 [72] [HEVC-10bit 1080P] [簡日雙語] [特效字幕]")
assertEquals("72..72", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3776,7 +3776,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690247_Yoru_wa_Neko_to_Issho_3_71_HEVC_10bit_1080P`() {
kotlin.run {
- val r = parse("[织梦字幕组] 与猫共度的夜晚 Yoru wa Neko to Issho 3 [71] [HEVC-10bit 1080P] [简日双语] [特效字幕]")
+ val r = parse("[織夢字幕組] 與貓共度的夜晚 Yoru wa Neko to Issho 3 [71] [HEVC-10bit 1080P] [簡日雙語] [特效字幕]")
assertEquals("71..71", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3787,7 +3787,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690246_Yoru_wa_Neko_to_Issho_3_70_HEVC_10bit_1080P`() {
kotlin.run {
- val r = parse("[织梦字幕组] 与猫共度的夜晚 Yoru wa Neko to Issho 3 [70] [HEVC-10bit 1080P] [简日双语] [特效字幕]")
+ val r = parse("[織夢字幕組] 與貓共度的夜晚 Yoru wa Neko to Issho 3 [70] [HEVC-10bit 1080P] [簡日雙語] [特效字幕]")
assertEquals("70..70", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3820,7 +3820,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690239_Yoru_wa_Neko_to_Issho_3_68_HEVC_10bit_1080P`() {
kotlin.run {
- val r = parse("[织梦字幕组] 与猫共度的夜晚 Yoru wa Neko to Issho 3 [68] [HEVC-10bit 1080P] [简日双语] [特效字幕]")
+ val r = parse("[織夢字幕組] 與貓共度的夜晚 Yoru wa Neko to Issho 3 [68] [HEVC-10bit 1080P] [簡日雙語] [特效字幕]")
assertEquals("68..68", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3832,7 +3832,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690236_Chibi_Maruko_chan_II_1468_2025_02_23_GB_JP_1080P_MP4`() {
kotlin.run {
val r =
- parse("[夜莺家族][樱桃小丸子第二期(Chibi Maruko-chan II)][1468]小丸子想模仿花轮&友藏想疼爱宏志[2025.02.23][GB_JP][1080P][MP4]")
+ parse("[夜鶯家族][櫻桃小丸子第二期(Chibi Maruko-chan II)][1468]小丸子想模仿花輪&友藏想疼愛宏志[2025.02.23][GB_JP][1080P][MP4]")
assertEquals("1468..1468", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3843,7 +3843,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690235_SweetSub_Momentary_Lily_08_WebRip_1080P_AVC_8bit`() {
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][08][WebRip][1080P][AVC 8bit][简日内嵌]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][08][WebRip][1080P][AVC 8bit][簡日內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3855,7 +3855,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690222_1_Kusuriya_no_Hitorigoto_31_1080P_MP4_GB_JP`() {
kotlin.run {
val r =
- parse("[漫猫字幕社&猫恋汉化组][1月新番][药屋少女的呢喃][Kusuriya no Hitorigoto][31][1080P][MP4][GB&JP][简日双语]")
+ parse("[漫貓字幕社&貓戀漢化組][1月新番][藥屋少女的呢喃][Kusuriya no Hitorigoto][31][1080P][MP4][GB&JP][簡日雙語]")
assertEquals("31..31", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3889,7 +3889,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690215_Sub_BanG_Dream_21_Ave_Mujica_07_1080P_AVC_AAC_WebRip`() {
kotlin.run {
- val r = parse("[霜庭云花Sub][BanG Dream! Ave Mujica][07][1080P][AVC AAC][简日双语][WebRip]")
+ val r = parse("[霜庭雲花Sub][BanG Dream! Ave Mujica][07][1080P][AVC AAC][簡日雙語][WebRip]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3915,7 +3915,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690200_LoliHouse_Botsuraku_Yotei_no_Kizoku_dakedo_Hima_Datta_kara_Mahou_wo_Kiwametemita___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 虽然我是注定没落的贵族,闲来无事只好来深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 雖然我是註定沒落的貴族,閒來無事只好來深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3926,7 +3926,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690199_Hana_wa_Saku_Shura_no_Gotoku_05_1080p_CHT`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[群花綻放 彷如修羅_Hana wa Saku,Shura no Gotoku][05][1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[羣花綻放 彷如修羅_Hana wa Saku,Shura no Gotoku][05][1080p][CHT]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3937,7 +3937,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690198_Hana_wa_Saku_Shura_no_Gotoku_05_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[群花绽放 彷如修罗_Hana wa Saku,Shura no Gotoku][05][1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[羣花綻放 彷如修羅_Hana wa Saku,Shura no Gotoku][05][1080p][CHS]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3948,7 +3948,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690197_Hana_wa_Saku_Shura_no_Gotoku_04_1080p_CHT`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[群花綻放 彷如修羅_Hana wa Saku,Shura no Gotoku][04][1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[羣花綻放 彷如修羅_Hana wa Saku,Shura no Gotoku][04][1080p][CHT]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3959,7 +3959,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690196_Hana_wa_Saku_Shura_no_Gotoku_04_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[群花绽放 彷如修罗_Hana wa Saku,Shura no Gotoku][04][1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[羣花綻放 彷如修羅_Hana wa Saku,Shura no Gotoku][04][1080p][CHS]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3972,7 +3972,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690193_LoliHouse_Kuroiwa_Medaka_ni_Watashi_no_Kawaii_ga_Tsuujinai___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 黑岩目高不把我的可爱放在眼里 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai - 08 [WebRip 1080p HEVC-10bit AAC][无字幕]")
+ parse("[LoliHouse] 黑巖目高不把我的可愛放在眼裏 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai - 08 [WebRip 1080p HEVC-10bit AAC][無字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3983,7 +3983,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690191_Zenshuu_08_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
- val r = parse("[黑白字幕组]全修。 / Zenshuu. [08] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ val r = parse("[黑白字幕組]全修。 / Zenshuu. [08] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3994,7 +3994,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690190_Zenshuu_08_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
- val r = parse("[黑白字幕组]全修。 / Zenshuu. [08] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ val r = parse("[黑白字幕組]全修。 / Zenshuu. [08] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4007,7 +4007,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690189_VCB_Studio_TenSura_10_bit_1080p_HEVC_BDRip_S1_Reseed_OAD_Reseed_S2_Reseed_MOVIE_WEB_S3`() {
kotlin.run {
val r =
- parse("[VCB-Studio] 关于我转生变成史莱姆这档事 / Tensei Shitara Slime Datta Ken / 転生したらスライムだった件 10-bit 1080p HEVC BDRip [S1 Reseed + OAD Reseed + S2 Reseed + MOVIE + WEB + S3]")
+ parse("[VCB-Studio] 關於我轉生變成史萊姆這檔事 / Tensei Shitara Slime Datta Ken / 転生したらスライムだった件 10-bit 1080p HEVC BDRip [S1 Reseed + OAD Reseed + S2 Reseed + MOVIE + WEB + S3]")
assertEquals("S1+OAD+S2+S?+S3", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4018,7 +4018,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690185_GM_Team_The_Eternal_Realm_2024_19_HEVC_GB_4K`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][长生界][The Eternal Realm][2024][19][HEVC][GB][4K]")
+ val r = parse("[GM-Team][國漫][長生界][The Eternal Realm][2024][19][HEVC][GB][4K]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4029,7 +4029,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690184_GM_Team_The_Eternal_Realm_2024_18_HEVC_GB_4K`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][长生界][The Eternal Realm][2024][18][HEVC][GB][4K]")
+ val r = parse("[GM-Team][國漫][長生界][The Eternal Realm][2024][18][HEVC][GB][4K]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4040,7 +4040,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690183_07_08_GB_CN_HEVC_opus_1080p`() {
kotlin.run {
- val r = parse("【极影字幕·毁片党】灰色:幻影扳机 第07-08集 GB_CN HEVC_opus 1080p")
+ val r = parse("【極影字幕·毀片黨】灰色:幻影扳機 第07-08集 GB_CN HEVC_opus 1080p")
assertEquals("07..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4051,7 +4051,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690182_GM_Team_Swallowed_Star_2021_160_AVC_GB_1080P`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][吞噬星空][Swallowed Star][2021][160][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][吞噬星空][Swallowed Star][2021][160][AVC][GB][1080P]")
assertEquals("160..160", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4062,7 +4062,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690181_GM_Team_Swallowed_Star_2021_159_AVC_GB_1080P`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][吞噬星空][Swallowed Star][2021][159[AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][吞噬星空][Swallowed Star][2021][159[AVC][GB][1080P]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4074,7 +4074,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690180_Sousou_no_Frieren___12_BDRip_HEVC_10bit_1080p`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 葬送的芙莉莲 / 葬送のフリーレン / Sousou no Frieren - 12 [BDRip][HEVC-10bit 1080p][繁日内嵌]")
+ parse("[❀撥雪尋春❀] 葬送的芙莉蓮 / 葬送のフリーレン / Sousou no Frieren - 12 [BDRip][HEVC-10bit 1080p][繁日內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4086,7 +4086,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690179_Sousou_no_Frieren___12_BDRip_HEVC_10bit_1080p`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 葬送的芙莉莲 / 葬送のフリーレン / Sousou no Frieren - 12 [BDRip][HEVC-10bit 1080p][简日内嵌]")
+ parse("[❀撥雪尋春❀] 葬送的芙莉蓮 / 葬送のフリーレン / Sousou no Frieren - 12 [BDRip][HEVC-10bit 1080p][簡日內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4098,7 +4098,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690178_Sousou_no_Frieren___12_BDRip_HEVC_10bit_1080p`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 葬送的芙莉莲 / 葬送のフリーレン / Sousou no Frieren - 12 [BDRip][HEVC-10bit 1080p][简繁日内封]")
+ parse("[❀撥雪尋春❀] 葬送的芙莉蓮 / 葬送のフリーレン / Sousou no Frieren - 12 [BDRip][HEVC-10bit 1080p][簡繁日內封]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4110,7 +4110,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690176_Sentai_Red_Isekai_de_Boukensha_ni_Naru_07_1080p_WebRip_x264_AAC_CHS`() {
kotlin.run {
val r =
- parse("[蓝白汉化] 战队红战士在异世界当冒险者 / Sentai Red Isekai de Boukensha ni Naru [07][1080p][WebRip][x264_AAC][CHS]")
+ parse("[藍白漢化] 戰隊紅戰士在異世界當冒險者 / Sentai Red Isekai de Boukensha ni Naru [07][1080p][WebRip][x264_AAC][CHS]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4147,7 +4147,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690173_Kusuriya_no_Hitorigoto_31_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 药屋少女的呢喃 / 药屋少女的独语 / Kusuriya no Hitorigoto [31][WebRip][HEVC_AAC][简繁日内封]")
+ parse("[北宇治字幕組] 藥屋少女的呢喃 / 藥屋少女的獨語 / Kusuriya no Hitorigoto [31][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("31..31", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4159,7 +4159,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690172_Kusuriya_no_Hitorigoto_31_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 药屋少女的呢喃 / 药屋少女的独语 / Kusuriya no Hitorigoto [31][WebRip][HEVC_AAC][简日内嵌]")
+ parse("[北宇治字幕組] 藥屋少女的呢喃 / 藥屋少女的獨語 / Kusuriya no Hitorigoto [31][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("31..31", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4171,7 +4171,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690171_Kusuriya_no_Hitorigoto_31_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 藥屋少女的呢喃 / 藥屋少女的獨語 / Kusuriya no Hitorigoto [31][WebRip][HEVC_AAC][繁日內嵌]")
+ parse("[北宇治字幕組] 藥屋少女的呢喃 / 藥屋少女的獨語 / Kusuriya no Hitorigoto [31][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("31..31", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4183,7 +4183,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690170_Arafou_Otoko_no_Isekai_Tsuuhan_Seikatsu_07_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]中年男的异世界网购生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [07] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]中年男的異世界網購生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [07] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4195,7 +4195,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690169_Arafou_Otoko_no_Isekai_Tsuuhan_Seikatsu_07_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]中年男的异世界网购生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [07] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]中年男的異世界網購生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [07] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4206,7 +4206,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690168_SAKAMOTO_DAYS_05_1080p_2025_1`() {
kotlin.run {
- val r = parse("[猎户手抄部] 坂本日常 / SAKAMOTO DAYS [05] [1080p] [繁日内嵌] [2025年1月番]")
+ val r = parse("[獵戶手抄部] 坂本日常 / SAKAMOTO DAYS [05] [1080p] [繁日內嵌] [2025年1月番]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4217,7 +4217,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690167_SAKAMOTO_DAYS_05_1080p_2025_1`() {
kotlin.run {
- val r = parse("[猎户手抄部] 坂本日常 / SAKAMOTO DAYS [05] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶手抄部] 坂本日常 / SAKAMOTO DAYS [05] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4250,7 +4250,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690164_Dr_STONE_Science_Future_02_1080p_2025_1`() {
kotlin.run {
- val r = parse("[猎户压制部] 新石纪 第四季 科学与未来 / Dr.STONE:Science Future [02] [1080p] [繁日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 新石紀 第四季 科學與未來 / Dr.STONE:Science Future [02] [1080p] [繁日內嵌] [2025年1月番]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4261,7 +4261,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690163_Dr_STONE_Science_Future_02_1080p_2025_1`() {
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第四季 科学与未来 / Dr.STONE:Science Future [02] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第四季 科學與未來 / Dr.STONE:Science Future [02] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4284,7 +4284,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690161_1_07_HEVC_x265_10bit_1080p`() {
kotlin.run {
- val r = parse("[云歌字幕组][1月新番][欢迎来到日本,精灵小姐][07][HEVC][x265 10bit][1080p][简日双语]")
+ val r = parse("[雲歌字幕組][1月新番][歡迎來到日本,精靈小姐][07][HEVC][x265 10bit][1080p][簡日雙語]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4306,7 +4306,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690159_Shakugan_no_Shana_I_06_BDRip_1080P_x264_AAC`() {
kotlin.run {
- val r = parse("[晚街与灯][灼眼的夏娜 第一季_Shakugan no Shana I][06][BDRip_1080P_x264_AAC][简日内嵌]")
+ val r = parse("[晚街與燈][灼眼的夏娜 第一季_Shakugan no Shana I][06][BDRip_1080P_x264_AAC][簡日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4317,7 +4317,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690157_160_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[吞噬星空][第160集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[吞噬星空][第160集][國語中字][WEB-MKV][2160P]")
assertEquals("160..160", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -4329,7 +4329,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690154_Sousou_no_Frieren___11_BDRip_HEVC_10bit_1080p`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 葬送的芙莉莲 / 葬送のフリーレン / Sousou no Frieren - 11 [BDRip][HEVC-10bit 1080p][繁日内嵌]")
+ parse("[❀撥雪尋春❀] 葬送的芙莉蓮 / 葬送のフリーレン / Sousou no Frieren - 11 [BDRip][HEVC-10bit 1080p][繁日內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4341,7 +4341,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690153_Sousou_no_Frieren___11_BDRip_HEVC_10bit_1080p`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 葬送的芙莉莲 / 葬送のフリーレン / Sousou no Frieren - 11 [BDRip][HEVC-10bit 1080p][简日内嵌]")
+ parse("[❀撥雪尋春❀] 葬送的芙莉蓮 / 葬送のフリーレン / Sousou no Frieren - 11 [BDRip][HEVC-10bit 1080p][簡日內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4353,7 +4353,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690152_Sousou_no_Frieren___11_BDRip_HEVC_10bit_1080p`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 葬送的芙莉莲 / 葬送のフリーレン / Sousou no Frieren - 11 [BDRip][HEVC-10bit 1080p][简繁日内封]")
+ parse("[❀撥雪尋春❀] 葬送的芙莉蓮 / 葬送のフリーレン / Sousou no Frieren - 11 [BDRip][HEVC-10bit 1080p][簡繁日內封]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4365,7 +4365,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690151_Sousou_no_Frieren___10_BDRip_HEVC_10bit_1080p`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 葬送的芙莉莲 / 葬送のフリーレン / Sousou no Frieren - 10 [BDRip][HEVC-10bit 1080p][繁日内嵌]")
+ parse("[❀撥雪尋春❀] 葬送的芙莉蓮 / 葬送のフリーレン / Sousou no Frieren - 10 [BDRip][HEVC-10bit 1080p][繁日內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4377,7 +4377,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690150_Sousou_no_Frieren___10_BDRip_HEVC_10bit_1080p`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 葬送的芙莉莲 / 葬送のフリーレン / Sousou no Frieren - 10 [BDRip][HEVC-10bit 1080p][简日内嵌]")
+ parse("[❀撥雪尋春❀] 葬送的芙莉蓮 / 葬送のフリーレン / Sousou no Frieren - 10 [BDRip][HEVC-10bit 1080p][簡日內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4389,7 +4389,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690149_Sousou_no_Frieren___10_BDRip_HEVC_10bit_1080p`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 葬送的芙莉莲 / 葬送のフリーレン / Sousou no Frieren - 10 [BDRip][HEVC-10bit 1080p][简繁日内封]")
+ parse("[❀撥雪尋春❀] 葬送的芙莉蓮 / 葬送のフリーレン / Sousou no Frieren - 10 [BDRip][HEVC-10bit 1080p][簡繁日內封]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4412,7 +4412,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690146___19V2_CR_WebRip_AI2160p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 龙珠大魔 - 19V2 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 龍珠大魔 - 19V2 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -4435,7 +4435,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690141_GM_Team_Renegade_Immortal_2023_77_AVC_GB_1080P`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][仙逆][Renegade Immortal][2023][77][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][仙逆][Renegade Immortal][2023][77][AVC][GB][1080P]")
assertEquals("77..77", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4472,7 +4472,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690138_Yozakura_san_Chi_no_Daisakusen_01_27_1080P_MP4`() {
kotlin.run {
val r =
- parse("[爱恋字幕社&猫恋汉化组][夜樱家的大作战/夜樱家大作战][Yozakura-san Chi no Daisakusen][01-27][1080P][MP4][简中]")
+ parse("[愛戀字幕社&貓戀漢化組][夜櫻家的大作戰/夜櫻家大作戰][Yozakura-san Chi no Daisakusen][01-27][1080P][MP4][簡中]")
assertEquals("01..27", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4496,7 +4496,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690136_10_Amagami_san_Chi_no_Enmusubi_15_17_1080P_MP4_GB`() {
kotlin.run {
val r =
- parse("[爱恋字幕社&猫恋汉化组][10月新番][缘结甘神家/结缘甘神神社][Amagami-san Chi no Enmusubi][15-17][1080P][MP4][GB][简中]")
+ parse("[愛戀字幕社&貓戀漢化組][10月新番][緣結甘神家/結緣甘神神社][Amagami-san Chi no Enmusubi][15-17][1080P][MP4][GB][簡中]")
assertEquals("15..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4507,7 +4507,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690135_______08V2_CR_WebRip_AI2160p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 我独自升级 第二季 -起于暗影- - 08V2 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 我獨自升級 第二季 -起於暗影- - 08V2 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -4529,7 +4529,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690130_Shakugan_no_Shana_I_05_BDRip_1080P_x264_AAC`() {
kotlin.run {
- val r = parse("[晚街与灯][灼眼的夏娜 第一季_Shakugan no Shana I][05][BDRip_1080P_x264_AAC][简日内嵌]")
+ val r = parse("[晚街與燈][灼眼的夏娜 第一季_Shakugan no Shana I][05][BDRip_1080P_x264_AAC][簡日內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4541,7 +4541,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690129_Magic_Maker_Isekai_Mahou_no_Tsukurikata_07_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]魔术发明家 ~异世界魔法的制作方法~ / Magic Maker: Isekai Mahou no Tsukurikata [07] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]魔術發明家 ~異世界魔法的製作方法~ / Magic Maker: Isekai Mahou no Tsukurikata [07] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4553,7 +4553,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690128_Magic_Maker_Isekai_Mahou_no_Tsukurikata_07_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]魔术发明家 ~异世界魔法的制作方法~ / Magic Maker: Isekai Mahou no Tsukurikata [07] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]魔術發明家 ~異世界魔法的製作方法~ / Magic Maker: Isekai Mahou no Tsukurikata [07] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4564,7 +4564,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690127_Umayuru_22_1080p`() {
kotlin.run {
- val r = parse("【无戒汉化组】摇曳马娘 Umayuru [22][1080p][简中内嵌]")
+ val r = parse("【無戒漢化組】搖曳馬娘 Umayuru [22][1080p][簡中內嵌]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4587,7 +4587,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690125_080_082_1080P_MP4`() {
kotlin.run {
- val r = parse("【枫叶字幕组】[宠物小精灵 / 宝可梦 地平线 烈空坐飞升][080-082][简体][1080P][MP4]")
+ val r = parse("【楓葉字幕組】[寵物小精靈 / 寶可夢 地平線 烈空坐飛昇][080-082][簡體][1080P][MP4]")
assertEquals("80..82", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4609,7 +4609,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690123_Grisaia_Phantom_Trigger_08_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 灰色:幻影扳机 / Grisaia:Phantom Trigger [08][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 灰色:幻影扳機 / Grisaia:Phantom Trigger [08][1080p][簡繁內封]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4631,7 +4631,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690121_Grisaia_Phantom_Trigger_08_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 灰色:幻影扳机 / Grisaia:Phantom Trigger [08][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 灰色:幻影扳機 / Grisaia:Phantom Trigger [08][1080p][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4692,7 +4692,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690115_____Rurouni_Kenshin_Meiji_Kenkaku_Romantan___Kyoto_Douran_43_1080p_2024_10`() {
kotlin.run {
val r =
- parse("[猎户手抄部] 神剑闯江湖 -明治剑客浪漫谭- 京都动乱 / Rurouni Kenshin:Meiji Kenkaku Romantan - Kyoto Douran [43] [1080p] [繁日内嵌] [2024年10月番]")
+ parse("[獵戶手抄部] 神劍闖江湖 -明治劍客浪漫譚- 京都動亂 / Rurouni Kenshin:Meiji Kenkaku Romantan - Kyoto Douran [43] [1080p] [繁日內嵌] [2024年10月番]")
assertEquals("43..43", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4704,7 +4704,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690114_____Rurouni_Kenshin_Meiji_Kenkaku_Romantan___Kyoto_Douran_43_1080p_2024_10`() {
kotlin.run {
val r =
- parse("[猎户手抄部] 浪客剑心 -明治剑客浪漫谭- 京都动乱 / Rurouni Kenshin: Meiji Kenkaku Romantan - Kyoto Douran [43] [1080p] [简日内嵌] [2024年10月番]")
+ parse("[獵戶手抄部] 浪客劍心 -明治劍客浪漫譚- 京都動亂 / Rurouni Kenshin: Meiji Kenkaku Romantan - Kyoto Douran [43] [1080p] [簡日內嵌] [2024年10月番]")
assertEquals("43..43", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4716,7 +4716,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690111_Class_no_Daikirai_na_Joshi_to_Kekkon_Suru_Koto_ni_Natta_08_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 我和班上最讨厌的女生结婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [08][1080p][简繁内封]")
+ parse("[桜都字幕組] 我和班上最討厭的女生結婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [08][1080p][簡繁內封]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4751,7 +4751,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690108_Class_no_Daikirai_na_Joshi_to_Kekkon_Suru_Koto_ni_Natta_08_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 我和班上最讨厌的女生结婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [08][1080p][简体内嵌]")
+ parse("[桜都字幕組] 我和班上最討厭的女生結婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [08][1080p][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4773,7 +4773,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690106_LoliHouse_Medalist___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[喵萌奶茶屋&LoliHouse] 金牌得主 / Medalist - 08 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ val r = parse("[喵萌奶茶屋&LoliHouse] 金牌得主 / Medalist - 08 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4784,7 +4784,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690105_FSD_MIRAI_DAYS_06_1080P`() {
kotlin.run {
- val r = parse("【FSD粉羽社】魔法使光之美少女!!~MIRAI DAYS~[06][1080P][简体中字]")
+ val r = parse("【FSD粉羽社】魔法使光之美少女!!~MIRAI DAYS~[06][1080P][簡體中字]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4795,7 +4795,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690104_77_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[仙逆][第77集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[仙逆][第77集][國語中字][WEB-MKV][2160P]")
assertEquals("77..77", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -4819,7 +4819,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690101_Himitsu_no_Aipri_46`() {
kotlin.run {
- val r = parse("[雪飄工作室][ひみつのアイプリ/Himitsu_no_Aipri/秘密的美妙公主][46][简繁外挂](检索:/美妙旋律/美妙天堂/美妙頻道/美妙魔法)")
+ val r = parse("[雪飄工作室][ひみつのアイプリ/Himitsu_no_Aipri/祕密的美妙公主][46][簡繁外掛](檢索:/美妙旋律/美妙天堂/美妙頻道/美妙魔法)")
assertEquals("46..46", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4831,7 +4831,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690100_Himitsu_no_Aipri_720P_46`() {
kotlin.run {
val r =
- parse("[雪飄工作室][ひみつのアイプリ/Himitsu_no_Aipri/秘密的美妙公主][720P][46][繁](检索:/美妙旋律/美妙天堂/美妙頻道/美妙魔法)")
+ parse("[雪飄工作室][ひみつのアイプリ/Himitsu_no_Aipri/祕密的美妙公主][720P][46][繁](檢索:/美妙旋律/美妙天堂/美妙頻道/美妙魔法)")
assertEquals("46..46", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4842,7 +4842,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690096_10_Touhai_Ura_Rate_Mahjong_Touhai_Roku_19_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[冻牌 / Touhai: Ura Rate Mahjong Touhai Roku][19][1080p][简体][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[凍牌 / Touhai: Ura Rate Mahjong Touhai Roku][19][1080p][簡體][招募翻譯]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4875,7 +4875,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690093_01_Medalist_08_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[金牌得主 / Medalist][08][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[金牌得主 / Medalist][08][1080p][簡日雙語][招募翻譯]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4886,7 +4886,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690092_98_102_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[仙武传][第98-102集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[仙武傳][第98-102集][國語中字][WEB-MKV][2160P]")
assertEquals("98..102", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -4897,7 +4897,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690091_18_19_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[牧神记][第18-19集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[牧神記][第18-19集][國語中字][WEB-MKV][2160P]")
assertEquals("18..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -4908,7 +4908,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690089_BanG_Dream_21_Ave_Mujica_06_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] BanG Dream! Ave Mujica / 颂乐人偶 [06][WebRip][HEVC_AAC][简繁日内封]")
+ val r = parse("[北宇治字幕組] BanG Dream! Ave Mujica / 頌樂人偶 [06][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4919,7 +4919,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690088_BanG_Dream_21_Ave_Mujica_06_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] BanG Dream! Ave Mujica / 頌樂人偶 [06][WebRip][HEVC_AAC][繁日內嵌]")
+ val r = parse("[北宇治字幕組] BanG Dream! Ave Mujica / 頌樂人偶 [06][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4930,7 +4930,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690087_BanG_Dream_21_Ave_Mujica_06_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] BanG Dream! Ave Mujica / 颂乐人偶 [06][WebRip][HEVC_AAC][简日内嵌]")
+ val r = parse("[北宇治字幕組] BanG Dream! Ave Mujica / 頌樂人偶 [06][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4977,7 +4977,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690083_LoliHouse_Ao_no_Exorcist_Yosuga_hen___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[豌豆字幕组&LoliHouse] 青之驱魔师 终夜篇 / Ao no Exorcist Yosuga-hen - 08 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&LoliHouse] 青之驅魔師 終夜篇 / Ao no Exorcist Yosuga-hen - 08 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4989,7 +4989,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690082_LoliHouse_A_Aparida___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 离开A级队伍的我,和从前的弟子往迷宫深处迈进 / Aparida - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 離開A級隊伍的我,和從前的弟子往迷宮深處邁進 / Aparida - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5001,7 +5001,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690081_LoliHouse_NEET_Kunoichi___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 我与尼特女忍者的莫名同居生活 / NEET Kunoichi - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 我與尼特女忍者的莫名同居生活 / NEET Kunoichi - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5013,7 +5013,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690080_LoliHouse_Dragon_Ball_Daima___19_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 龙珠 大魔 / Dragon Ball Daima - 19 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 龍珠 大魔 / Dragon Ball Daima - 19 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5024,7 +5024,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690079_10_19_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&澄空学园&华盟字幕社&千夏字幕组】★10月新番[冻牌][19][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組&澄空學園&華盟字幕社&千夏字幕組】★10月新番[凍牌][19][1080P][簡體][MP4]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5047,7 +5047,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690077_You_and_Idol_Precure_1080p_04_Q`() {
kotlin.run {
val r =
- parse("[雪飘工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/与你同为 偶像光之美少女♪][1080p][04][简繁外挂](检索:Q娃)")
+ parse("[雪飄工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/與你同爲 偶像光之美少女♪][1080p][04][簡繁外掛](檢索:Q娃)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5059,7 +5059,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690076_You_and_Idol_Precure_720p_04_Q`() {
kotlin.run {
val r =
- parse("[雪飄工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/与你同为 偶像光之美少女♪][720p][04][繁體內嵌](檢索:Q娃)")
+ parse("[雪飄工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/與你同爲 偶像光之美少女♪][720p][04][繁體內嵌](檢索:Q娃)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5071,7 +5071,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690075_You_and_Idol_Precure_720p_04_Q`() {
kotlin.run {
val r =
- parse("[雪飘工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/与你同为 偶像光之美少女♪][720p][04][简体内嵌](检索:Q娃)")
+ parse("[雪飄工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/與你同爲 偶像光之美少女♪][720p][04][簡體內嵌](檢索:Q娃)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5084,7 +5084,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690073_SweetSub_VCB_Studio_16bit_16bit_Sensation_Another_Layer_16bit_10_bit_1080p_HEVC_BDRip_Fin`() {
kotlin.run {
val r =
- parse("[SweetSub&VCB-Studio] 16位的辉煌 / 16bit Sensation Another Layer / 16bitセンセーション 10-bit 1080p HEVC BDRip [Fin]")
+ parse("[SweetSub&VCB-Studio] 16位的輝煌 / 16bit Sensation Another Layer / 16bitセンセーション 10-bit 1080p HEVC BDRip [Fin]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5108,7 +5108,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690071_DBFC_019_1080P_MP4`() {
kotlin.run {
- val r = parse("【DBFC字幕组】【龙珠 大魔】【019】【中日双语字幕】【1080P】【MP4】")
+ val r = parse("【DBFC字幕組】【龍珠 大魔】【019】【中日雙語字幕】【1080P】【MP4】")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5119,7 +5119,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690070___20_NF_WebRip_AI2160p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 青之箱 - 20 [NF WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 青之箱 - 20 [NF WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -5143,7 +5143,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690068_Re_Re_Zero_kara_Hajimeru_Isekai_Seikatsu_61_WebRip_1080p_AVC_AAC`() {
kotlin.run {
val r =
- parse("【百冬练习组】【Re: 从零开始的异世界的生活_Re꞉ Zero kara Hajimeru Isekai Seikatsu】[61][WebRip 1080p AVC AAC][简体]")
+ parse("【百冬練習組】【Re: 從零開始的異世界的生活_Re꞉ Zero kara Hajimeru Isekai Seikatsu】[61][WebRip 1080p AVC AAC][簡體]")
assertEquals("61..61", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5154,7 +5154,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690067___20_NF_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 青之箱 - 20 [NF WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 青之箱 - 20 [NF WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5165,7 +5165,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690066___19_NF_WebRip_AI2160p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 青之箱 - 19 [NF WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 青之箱 - 19 [NF WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -5176,7 +5176,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690065___19_NF_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 青之箱 - 19 [NF WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 青之箱 - 19 [NF WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5187,7 +5187,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690064_______08_CR_WebRip_AI2160p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 我独自升级 第二季 -起于暗影- - 08 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 我獨自升級 第二季 -起於暗影- - 08 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -5200,7 +5200,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690062_LoliHouse_____Ore_dake_Level_Up_na_Ken_Solo_Leveling___20_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 我独自升级 -起于暗影- / Ore dake Level Up na Ken / Solo Leveling - 20 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 我獨自升級 -起於暗影- / Ore dake Level Up na Ken / Solo Leveling - 20 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5212,7 +5212,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690044_LoliHouse_Douse_Koishite_Shimaunda___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 终究、与你相恋 / Douse, Koishite Shimaunda - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 終究、與你相戀 / Douse, Koishite Shimaunda - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5223,7 +5223,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690042_______08_CR_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 我独自升级 第二季 -起于暗影- - 08 [CR WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 我獨自升級 第二季 -起於暗影- - 08 [CR WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5235,7 +5235,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690041__21_21_MIRAI_DAYS_Maho_Girls_Precure_21_21__21_21_1080p_07_Q`() {
kotlin.run {
val r =
- parse("[雪飘工作室][魔法つかいプリキュア!!~MIRAI DAYS~/Maho_Girls_Precure!!/魔法少女 光之美少女!!~未来的日子~][1080p][07][简繁外挂](检索:Q娃)")
+ parse("[雪飄工作室][魔法つかいプリキュア!!~MIRAI DAYS~/Maho_Girls_Precure!!/魔法少女 光之美少女!!~未來的日子~][1080p][07][簡繁外掛](檢索:Q娃)")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5247,7 +5247,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690040__21_21_MIRAI_DAYS_Maho_Girls_Precure_21_21__21_21_720p_07_Q`() {
kotlin.run {
val r =
- parse("[雪飘工作室][魔法つかいプリキュア!!~MIRAI DAYS~/Maho_Girls_Precure!!/魔法少女 光之美少女!!~未来的日子~][720p][07][简体内嵌](检索:Q娃)")
+ parse("[雪飄工作室][魔法つかいプリキュア!!~MIRAI DAYS~/Maho_Girls_Precure!!/魔法少女 光之美少女!!~未來的日子~][720p][07][簡體內嵌](檢索:Q娃)")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5270,7 +5270,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690038_Ao_no_Exorcist_Yosuga_Hen_08_1080P_MP4`() {
kotlin.run {
- val r = parse("【豌豆字幕组】[青之驱魔师 终夜篇 / Ao no Exorcist _Yosuga Hen][08][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組】[青之驅魔師 終夜篇 / Ao no Exorcist _Yosuga Hen][08][簡體][1080P][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5303,7 +5303,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690035_1154_WEBRIP_MKV_1080P`() {
kotlin.run {
- val r = parse("[银色子弹字幕组][名侦探柯南][第1154集 屋久岛的山姬(后篇)][WEBRIP][简繁日多语MKV][1080P]")
+ val r = parse("[銀色子彈字幕組][名偵探柯南][第1154集 屋久島的山姬(後篇)][WEBRIP][簡繁日多語MKV][1080P]")
assertEquals("1154..1154", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5314,7 +5314,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690034_1154_WEBRIP_MP4_1080P`() {
kotlin.run {
- val r = parse("[银色子弹字幕组][名侦探柯南][第1154集 屋久島的山姬(後篇)][WEBRIP][繁日雙語MP4][1080P]")
+ val r = parse("[銀色子彈字幕組][名偵探柯南][第1154集 屋久島的山姬(後篇)][WEBRIP][繁日雙語MP4][1080P]")
assertEquals("1154..1154", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5325,7 +5325,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690033_1154_WEBRIP_MP4_1080P`() {
kotlin.run {
- val r = parse("[银色子弹字幕组][名侦探柯南][第1154集 屋久岛的山姬(后篇)][WEBRIP][简日双语MP4][1080P]")
+ val r = parse("[銀色子彈字幕組][名偵探柯南][第1154集 屋久島的山姬(後篇)][WEBRIP][簡日雙語MP4][1080P]")
assertEquals("1154..1154", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5337,7 +5337,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690032_LoliHouse_S_Beheneko___09_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] S级怪兽《贝希摩斯》被误认成小猫,成为精灵女孩的骑士(宠物)一起生活 / Beheneko - 09 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] S級怪獸《貝希摩斯》被誤認成小貓,成爲精靈女孩的騎士(寵物)一起生活 / Beheneko - 09 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5370,7 +5370,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690029___07_CR_WebRip_AI2160p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 药屋少女的呢喃 第二季 - 07 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 藥屋少女的呢喃 第二季 - 07 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -5453,7 +5453,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690022_Strange_Raw_SAKAMOTO_DAYS_S01_07_Bilibili_WEB_DL_1080P_AVC_8Bits_AAC_2_0`() {
kotlin.run {
val r =
- parse("[Strange-Raw] 坂本日常 第一季 / SAKAMOTO DAYS S01 [07] [Bilibili] [WEB-DL] [1080P AVC-8Bits AAC 2.0] [简日内嵌字幕]")
+ parse("[Strange-Raw] 坂本日常 第一季 / SAKAMOTO DAYS S01 [07] [Bilibili] [WEB-DL] [1080P AVC-8Bits AAC 2.0] [簡日內嵌字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5475,7 +5475,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690020___07_CR_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 药屋少女的呢喃 第二季 - 07 [CR WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 藥屋少女的呢喃 第二季 - 07 [CR WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5488,7 +5488,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690019_Kuroiwa_Medaka_ni_Watashi_no_Kawaii_ga_Tsuujinai_07_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]我的可爱对黑岩目高不管用 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai [07] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]我的可愛對黑巖目高不管用 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai [07] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5501,7 +5501,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `690018_Kuroiwa_Medaka_ni_Watashi_no_Kawaii_ga_Tsuujinai_07_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]我的可爱对黑岩目高不管用 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai [07] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]我的可愛對黑巖目高不管用 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai [07] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5513,7 +5513,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690013_Arafou_Otoko_no_Isekai_Tsuuhan_Seikatsu_06_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]中年男的异世界网购生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [06] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]中年男的異世界網購生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [06] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5537,7 +5537,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690011_Arafou_Otoko_no_Isekai_Tsuuhan_Seikatsu_06_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]中年男的异世界网购生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [06] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]中年男的異世界網購生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [06] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5561,7 +5561,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690009_BanG_Dream_21_Ave_Mujica_2025_WEB_07_1080p`() {
kotlin.run {
- val r = parse("[冷番补完字幕组][BanG Dream! Ave Mujica][2025][WEB][07][1080p][内封简繁中字]")
+ val r = parse("[冷番補完字幕組][BanG Dream! Ave Mujica][2025][WEB][07][1080p][內封簡繁中字]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5572,7 +5572,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690008_Dr_STONE_Science_Future_01_1080p_2025_1`() {
kotlin.run {
- val r = parse("[猎户压制部] 新石纪 第四季 科学与未来 / Dr.STONE:Science Future [01] [1080p] [繁日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 新石紀 第四季 科學與未來 / Dr.STONE:Science Future [01] [1080p] [繁日內嵌] [2025年1月番]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5583,7 +5583,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690007_Dr_STONE_Science_Future_01_1080p_2025_1`() {
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第四季 科学与未来 / Dr.STONE:Science Future [01] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第四季 科學與未來 / Dr.STONE:Science Future [01] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5594,7 +5594,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690006___19_CR_WebRip_AI2160p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 龙珠大魔 - 19 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 龍珠大魔 - 19 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -5605,7 +5605,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690005_SAKAMOTO_DAYS_04_1080p_2025_1`() {
kotlin.run {
- val r = parse("[猎户手抄部] 坂本日常 / SAKAMOTO DAYS [04] [1080p] [繁日内嵌] [2025年1月番]")
+ val r = parse("[獵戶手抄部] 坂本日常 / SAKAMOTO DAYS [04] [1080p] [繁日內嵌] [2025年1月番]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5628,7 +5628,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690003_SAKAMOTO_DAYS_04_1080p_2025_1`() {
kotlin.run {
- val r = parse("[猎户手抄部] 坂本日常 / SAKAMOTO DAYS [04] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶手抄部] 坂本日常 / SAKAMOTO DAYS [04] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5639,7 +5639,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `690002___19_CR_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 龙珠大魔 - 19 [CR WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 龍珠大魔 - 19 [CR WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5663,7 +5663,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `690000_Okinawa_de_Suki_ni_Natta_Ko_ga_Hougen_Sugite_Tsura_Sugiru_07_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 喜欢的冲绳妹说方言 / Okinawa de Suki ni Natta Ko ga Hougen Sugite Tsura Sugiru [07][1080p][简日内嵌]")
+ parse("[桜都字幕組] 喜歡的沖繩妹說方言 / Okinawa de Suki ni Natta Ko ga Hougen Sugite Tsura Sugiru [07][1080p][簡日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5675,7 +5675,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689999_Okinawa_de_Suki_ni_Natta_Ko_ga_Hougen_Sugite_Tsura_Sugiru_07_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 喜欢的冲绳妹说方言 / Okinawa de Suki ni Natta Ko ga Hougen Sugite Tsura Sugiru [07][1080p][简繁日内封]")
+ parse("[桜都字幕組] 喜歡的沖繩妹說方言 / Okinawa de Suki ni Natta Ko ga Hougen Sugite Tsura Sugiru [07][1080p][簡繁日內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5687,7 +5687,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689997_LoliHouse_Kurakon___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 我和班上最讨厌的女生结婚了。 / クラスの大嫌いな女子と結婚することになった。 / Kurakon - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 我和班上最討厭的女生結婚了。 / クラスの大嫌いな女子と結婚することになった。 / Kurakon - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5699,7 +5699,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689995_WBX_Wonderful_Precure_1080P_Q`() {
kotlin.run {
val r =
- parse("[雪飄工作室 & WBX][汪分精彩光之美少女!/Wonderful_Precure!/わんだふるぷりきゅあ!][大電影!心動不已 在遊戲的世界大冒險][1080P][繁](检索:Q娃/プリキュア)")
+ parse("[雪飄工作室 & WBX][汪分精彩光之美少女!/Wonderful_Precure!/わんだふるぷりきゅあ!][大電影!心動不已 在遊戲的世界大冒險][1080P][繁](檢索:Q娃/プリキュア)")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5711,7 +5711,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689994_LoliHouse_Akuyaku_Reijou_Tensei_Ojisan___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 大叔转生恶役大小姐 / Akuyaku Reijou Tensei Ojisan - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 大叔轉生惡役大小姐 / Akuyaku Reijou Tensei Ojisan - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5724,7 +5724,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689993_LoliHouse_Fuguushoku_Kanteishi_ga_Jitsu_wa_Saikyou_Datta___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 不幸职业【鉴定士】实则最强 / Fuguushoku 'Kanteishi' ga Jitsu wa Saikyou Datta - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 不幸職業【鑑定士】實則最強 / Fuguushoku 'Kanteishi' ga Jitsu wa Saikyou Datta - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5737,7 +5737,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689992_LoliHouse_2_Watashi_no_Shiawase_na_Kekkon_S2___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 我的幸福婚姻 2期 / Watashi no Shiawase na Kekkon S2 - 07 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 我的幸福婚姻 2期 / Watashi no Shiawase na Kekkon S2 - 07 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5748,7 +5748,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689991_135_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[斗破苍穹年番][第135集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[鬥破蒼穹年番][第135集][國語中字][WEB-MKV][2160P]")
assertEquals("135..135", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -5760,7 +5760,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689989_WBX_Wonderful_Precure_720P_Q`() {
kotlin.run {
val r =
- parse("[雪飄工作室 & WBX][汪分精彩光之美少女!/Wonderful_Precure!/わんだふるぷりきゅあ!][大电影!·心动不已 在游戏的世界大冒险][720P][简](检索:Q娃/プリキュア)")
+ parse("[雪飄工作室 & WBX][汪分精彩光之美少女!/Wonderful_Precure!/わんだふるぷりきゅあ!][大電影!·心動不已 在遊戲的世界大冒險][720P][簡](檢索:Q娃/プリキュア)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5784,7 +5784,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689987_Production_LoliHouse_BanG_Dream_21_Ave_Mujica___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌Production&LoliHouse] BanG Dream! Ave Mujica - 08 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌Production&LoliHouse] BanG Dream! Ave Mujica - 08 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5797,7 +5797,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689986_Production_LoliHouse_BanG_Dream_21_Ave_Mujica___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌Production&LoliHouse] BanG Dream! Ave Mujica - 07 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌Production&LoliHouse] BanG Dream! Ave Mujica - 07 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5809,7 +5809,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689985_LoliHouse_Ishura_S2___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 异修罗 第二季 / Ishura S2 - 07 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 異修羅 第二季 / Ishura S2 - 07 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5831,7 +5831,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689983_01_2_Watashi_no_Shiawase_na_Kekkon_S2_07_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[我的幸福婚姻 2期 / Watashi no Shiawase na Kekkon S2][07][1080p][简日双语]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[我的幸福婚姻 2期 / Watashi no Shiawase na Kekkon S2][07][1080p][簡日雙語]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5865,7 +5865,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689980_LoliHouse_Hana_wa_Saku_Shura_no_Gotoku___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 群花绽放,仿如修罗 / Hana wa Saku Shura no Gotoku - 07 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 羣花綻放,仿如修羅 / Hana wa Saku Shura no Gotoku - 07 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5877,7 +5877,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689979_LoliHouse_Nihon_e_Youkoso_Elf_san___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 精灵来日 / 歡迎來到日本,妖精小姐。 / 日本へようこそエルフさん。 / Nihon e Youkoso Elf-san. - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 精靈來日 / 歡迎來到日本,妖精小姐。 / 日本へようこそエルフさん。 / Nihon e Youkoso Elf-san. - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5901,7 +5901,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689974_GalaxyRailroad_888_GO_RUSH_21_21_Yu_Gi_Oh_21_GO_RUSH__21_21_145_720P_GB`() {
kotlin.run {
- val r = parse("[GalaxyRailroad-888] 游戏王GO RUSH!! Yu-Gi-Oh! GO RUSH !! 145 720P [GB_简中]")
+ val r = parse("[GalaxyRailroad-888] 遊戲王GO RUSH!! Yu-Gi-Oh! GO RUSH !! 145 720P [GB_簡中]")
assertEquals("145..145", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5923,7 +5923,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689972_131_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[凡人修仙传][第131集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[凡人修仙傳][第131集][國語中字][WEB-MKV][2160P]")
assertEquals("131..131", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -5934,7 +5934,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689967_07_GB_CN_HEVC_opus_1080p`() {
kotlin.run {
- val r = parse("【极影字幕·毁片党】 这家公司里有我喜欢的人 第07集 GB_CN HEVC_opus 1080p")
+ val r = parse("【極影字幕·毀片黨】 這家公司裏有我喜歡的人 第07集 GB_CN HEVC_opus 1080p")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5945,7 +5945,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689965_01_Tasokare_Hotel_08_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[黄昏旅店 / Tasokare Hotel][08][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[黃昏旅店 / Tasokare Hotel][08][1080p][簡日雙語][招募翻譯]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5967,7 +5967,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689963_Kusuriya_no_Hitorigoto_31_1080P_MP4`() {
kotlin.run {
- val r = parse("【豌豆字幕组】[药屋少女的呢喃(药师少女的独语)/ Kusuriya no Hitorigoto][31][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組】[藥屋少女的呢喃(藥師少女的獨語)/ Kusuriya no Hitorigoto][31][簡體][1080P][MP4]")
assertEquals("31..31", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5990,7 +5990,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689961_BanG_Dream_21_Ave_Mujica___08_CR_WebRip_AI2160p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[不当舔狗制作组] BanG Dream! Ave Mujica - 08 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ parse("[不當舔狗製作組] BanG Dream! Ave Mujica - 08 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -6002,7 +6002,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689960_BanG_Dream_21_Ave_Mujica___08_CR_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[不当舔狗制作组] BanG Dream! Ave Mujica - 08 [CR WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ parse("[不當舔狗製作組] BanG Dream! Ave Mujica - 08 [CR WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6025,7 +6025,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689958_WOOO__21_WEBRIP_MP4_MP4_MKV_1080P`() {
kotlin.run {
val r =
- parse("[银色子弹字幕组][名侦探柯南][特别篇WOOO 迷侦探!?毛利小五郎&演员优木真央美的烦恼][WEBRIP][简日双语MP4/繁日雙語MP4/简繁日多语MKV][1080P]")
+ parse("[銀色子彈字幕組][名偵探柯南][特別篇WOOO 迷偵探!?毛利小五郎&演員優木真央美的煩惱][WEBRIP][簡日雙語MP4/繁日雙語MP4/簡繁日多語MKV][1080P]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6036,7 +6036,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689957_59_WEBRIP_MP4_MP4_MKV_1080P`() {
kotlin.run {
- val r = parse("[银色子弹字幕组][名侦探柯南][第59集 首次跑腿杀人事件][WEBRIP][简日双语MP4/繁日雙語MP4/简繁日多语MKV][1080P]")
+ val r = parse("[銀色子彈字幕組][名偵探柯南][第59集 首次跑腿殺人事件][WEBRIP][簡日雙語MP4/繁日雙語MP4/簡繁日多語MKV][1080P]")
assertEquals("59..59", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6048,7 +6048,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689956_DBD_Raws_Puniru_wa_Kawaii_Slime_01_06TV_1080P_BDRip_HEVC_10bit_FLACx2_MKV`() {
kotlin.run {
val r =
- parse("[DBD-Raws][噗妮露是可爱史莱姆/Puniru wa Kawaii Slime][01-06TV][1080P][BDRip][HEVC-10bit][FLACx2][MKV](ぷにるはかわいいスライム)")
+ parse("[DBD-Raws][噗妮露是可愛史萊姆/Puniru wa Kawaii Slime][01-06TV][1080P][BDRip][HEVC-10bit][FLACx2][MKV](ぷにるはかわいいスライム)")
assertEquals("01..06", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6092,7 +6092,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689952_Zenshuu_07_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 全修。 / Zenshuu. [07][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 全修。 / Zenshuu. [07][1080p][簡繁內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6114,7 +6114,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689950_Zenshuu_07_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 全修。 / Zenshuu. [07][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 全修。 / Zenshuu. [07][1080p][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6126,7 +6126,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689949_LoliHouse_Grisaia_Phantom_Trigger___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[澄空学园&动漫国字幕组&LoliHouse] 灰色: 幻影扳机 / グリザイア: ファントムトリガー / Grisaia: Phantom Trigger - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[澄空學園&動漫國字幕組&LoliHouse] 灰色: 幻影扳機 / グリザイア: ファントムトリガー / Grisaia: Phantom Trigger - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6150,7 +6150,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689947_LoliHouse_Grisaia_Phantom_Trigger___06_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[澄空学园&动漫国字幕组&LoliHouse] 灰色: 幻影扳机 / グリザイア: ファントムトリガー / Grisaia: Phantom Trigger - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[澄空學園&動漫國字幕組&LoliHouse] 灰色: 幻影扳機 / グリザイア: ファントムトリガー / Grisaia: Phantom Trigger - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6162,7 +6162,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689946_LoliHouse_Grisaia_Phantom_Trigger___05_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[澄空学园&动漫国字幕组&LoliHouse] 灰色: 幻影扳机 / グリザイア: ファントムトリガー / Grisaia: Phantom Trigger - 05 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[澄空學園&動漫國字幕組&LoliHouse] 灰色: 幻影扳機 / グリザイア: ファントムトリガー / Grisaia: Phantom Trigger - 05 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6173,7 +6173,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689945_01_Hana_wa_Saku_Shura_no_Gotoku_07_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[群花綻放,彷如修羅 / Hana wa Saku Shura no Gotoku][07][1080p][繁日雙語][招募翻譯]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[羣花綻放,彷如修羅 / Hana wa Saku Shura no Gotoku][07][1080p][繁日雙語][招募翻譯]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6184,7 +6184,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689944_01_Hana_wa_Saku_Shura_no_Gotoku_07_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[群花绽放,彷如修罗 / Hana wa Saku Shura no Gotoku][07][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[羣花綻放,彷如修羅 / Hana wa Saku Shura no Gotoku][07][1080p][簡日雙語][招募翻譯]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6219,7 +6219,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689941_01_05_07_1080P_MP4`() {
kotlin.run {
- val r = parse("【澄空学园&动漫国字幕组】★01月新番[灰色 : 幻影扳机][05-07][1080P][简体][MP4]")
+ val r = parse("【澄空學園&動漫國字幕組】★01月新番[灰色 : 幻影扳機][05-07][1080P][簡體][MP4]")
assertEquals("05..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6241,7 +6241,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689939_Amor_Kusuriya_no_Hitorigoto_31_WEBDL_1080P_MKV`() {
kotlin.run {
- val r = parse("[Amor压制组][药师少女的独语 藥師少女的獨語 Kusuriya no Hitorigoto][31][简繁内封][WEBDL][1080P][MKV]")
+ val r = parse("[Amor壓制組][藥師少女的獨語 藥師少女的獨語 Kusuriya no Hitorigoto][31][簡繁內封][WEBDL][1080P][MKV]")
assertEquals("31..31", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6253,7 +6253,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689938_____Ore_dake_Level_Up_na_Ken_S2_19_1080p_KoVer_2025_1`() {
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [19] [1080p] [繁日内嵌] [KoVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [19] [1080p] [繁日內嵌] [KoVer] [2025年1月番]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6265,7 +6265,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689937_____Ore_dake_Level_Up_na_Ken_S2_19_1080p_KoVer_2025_1`() {
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [19] [1080p] [简日内嵌] [KoVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [19] [1080p] [簡日內嵌] [KoVer] [2025年1月番]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6277,7 +6277,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689936_LoliHouse_____Rurouni_Kenshin_2023___43_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 浪客剑心 -明治剑客浪漫谭- 京都动乱 / Rurouni Kenshin (2023) - 43 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 浪客劍心 -明治劍客浪漫譚- 京都動亂 / Rurouni Kenshin (2023) - 43 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("43..43", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6288,7 +6288,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689935_4_12_15_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[镇魂街 第4季][第12-15集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[鎮魂街 第4季][第12-15集][國語中字][WEB-MKV][2160P]")
assertEquals("12..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -6299,7 +6299,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689934_Unnamed_Memory_Act_2_19_1080p_2025_1`() {
kotlin.run {
- val r = parse("[猎户手抄部] 无名记忆 第二季 / Unnamed Memory Act.2 [19] [1080p] [繁日内嵌] [2025年1月番]")
+ val r = parse("[獵戶手抄部] 無名記憶 第二季 / Unnamed Memory Act.2 [19] [1080p] [繁日內嵌] [2025年1月番]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6310,7 +6310,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689933_Unnamed_Memory_Act_2_19_1080p_2025_1`() {
kotlin.run {
- val r = parse("[猎户手抄部] 无名记忆 第二季 / Unnamed Memory Act.2 [19] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶手抄部] 無名記憶 第二季 / Unnamed Memory Act.2 [19] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6354,7 +6354,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689929_10_DAIMA_Dragon_Ball_DAIMA_18_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】【龙珠DAIMA Dragon Ball DAIMA】【18】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【10月新番】【龍珠DAIMA Dragon Ball DAIMA】【18】【GB_MP4】【1920X1080】")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6388,7 +6388,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689926_10_DAIMA_Dragon_Ball_DAIMA_18_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】【龙珠DAIMA Dragon Ball DAIMA】【18】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【10月新番】【龍珠DAIMA Dragon Ball DAIMA】【18】【GB_MP4】【1280X720】")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6400,7 +6400,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689925_Chibi_Maruko_chan_II_1467_2025_02_16_GB_1080P_MP4`() {
kotlin.run {
val r =
- parse("[丸子家族][樱桃小丸子第二期(Chibi Maruko-chan II)][1467]藤木教永泽溜冰&小丸子想在危机中利用智慧[2025.02.16][GB][1080P][MP4]")
+ parse("[丸子家族][櫻桃小丸子第二期(Chibi Maruko-chan II)][1467]藤木教永澤溜冰&小丸子想在危機中利用智慧[2025.02.16][GB][1080P][MP4]")
assertEquals("1467..1467", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6434,7 +6434,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689922_2_89_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[斗罗大陆2绝世唐门][第89集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[斗羅大陸2絕世唐門][第89集][國語中字][WEB-MKV][2160P]")
assertEquals("89..89", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -6447,7 +6447,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689920_LoliHouse_Fuguushoku_Kanteishi_ga_Jitsu_wa_Saikyou_Datta___06_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 不幸职业【鉴定士】实则最强 / Fuguushoku 'Kanteishi' ga Jitsu wa Saikyou Datta - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 不幸職業【鑑定士】實則最強 / Fuguushoku 'Kanteishi' ga Jitsu wa Saikyou Datta - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6460,7 +6460,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689919_LoliHouse_Botsuraku_Yotei_no_Kizoku_dakedo_Hima_Datta_kara_Mahou_wo_Kiwametemita___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 虽然我是注定没落的贵族,闲来无事只好来深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 雖然我是註定沒落的貴族,閒來無事只好來深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6473,7 +6473,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689918_LoliHouse_Act_2_Act_2_Unnamed_Memory_Act_2___19_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 无名记忆 Act.2 / 無名記憶 Act.2 / Unnamed Memory Act.2 - 19 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 無名記憶 Act.2 / 無名記憶 Act.2 / Unnamed Memory Act.2 - 19 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6485,7 +6485,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689917_LoliHouse_SAKAMOTO_DAYS___07_WebRip_1080p_HEVC_10bit_AACx2`() {
kotlin.run {
val r =
- parse("[北宇治字幕组&LoliHouse] 坂本日常 / SAKAMOTO DAYS - 07 [WebRip 1080p HEVC-10bit AACx2][简繁日内封字幕]")
+ parse("[北宇治字幕組&LoliHouse] 坂本日常 / SAKAMOTO DAYS - 07 [WebRip 1080p HEVC-10bit AACx2][簡繁日內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6519,7 +6519,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689912_SweetSub_Momentary_Lily_08_WebRip_1080P_AVC_8bit`() {
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][08][WebRip][1080P][AVC 8bit][简体内嵌]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][08][WebRip][1080P][AVC 8bit][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6532,7 +6532,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689911_LoliHouse_Myth_of_Emotions_Sousei_no_Aquarion_Myth_of_Emotions___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 想星的大天使 Myth of Emotions / Sousei no Aquarion: Myth of Emotions - 07 [WebRip 1080p HEVC-10bit AAC][无字幕]")
+ parse("[LoliHouse] 想星的大天使 Myth of Emotions / Sousei no Aquarion: Myth of Emotions - 07 [WebRip 1080p HEVC-10bit AAC][無字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6543,7 +6543,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689910_SAKAMOTO_DAYS_07_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 坂本日常 / SAKAMOTO DAYS [07][WebRip][HEVC_AAC][简日內嵌]")
+ val r = parse("[北宇治字幕組] 坂本日常 / SAKAMOTO DAYS [07][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -6554,7 +6554,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689909_SAKAMOTO_DAYS_07_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 坂本日常 / SAKAMOTO DAYS [07][WebRip][HEVC_AAC][繁日內嵌]")
+ val r = parse("[北宇治字幕組] 坂本日常 / SAKAMOTO DAYS [07][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -6565,7 +6565,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689908_SAKAMOTO_DAYS_06_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 坂本日常 / SAKAMOTO DAYS [07][WebRip][HEVC_AAC][简繁日內封]")
+ val r = parse("[北宇治字幕組] 坂本日常 / SAKAMOTO DAYS [07][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -6590,7 +6590,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689904_Rev_DBD_Raws_Magia_Record_Mahou_Shoujo_Madoka_Magica_Gaiden_Final___Asaki_Yume_no_Akatsuki_01_04TV_1080P_BDRip_HEVC_10bit_FLAC_MKV_Final_Season____`() {
kotlin.run {
val r =
- parse("[Rev][DBD-Raws][魔法纪录 魔法少女小圆外传 最终季 浅梦的黎明/Magia Record Mahou Shoujo Madoka Magica Gaiden Final - Asaki Yume no Akatsuki][01-04TV全集][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV](マギアレコード 魔法少女まどか☆マギカ外伝 Final Season -浅き夢の暁-)")
+ parse("[Rev][DBD-Raws][魔法紀錄 魔法少女小圓外傳 最終季 淺夢的黎明/Magia Record Mahou Shoujo Madoka Magica Gaiden Final - Asaki Yume no Akatsuki][01-04TV全集][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV](マギアレコード 魔法少女まどか☆マギカ外伝 Final Season -淺き夢の暁-)")
assertEquals("01..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6603,7 +6603,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689902_DBD_Raws_Magia_Record_Mahou_Shoujo_Madoka_Magica_Gaiden_S2___Kakusei_Zen_ya_01_08TV_1080P_BDRip_HEVC_10bit_FLAC_MKV_2nd_SEASON____`() {
kotlin.run {
val r =
- parse("[DBD-Raws][魔法纪录 魔法少女小圆外传 第二季 觉醒前夜/Magia Record Mahou Shoujo Madoka Magica Gaiden S2 - Kakusei Zen`ya][01-08TV全集+特典][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV](マギアレコード 魔法少女まどか☆マギカ外伝 2nd SEASON -覚醒前夜-)")
+ parse("[DBD-Raws][魔法紀錄 魔法少女小圓外傳 第二季 覺醒前夜/Magia Record Mahou Shoujo Madoka Magica Gaiden S2 - Kakusei Zen`ya][01-08TV全集+特典][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV](マギアレコード 魔法少女まどか☆マギカ外伝 2nd SEASON -覚醒前夜-)")
assertEquals("01..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6615,7 +6615,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689898_Dr_STONE_SCIENCE_FUTURE_02_CR_WebRip_1080p_HEVC_AAC_S4`() {
kotlin.run {
val r =
- parse("[芝士动物朋友] 石纪元 科学与未来 / Dr.STONE SCIENCE FUTURE [02][CR-WebRip][1080p][HEVC+AAC][简繁内封](新石纪 第四季 S4)")
+ parse("[芝士動物朋友] 石紀元 科學與未來 / Dr.STONE SCIENCE FUTURE [02][CR-WebRip][1080p][HEVC+AAC][簡繁內封](新石紀 第四季 S4)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6626,7 +6626,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689895_Ao_no_Hako_21_WEBrip_1080P`() {
kotlin.run {
- val r = parse("【今晚月色真美】[青之箱 / アオのハコ / Ao no Hako][21][WEBrip][1080P][简日双语]")
+ val r = parse("【今晚月色真美】[青之箱 / アオのハコ / Ao no Hako][21][WEBrip][1080P][簡日雙語]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6637,7 +6637,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689894_Production_01_BanG_Dream_21_Ave_Mujica_08_1080p`() {
kotlin.run {
- val r = parse("【喵萌Production】★01月新番★[BanG Dream! Ave Mujica][08][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌Production】★01月新番★[BanG Dream! Ave Mujica][08][1080p][簡日雙語][招募翻譯]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6660,7 +6660,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689892_SweetSub_LoliHouse_Momentary_Lily___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[SweetSub&LoliHouse] 刹那之花 / Momentary Lily - 07 [WebRip 1080p HEVC-10bit AAC][简日内封字幕]")
+ parse("[SweetSub&LoliHouse] 剎那之花 / Momentary Lily - 07 [WebRip 1080p HEVC-10bit AAC][簡日內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6695,7 +6695,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689889_01_Ishura_S2_07_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[异修罗 第二季 / Ishura S2][07][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[異修羅 第二季 / Ishura S2][07][1080p][簡日雙語][招募翻譯]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6730,7 +6730,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689886_203_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[完美世界][第203集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[完美世界][第203集][國語中字][WEB-MKV][2160P]")
assertEquals("203..203", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -6753,7 +6753,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689884___02_NF_WebRip_AI2160p_HEVC_10bit_E_AC_3`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 坂本日常 - 02 [NF WebRip AI2160p HEVC-10bit E-AC-3][日英双语音频 官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 坂本日常 - 02 [NF WebRip AI2160p HEVC-10bit E-AC-3][日英雙語音頻 官方簡繁內封字幕]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT, ENG, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id
})
@@ -6776,7 +6776,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689882___02_NF_WebRip_1080p_HEVC_10bit_E_AC_3`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 坂本日常 - 02 [NF WebRip 1080p HEVC-10bit E-AC-3][日英双语音频 官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 坂本日常 - 02 [NF WebRip 1080p HEVC-10bit E-AC-3][日英雙語音頻 官方簡繁內封字幕]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT, ENG, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id
})
@@ -6801,7 +6801,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689880_LoliHouse_Ameku_Takao_s_Detective_Karte___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 天久鹰央的推理病历表 / Ameku Takao's Detective Karte - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 天久鷹央的推理病歷表 / Ameku Takao's Detective Karte - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6813,7 +6813,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689879_____Ore_dake_Level_Up_na_Ken_S2_19_1080p_JaVer_2025_1`() {
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [19] [1080p] [繁日内嵌] [JaVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [19] [1080p] [繁日內嵌] [JaVer] [2025年1月番]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6825,7 +6825,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689878_____Ore_dake_Level_Up_na_Ken_S2_19_1080p_JaVer_2025_1`() {
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [19] [1080p] [简日内嵌] [JaVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [19] [1080p] [簡日內嵌] [JaVer] [2025年1月番]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6848,7 +6848,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689876_DBD_4K_2160P_HDR_1080P_BanG_Dream_21_Ave_Mujica_08_WEB_DL_AAC_MKV`() {
kotlin.run {
val r =
- parse("[DBD制作组][4K(2160P)+HDR+1080P][BanG Dream! Ave Mujica][08][WEB-DL][简日双语内嵌][AAC][MKV]")
+ parse("[DBD製作組][4K(2160P)+HDR+1080P][BanG Dream! Ave Mujica][08][WEB-DL][簡日雙語內嵌][AAC][MKV]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6860,7 +6860,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689875_Shangri_La_Frontier_S2_44_1080p_2024_10`() {
kotlin.run {
val r =
- parse("[猎户压制部] 香格里拉·开拓异境~粪作猎手挑战神作 第二季 / Shangri-La Frontier S2 [44] [1080p] [繁日内嵌] [2024年10月番]")
+ parse("[獵戶壓制部] 香格里拉·開拓異境~糞作獵手挑戰神作 第二季 / Shangri-La Frontier S2 [44] [1080p] [繁日內嵌] [2024年10月番]")
assertEquals("44..44", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6872,7 +6872,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689874_Shangri_La_Frontier_S2_44_1080p_2024_10`() {
kotlin.run {
val r =
- parse("[猎户压制部] 香格里拉·开拓异境~粪作猎手挑战神作 第二季 / Shangri-La Frontier S2 [44] [1080p] [简日内嵌] [2024年10月番]")
+ parse("[獵戶壓制部] 香格里拉·開拓異境~糞作獵手挑戰神作 第二季 / Shangri-La Frontier S2 [44] [1080p] [簡日內嵌] [2024年10月番]")
assertEquals("44..44", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6884,7 +6884,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689871_S1_BanG_Dream_21_Ave_Mujica_08_2160p_Bilibili_Web_DL_HDR_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[S1百综字幕组]BanG Dream! Ave Mujica [08][2160p][Bilibili][Web-DL][HDR][HEVC_AAC][简日双语]")
+ parse("[S1百綜字幕組]BanG Dream! Ave Mujica [08][2160p][Bilibili][Web-DL][HDR][HEVC_AAC][簡日雙語]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -6920,7 +6920,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689868_DBD_Raws_Magia_Record_Mahou_Shoujo_Madoka_Magica_Gaiden_S1_01_13TV_1080P_BDRip_HEVC_10bit_FLAC_MKV_S1`() {
kotlin.run {
val r =
- parse("[DBD-Raws][魔法纪录 魔法少女小圆外传 第一季/Magia Record Mahou Shoujo Madoka Magica Gaiden S1][01-13TV全集][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV](マギアレコード 魔法少女まどか☆マギカ外伝 S1)")
+ parse("[DBD-Raws][魔法紀錄 魔法少女小圓外傳 第一季/Magia Record Mahou Shoujo Madoka Magica Gaiden S1][01-13TV全集][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV](マギアレコード 魔法少女まどか☆マギカ外伝 S1)")
assertEquals("01..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6933,7 +6933,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689867_LoliHouse_Sentai_Red_Isekai_de_Boukensha_ni_Naru___02_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[悠哈璃羽字幕社&LoliHouse] 战队红战士在异世界当冒险者 / Sentai Red Isekai de Boukensha ni Naru - 02 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[悠哈璃羽字幕社&LoliHouse] 戰隊紅戰士在異世界當冒險者 / Sentai Red Isekai de Boukensha ni Naru - 02 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6944,7 +6944,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689866_SweetSub_Momentary_Lily_07_WebRip_1080P_AVC_8bit`() {
kotlin.run {
- val r = parse("[SweetSub][刹那之花][Momentary Lily][07][WebRip][1080P][AVC 8bit][简日内嵌]")
+ val r = parse("[SweetSub][剎那之花][Momentary Lily][07][WebRip][1080P][AVC 8bit][簡日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6955,7 +6955,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689865_Re___11_CR_WebRip_AI2160p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] Re:从零开始的异世界生活 第三季 - 11 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] Re:從零開始的異世界生活 第三季 - 11 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -6967,7 +6967,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689859_LoliHouse_Izure_Saikyou_no_Renkinjutsushi___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 迟早是最强的炼金术师? / Izure Saikyou no Renkinjutsushi? - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 遲早是最強的鍊金術師? / Izure Saikyou no Renkinjutsushi? - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6980,7 +6980,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689857_DBD_Raws_Gekijouban_Mahouka_Koukou_no_Rettousei_Hoshi_wo_Yobu_Shoujo_1080P_BDRip_HEVC_10bit_FLAC_DTS_MKV`() {
kotlin.run {
val r =
- parse("[DBD-Raws][剧场版 魔法科高中的劣等生 呼唤繁星的少女/Gekijouban Mahouka Koukou no Rettousei Hoshi wo Yobu Shoujo][正片+特典映像][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC+DTS][MKV](劇場版 魔法科高校の劣等生 星を呼ぶ少女)")
+ parse("[DBD-Raws][劇場版 魔法科高中的劣等生 呼喚繁星的少女/Gekijouban Mahouka Koukou no Rettousei Hoshi wo Yobu Shoujo][正片+特典映像][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC+DTS][MKV](劇場版 魔法科高校の劣等生 星を呼ぶ少女)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6993,7 +6993,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689856_DBD_Raws_Mahouka_Koukou_no_Rettousei_Tsuioku_Hen_1080P_BDRip_HEVC_10bit_FLAC_MKV`() {
kotlin.run {
val r =
- parse("[DBD-Raws][魔法科高中的劣等生 追忆篇/Mahouka Koukou no Rettousei Tsuioku Hen][正片+特典映像][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV](魔法科高校の劣等生 追憶編)")
+ parse("[DBD-Raws][魔法科高中的劣等生 追憶篇/Mahouka Koukou no Rettousei Tsuioku Hen][正片+特典映像][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV](魔法科高校の劣等生 追憶編)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7006,7 +7006,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689855_DBD_Raws_Mahouka_Koukou_no_Rettousei_Raihousha_Hen_S2_01_13TV_1080P_BDRip_HEVC_10bit_FLAC_MKV_S2`() {
kotlin.run {
val r =
- parse("[DBD-Raws][魔法科高中的劣等生 来访者篇(第二季)/Mahouka Koukou no Rettousei Raihousha Hen(S2)][01-13TV全集+特典映像][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV](魔法科高校の劣等生 来訪者編(S2))")
+ parse("[DBD-Raws][魔法科高中的劣等生 來訪者篇(第二季)/Mahouka Koukou no Rettousei Raihousha Hen(S2)][01-13TV全集+特典映像][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV](魔法科高校の劣等生 來訪者編(S2))")
assertEquals("01..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7028,7 +7028,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689853_SweetSub_Shoushimin_Series_01_10_BDRip_1080P_AVC_8bit`() {
kotlin.run {
- val r = parse("[SweetSub][小市民系列][Shoushimin Series][01-10 精校合集][BDRip][1080P][AVC 8bit][简日双语]")
+ val r = parse("[SweetSub][小市民系列][Shoushimin Series][01-10 精校合集][BDRip][1080P][AVC 8bit][簡日雙語]")
assertEquals("01..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7063,7 +7063,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689849_DBD_Raws_Mahouka_Koukou_no_Rettousei_S1_01_26TV_1080P_BDRip_HEVC_10bit_FLAC_MKV_S1`() {
kotlin.run {
val r =
- parse("[DBD-Raws][魔法科高中的劣等生 第一季/Mahouka Koukou no Rettousei S1][01-26TV全集+特典映像][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV](魔法科高校の劣等生 S1)")
+ parse("[DBD-Raws][魔法科高中的劣等生 第一季/Mahouka Koukou no Rettousei S1][01-26TV全集+特典映像][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV](魔法科高校の劣等生 S1)")
assertEquals("01..26", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7097,7 +7097,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689845_VCB_Studio_SPYxFAMILY_10_bit_1080p_HEVC_BDRip_S1_S2_MOVIE_Fin`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&VCB-Studio] 间谍过家家 / 间谍家家酒 / SPYxFAMILY 10-bit 1080p HEVC BDRip [S1-S2 + MOVIE Fin]")
+ parse("[喵萌奶茶屋&VCB-Studio] 間諜過家家 / 間諜家家酒 / SPYxFAMILY 10-bit 1080p HEVC BDRip [S1-S2 + MOVIE Fin]")
assertEquals("S1+S2+S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7108,7 +7108,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689842_Re___11_CR_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] Re:从零开始的异世界生活 第三季 - 11 [CR WebRip 1080p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] Re:從零開始的異世界生活 第三季 - 11 [CR WebRip 1080p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7119,7 +7119,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689841_01_Act_2_Unnamed_Memory_Act_2_19_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[无名记忆 Act.2 / Unnamed Memory Act.2][19][1080p][简日双语][招募翻译时轴]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[無名記憶 Act.2 / Unnamed Memory Act.2][19][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7168,7 +7168,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689837_Sentai_Red_Isekai_de_Boukensha_ni_Naru_02_x264_1080p_CHS`() {
kotlin.run {
val r =
- parse("【悠哈璃羽字幕社】[战队红战士在异世界当冒险者_Sentai Red Isekai de Boukensha ni Naru][02][x264 1080p][CHS]")
+ parse("【悠哈璃羽字幕社】[戰隊紅戰士在異世界當冒險者_Sentai Red Isekai de Boukensha ni Naru][02][x264 1080p][CHS]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7191,7 +7191,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689833___01_NF_WebRip_AI2160p_HEVC_10bit_E_AC_3`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 坂本日常 - 01 [NF WebRip AI2160p HEVC-10bit E-AC-3][日英双语音频 官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 坂本日常 - 01 [NF WebRip AI2160p HEVC-10bit E-AC-3][日英雙語音頻 官方簡繁內封字幕]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, ENG, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id
})
@@ -7204,7 +7204,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689832_____Chi_Chikyuu_no_Undou_ni_Tsuite_19_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 地。-关于地球的运动- / Chi. Chikyuu no Undou ni Tsuite [19][WebRip][HEVC_AAC][简繁日内封]")
+ parse("[北宇治字幕組] 地。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite [19][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -7216,7 +7216,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689831_____Chi_Chikyuu_no_Undou_ni_Tsuite_19_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 地。-关于地球的运动- / Chi. Chikyuu no Undou ni Tsuite [19][WebRip][HEVC_AAC][简日内嵌]")
+ parse("[北宇治字幕組] 地。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite [19][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -7228,7 +7228,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689830_____Chi_Chikyuu_no_Undou_ni_Tsuite_19_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 地。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite [19][WebRip][HEVC_AAC][繁日內嵌]")
+ parse("[北宇治字幕組] 地。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite [19][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -7240,7 +7240,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689829_Ao_no_Hako_Blue_Box_18_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 青之箱 / 青春之箱 / 青春盒子 / 蓝箱 / Ao no Hako / Blue Box [18][WebRip][HEVC_AAC][简繁日内封]")
+ parse("[北宇治字幕組] 青之箱 / 青春之箱 / 青春盒子 / 藍箱 / Ao no Hako / Blue Box [18][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -7251,7 +7251,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689828_Ao_no_Hako_Blue_Box_18_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 青之箱 / 蓝箱 / Ao no Hako / Blue Box [18][WebRip][HEVC_AAC][简日内嵌]")
+ val r = parse("[北宇治字幕組] 青之箱 / 藍箱 / Ao no Hako / Blue Box [18][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -7262,7 +7262,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689827_Ao_no_Hako_Blue_Box_17_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 青春之箱 / 青春盒子 / Ao no Hako / Blue Box [18][WebRip][HEVC_AAC][繁日內嵌]")
+ val r = parse("[北宇治字幕組] 青春之箱 / 青春盒子 / Ao no Hako / Blue Box [18][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -7273,7 +7273,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689826___01_NF_WebRip_1080p_HEVC_10bit_E_AC_3`() {
kotlin.run {
- val r = parse("[不当舔狗制作组] 坂本日常 - 01 [NF WebRip 1080p HEVC-10bit E-AC-3][日英双语音频 官方简繁内封字幕]")
+ val r = parse("[不當舔狗製作組] 坂本日常 - 01 [NF WebRip 1080p HEVC-10bit E-AC-3][日英雙語音頻 官方簡繁內封字幕]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, ENG, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id
})
@@ -7307,7 +7307,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689823_Honey_Lemon_Soda_06_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组] 蜂蜜柠檬苏打水 Honey Lemon Soda [06][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 蜂蜜檸檬蘇打水 Honey Lemon Soda [06][簡體雙語][1080p]招募翻譯")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7319,7 +7319,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689822_LoliHouse_Ameku_Takao_s_Detective_Karte___06_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[悠哈璃羽字幕社&LoliHouse] 天久鹰央的推理病历表 / Ameku Takao's Detective Karte - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[悠哈璃羽字幕社&LoliHouse] 天久鷹央的推理病歷表 / Ameku Takao's Detective Karte - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7331,7 +7331,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689821_Sentai_Red_Isekai_de_Boukensha_ni_Naru_06_1080p_2025_1`() {
kotlin.run {
val r =
- parse("[猎户手抄部] 红战士在异世界成了冒险者 / Sentai Red Isekai de Boukensha ni Naru [06] [1080p] [繁日内嵌] [2025年1月番]")
+ parse("[獵戶手抄部] 紅戰士在異世界成了冒險者 / Sentai Red Isekai de Boukensha ni Naru [06] [1080p] [繁日內嵌] [2025年1月番]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7343,7 +7343,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689820_Sentai_Red_Isekai_de_Boukensha_ni_Naru_06_1080p_2025_1`() {
kotlin.run {
val r =
- parse("[猎户手抄部] 战队红战士在异世界当冒险者 / Sentai Red Isekai de Boukensha ni Naru [06] [1080p] [简日内嵌] [2025年1月番]")
+ parse("[獵戶手抄部] 戰隊紅戰士在異世界當冒險者 / Sentai Red Isekai de Boukensha ni Naru [06] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7367,7 +7367,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689818_DBD_Raws_Kono_Subarashii_Sekai_ni_Shukufuku_o_21_Kurenai_Densetsu_1080P_BDRip_HEVC_10bit_FLACx2_MKV__21`() {
kotlin.run {
val r =
- parse("[DBD-Raws][剧场版 为美好的世界献上祝福! 红传说/Kono Subarashii Sekai ni Shukufuku o! Kurenai Densetsu][1080P][BDRip][HEVC-10bit][简繁外挂][FLACx2][MKV](この素晴らしい世界に祝福を! 紅伝説)")
+ parse("[DBD-Raws][劇場版 爲美好的世界獻上祝福! 紅傳說/Kono Subarashii Sekai ni Shukufuku o! Kurenai Densetsu][1080P][BDRip][HEVC-10bit][簡繁外掛][FLACx2][MKV](この素晴らしい世界に祝福を! 紅伝説)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7380,7 +7380,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689817_DBD_Raws_Kono_Subarashii_Sekai_ni_Shukufuku_o_21_2_01_10TV_OVA_1080P_BDRip_HEVC_10bit_FLACx2_MKV__21_2`() {
kotlin.run {
val r =
- parse("[DBD-Raws][为美好的世界献上祝福! 第二季/Kono Subarashii Sekai ni Shukufuku o! 2][01-10TV全集+OVA][1080P][BDRip][HEVC-10bit][简繁外挂][FLACx2][MKV](この素晴らしい世界に祝福を! 2)")
+ parse("[DBD-Raws][爲美好的世界獻上祝福! 第二季/Kono Subarashii Sekai ni Shukufuku o! 2][01-10TV全集+OVA][1080P][BDRip][HEVC-10bit][簡繁外掛][FLACx2][MKV](この素晴らしい世界に祝福を! 2)")
assertEquals("01..10+OVA", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7393,7 +7393,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689816_DBD_Raws_Kono_Subarashii_Sekai_ni_Shukufuku_o_21_01_10TV_OVA_1080P_BDRip_HEVC_10bit_FLACx2_MKV__21`() {
kotlin.run {
val r =
- parse("[DBD-Raws][为美好的世界献上祝福! 第一季/Kono Subarashii Sekai ni Shukufuku o!][01-10TV全集+OVA+特典映像][1080P][BDRip][HEVC-10bit][简繁外挂][FLACx2][MKV](この素晴らしい世界に祝福を!)")
+ parse("[DBD-Raws][爲美好的世界獻上祝福! 第一季/Kono Subarashii Sekai ni Shukufuku o!][01-10TV全集+OVA+特典映像][1080P][BDRip][HEVC-10bit][簡繁外掛][FLACx2][MKV](この素晴らしい世界に祝福を!)")
assertEquals("01..10+OVA", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7415,7 +7415,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689814_146_147_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[神印王座][第146-147集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[神印王座][第146-147集][國語中字][WEB-MKV][2160P]")
assertEquals("146..147", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -7428,7 +7428,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689813_LoliHouse_Sararyman_ga_Isekai_ni_Ittara_Shitennou_ni_Natta_Hanashi___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 平凡上班族到异世界当上了四天王的故事 / Sararyman ga Isekai ni Ittara Shitennou ni Natta Hanashi - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 平凡上班族到異世界當上了四天王的故事 / Sararyman ga Isekai ni Ittara Shitennou ni Natta Hanashi - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7440,7 +7440,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689811_Chibi_Maruko_chan_II_1467_2025_02_16_GB_JP_1080P_MP4`() {
kotlin.run {
val r =
- parse("[夜莺家族][樱桃小丸子第二期(Chibi Maruko-chan II)][1467]藤木教永泽滑冰&小丸子机智应对危机[2025.02.16][GB_JP][1080P][MP4]")
+ parse("[夜鶯家族][櫻桃小丸子第二期(Chibi Maruko-chan II)][1467]藤木教永澤滑冰&小丸子機智應對危機[2025.02.16][GB_JP][1080P][MP4]")
assertEquals("1467..1467", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7451,7 +7451,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689810_1142_1143_1080P_MP4`() {
kotlin.run {
- val r = parse("[風車字幕組十四周年][名偵探柯南][1142-1143][亂步邸殺人事件(前後篇)][1080P][繁體][MP4]")
+ val r = parse("[風車字幕組十四週年][名偵探柯南][1142-1143][亂步邸殺人事件(前後篇)][1080P][繁體][MP4]")
assertEquals("1142..1143", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7462,7 +7462,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689809_1142_1143_1080P_MP4`() {
kotlin.run {
- val r = parse("[风车字幕组十四周年][名侦探柯南][1142-1143][乱步邸杀人事件(前后篇)][1080P][简体][MP4]")
+ val r = parse("[風車字幕組十四週年][名偵探柯南][1142-1143][亂步邸殺人事件(前後篇)][1080P][簡體][MP4]")
assertEquals("1142..1143", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7473,7 +7473,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689808_1141_1080P_MP4`() {
kotlin.run {
- val r = parse("[風車字幕組十四周年][名偵探柯南][1141][看家的毛利一家][1080P][繁體][MP4]")
+ val r = parse("[風車字幕組十四週年][名偵探柯南][1141][看家的毛利一家][1080P][繁體][MP4]")
assertEquals("1141..1141", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7484,7 +7484,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689807_1141_1080P_MP4`() {
kotlin.run {
- val r = parse("[风车字幕组十四周年][名侦探柯南][1141][看家的毛利一家][1080P][简体][MP4]")
+ val r = parse("[風車字幕組十四週年][名偵探柯南][1141][看家的毛利一家][1080P][簡體][MP4]")
assertEquals("1141..1141", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7510,7 +7510,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689801_LoliHouse_Kono_Kaisha_ni_Suki_na_Hito_ga_Imasu___06_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 这公司有我喜欢的人 / この会社に好きな人がいます / Kono Kaisha ni Suki na Hito ga Imasu - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 這公司有我喜歡的人 / この會社に好きな人がいます / Kono Kaisha ni Suki na Hito ga Imasu - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7522,7 +7522,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689800_Shikanoko_Nokonoko_Koshitantan_12_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 鹿乃子乃子乃子虎视眈眈 / Shikanoko Nokonoko Koshitantan [12][WebRip][HEVC_AAC][简繁日内封]")
+ parse("[北宇治字幕組] 鹿乃子乃子乃子虎視眈眈 / Shikanoko Nokonoko Koshitantan [12][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -7534,7 +7534,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689799_Shikanoko_Nokonoko_Koshitantan_12_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 鹿乃子乃子乃子虎视眈眈 / Shikanoko Nokonoko Koshitantan [12][WebRip][HEVC_AAC][简日内嵌]")
+ parse("[北宇治字幕組] 鹿乃子乃子乃子虎視眈眈 / Shikanoko Nokonoko Koshitantan [12][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -7546,7 +7546,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689798_Shikanoko_Nokonoko_Koshitantan_12_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 鹿乃子乃子乃子虎視眈眈 / Shikanoko Nokonoko Koshitantan [12][WebRip][HEVC_AAC][繁日內嵌]")
+ parse("[北宇治字幕組] 鹿乃子乃子乃子虎視眈眈 / Shikanoko Nokonoko Koshitantan [12][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -7558,7 +7558,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689797_Shikanoko_Nokonoko_Koshitantan_11_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 鹿乃子乃子乃子虎视眈眈 / Shikanoko Nokonoko Koshitantan [11][WebRip][HEVC_AAC][简繁日内封]")
+ parse("[北宇治字幕組] 鹿乃子乃子乃子虎視眈眈 / Shikanoko Nokonoko Koshitantan [11][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -7570,7 +7570,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689796_Shikanoko_Nokonoko_Koshitantan_11_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 鹿乃子乃子乃子虎视眈眈 / Shikanoko Nokonoko Koshitantan [11][WebRip][HEVC_AAC][简日内嵌]")
+ parse("[北宇治字幕組] 鹿乃子乃子乃子虎視眈眈 / Shikanoko Nokonoko Koshitantan [11][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -7582,7 +7582,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689795_Shikanoko_Nokonoko_Koshitantan_11_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 鹿乃子乃子乃子虎視眈眈 / Shikanoko Nokonoko Koshitantan [11][WebRip][HEVC_AAC][繁日內嵌]")
+ parse("[北宇治字幕組] 鹿乃子乃子乃子虎視眈眈 / Shikanoko Nokonoko Koshitantan [11][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -7594,7 +7594,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689792_LoliHouse_Amagami_san_Chi_no_Enmusubi___19_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 结缘甘神神社 / Amagami-san Chi no Enmusubi - 19 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 結緣甘神神社 / Amagami-san Chi no Enmusubi - 19 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7606,7 +7606,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689790_LoliHouse_Kinomi_Master___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 最弱技能《果实大师》 ~关于能无限食用技能果实(吃了就会死)这件事~ / Kinomi Master - 08 [WebRip 1080p HEVC-10bit AAC][无字幕]")
+ parse("[LoliHouse] 最弱技能《果實大師》 ~關於能無限食用技能果實(喫了就會死)這件事~ / Kinomi Master - 08 [WebRip 1080p HEVC-10bit AAC][無字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7618,7 +7618,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689789_VCB_Studio_Summer_Time_Rendering_10_bit_1080p_HEVC_BDRip_Reseed_Fin`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&VCB-Studio] 夏日重现 / Summer Time Rendering / サマータイムレンダ 10-bit 1080p HEVC BDRip [Reseed Fin]")
+ parse("[喵萌奶茶屋&VCB-Studio] 夏日重現 / Summer Time Rendering / サマータイムレンダ 10-bit 1080p HEVC BDRip [Reseed Fin]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7630,7 +7630,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689775_ANi_Hana_wa_Saku_Shura_no_Gotoku___07_1080P_Baha_WEB_DL_AAC_AVC_CHT_MP4`() {
kotlin.run {
val r =
- parse("[ANi] Hana wa Saku Shura no Gotoku / 群花綻放、彷如修羅 - 07 [1080P][Baha][WEB-DL][AAC AVC][CHT][MP4]")
+ parse("[ANi] Hana wa Saku Shura no Gotoku / 羣花綻放、彷如修羅 - 07 [1080P][Baha][WEB-DL][AAC AVC][CHT][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7641,7 +7641,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689774_Zenshuu_07_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
- val r = parse("[黑白字幕组]全修。 / Zenshuu. [07] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ val r = parse("[黑白字幕組]全修。 / Zenshuu. [07] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7652,7 +7652,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689773_Zenshuu_07_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
- val r = parse("[黑白字幕组]全修。 / Zenshuu. [07] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ val r = parse("[黑白字幕組]全修。 / Zenshuu. [07] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7664,7 +7664,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689772_1_Funkan_dake_Furete_mo_Ii_yo_Share_House_no_Himitsu_Rule_06_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 「只能触摸一分钟哦...」合租房的秘密规则。 / 「1 Funkan dake Furete mo Ii yo...」 Share House no Himitsu Rule. [06][1080p][简繁内封]")
+ parse("[桜都字幕組] 「只能觸摸一分鐘哦...」合租房的祕密規則。 / 「1 Funkan dake Furete mo Ii yo...」 Share House no Himitsu Rule. [06][1080p][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7676,7 +7676,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689771_1_Funkan_dake_Furete_mo_Ii_yo_Share_House_no_Himitsu_Rule_06_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕組] 「只能觸摸一分鐘哦...」合租房的秘密規則。 / 「1 Funkan dake Furete mo Ii yo...」 Share House no Himitsu Rule. [06][1080p][繁體內嵌]")
+ parse("[桜都字幕組] 「只能觸摸一分鐘哦...」合租房的祕密規則。 / 「1 Funkan dake Furete mo Ii yo...」 Share House no Himitsu Rule. [06][1080p][繁體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7688,7 +7688,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689770_1_Funkan_dake_Furete_mo_Ii_yo_Share_House_no_Himitsu_Rule_06_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 「只能触摸一分钟哦...」合租房的秘密规则。 / 「1 Funkan dake Furete mo Ii yo...」 Share House no Himitsu Rule. [06][1080p][简体内嵌]")
+ parse("[桜都字幕組] 「只能觸摸一分鐘哦...」合租房的祕密規則。 / 「1 Funkan dake Furete mo Ii yo...」 Share House no Himitsu Rule. [06][1080p][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7699,7 +7699,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689769_YUI_Yami_Shibai_14_07_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社&西农YUI汉化组】[暗芝居 第十四季_Yami Shibai 14][07][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社&西農YUI漢化組】[暗芝居 第十四季_Yami Shibai 14][07][x264 1080p][CHS]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7732,7 +7732,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689766_YUI_Yami_Shibai_14_06_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社&西农YUI汉化组】[暗芝居 第十四季_Yami Shibai 14][06][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社&西農YUI漢化組】[暗芝居 第十四季_Yami Shibai 14][06][x264 1080p][CHS]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7744,7 +7744,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689765_Billion_Meta_Lab_Momentary_Lily_06_1080P_HEVC_10bit`() {
kotlin.run {
val r =
- parse("[Billion Meta Lab] 昙花一现的百合 Momentary Lily [06][1080P][HEVC 10bit][简繁日内封][检索:刹那之花]")
+ parse("[Billion Meta Lab] 曇花一現的百合 Momentary Lily [06][1080P][HEVC 10bit][簡繁日內封][檢索:剎那之花]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7766,7 +7766,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689763_Billion_Meta_Lab_Momentary_Lily_06_1080P`() {
kotlin.run {
- val r = parse("[Billion Meta Lab] 昙花一现的百合 Momentary Lily [06][1080P][简日内嵌][检索:刹那之花]")
+ val r = parse("[Billion Meta Lab] 曇花一現的百合 Momentary Lily [06][1080P][簡日內嵌][檢索:剎那之花]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7778,7 +7778,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689762_____Chi_Chikyuu_no_Undou_ni_Tsuite_21_1080p_2024_10`() {
kotlin.run {
val r =
- parse("[猎户手抄部] 地。-关于地球的运动- / Chi. Chikyuu no Undou ni Tsuite [21] [1080p] [繁日内嵌] [2024年10月番]")
+ parse("[獵戶手抄部] 地。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite [21] [1080p] [繁日內嵌] [2024年10月番]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7790,7 +7790,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689761_____Chi_Chikyuu_no_Undou_ni_Tsuite_21_1080p_2024_10`() {
kotlin.run {
val r =
- parse("[猎户手抄部] 地。-关于地球的运动- / Chi. Chikyuu no Undou ni Tsuite [21] [1080p] [简日内嵌] [2024年10月番]")
+ parse("[獵戶手抄部] 地。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite [21] [1080p] [簡日內嵌] [2024年10月番]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7814,7 +7814,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689759_LoliHouse_Mahoutsukai_no_Yakusoku___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 魔法使的约定 / Mahoutsukai no Yakusoku - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 魔法使的約定 / Mahoutsukai no Yakusoku - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7825,7 +7825,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689758_Strange_Raw_POK_TOON_17_WEB_DL_1080P_AVC_8Bits_AAC_2_0_2`() {
kotlin.run {
- val r = parse("[Strange-Raw] POKÉTOON [17] [WEB-DL] [1080P AVC-8Bits AAC 2.0×2] [简体内嵌字幕]")
+ val r = parse("[Strange-Raw] POKÉTOON [17] [WEB-DL] [1080P AVC-8Bits AAC 2.0×2] [簡體內嵌字幕]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7836,7 +7836,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689755_YYQ_New_Doraemon_A_850_2025_02_15_AVC_1080P_GB_JP`() {
kotlin.run {
- val r = parse("[夜莺家族&YYQ字幕组]New Doraemon 哆啦A梦新番[850][2025.02.15][AVC][1080P][GB_JP]")
+ val r = parse("[夜鶯家族&YYQ字幕組]New Doraemon 哆啦A夢新番[850][2025.02.15][AVC][1080P][GB_JP]")
assertEquals("850..850", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7847,7 +7847,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689753_1_06_HEVC_x265_10bit_1080p`() {
kotlin.run {
- val r = parse("[云歌字幕组][1月新番][欢迎来到日本,精灵小姐][06][HEVC][x265 10bit][1080p][简日双语]")
+ val r = parse("[雲歌字幕組][1月新番][歡迎來到日本,精靈小姐][06][HEVC][x265 10bit][1080p][簡日雙語]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7869,7 +7869,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689748_1_BanG_Dream_21_Ave_Mujica_05_1080p_MP4`() {
kotlin.run {
- val r = parse("[漫猫字幕组][1月新番][BanG Dream! Ave Mujica][05][1080p][MP4][简中]")
+ val r = parse("[漫貓字幕組][1月新番][BanG Dream! Ave Mujica][05][1080p][MP4][簡中]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7891,7 +7891,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689746_1_BanG_Dream_21_Ave_Mujica_06_1080p_MP4`() {
kotlin.run {
- val r = parse("[漫猫字幕组][1月新番][BanG Dream! Ave Mujica][06][1080p][MP4][简中]")
+ val r = parse("[漫貓字幕組][1月新番][BanG Dream! Ave Mujica][06][1080p][MP4][簡中]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7926,7 +7926,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689743_1_Magic_Maker_Isekai_Mahou_no_Tsukurikata_06_GB_MP4_1920X1080`() {
kotlin.run {
val r =
- parse("【幻樱字幕组】【1月新番】【魔法制造者 ~异世界魔法的制作方法~ Magic Maker ~Isekai Mahou no Tsukurikata~】【06】【GB_MP4】【1920X1080】")
+ parse("【幻櫻字幕組】【1月新番】【魔法製造者 ~異世界魔法的製作方法~ Magic Maker ~Isekai Mahou no Tsukurikata~】【06】【GB_MP4】【1920X1080】")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7937,7 +7937,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689740_97_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[遮天][第97集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[遮天][第97集][國語中字][WEB-MKV][2160P]")
assertEquals("97..97", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -7948,7 +7948,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689727_BanG_Dream_21_Ave_Mujica_2025_WEB_06_1080p`() {
kotlin.run {
- val r = parse("[冷番补完字幕组][BanG Dream! Ave Mujica][2025][WEB][06][1080p][内封简繁中字]")
+ val r = parse("[冷番補完字幕組][BanG Dream! Ave Mujica][2025][WEB][06][1080p][內封簡繁中字]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7960,7 +7960,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689719_LoliHouse_Akuyaku_Reijou_Tensei_Ojisan___06_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 大叔转生恶役大小姐 / Akuyaku Reijou Tensei Ojisan - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 大叔轉生惡役大小姐 / Akuyaku Reijou Tensei Ojisan - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7972,7 +7972,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689718_LoliHouse_Akuyaku_Reijou_Tensei_Ojisan___05_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 大叔转生恶役大小姐 / Akuyaku Reijou Tensei Ojisan - 05 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 大叔轉生惡役大小姐 / Akuyaku Reijou Tensei Ojisan - 05 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7984,7 +7984,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689717_LoliHouse_Akuyaku_Reijou_Tensei_Ojisan___04_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 大叔转生恶役大小姐 / Akuyaku Reijou Tensei Ojisan - 04 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 大叔轉生惡役大小姐 / Akuyaku Reijou Tensei Ojisan - 04 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7996,7 +7996,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689716_LoliHouse_Akuyaku_Reijou_Tensei_Ojisan___03_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 大叔转生恶役大小姐 / Akuyaku Reijou Tensei Ojisan - 03 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 大叔轉生惡役大小姐 / Akuyaku Reijou Tensei Ojisan - 03 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8008,7 +8008,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689715_LoliHouse_Akuyaku_Reijou_Tensei_Ojisan___02_WebRip_1080p_HEVC_10bit_AAC_v2`() {
kotlin.run {
val r =
- parse("[LoliHouse] 大叔转生恶役大小姐 / Akuyaku Reijou Tensei Ojisan - 02 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]v2")
+ parse("[LoliHouse] 大叔轉生惡役大小姐 / Akuyaku Reijou Tensei Ojisan - 02 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]v2")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8020,7 +8020,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689714_LoliHouse_Akuyaku_Reijou_Tensei_Ojisan___01_WebRip_1080p_HEVC_10bit_AAC_v2`() {
kotlin.run {
val r =
- parse("[LoliHouse] 大叔转生恶役大小姐 / Akuyaku Reijou Tensei Ojisan - 01 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]v2")
+ parse("[LoliHouse] 大叔轉生惡役大小姐 / Akuyaku Reijou Tensei Ojisan - 01 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]v2")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8033,7 +8033,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689711_DBD_Raws_4K_HDR_The_Super_Dimension_Fortress_Macross___Do_You_Remember_Love_2160P_UHDBDRip_HEVC_10bit_FLAC_MKV_Choujikuu_Yousai_Macross_Ai_Oboete_Imasuka`() {
kotlin.run {
val r =
- parse("[DBD-Raws][4K_HDR][超时空要塞 可曾记得爱/The Super Dimension Fortress Macross - Do You Remember Love?][完全版+院线版][2160P][UHDBDRip][HEVC-10bit][简繁日双语外挂][FLAC][MKV](Choujikuu Yousai Macross: Ai Oboete Imasuka/超時空要塞マクロス 愛・おぼえていますか)")
+ parse("[DBD-Raws][4K_HDR][超時空要塞 可曾記得愛/The Super Dimension Fortress Macross - Do You Remember Love?][完全版+院線版][2160P][UHDBDRip][HEVC-10bit][簡繁日雙語外掛][FLAC][MKV](Choujikuu Yousai Macross: Ai Oboete Imasuka/超時空要塞マクロス 愛・おぼえていますか)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -8058,7 +8058,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689707_Hana_wa_Saku_Shura_no_Gotoku_01_TVRip_1080P_HEVC_MKV`() {
kotlin.run {
val r =
- parse("[诸神字幕组][群花绽放、彷如修罗][Hana wa Saku, Shura no Gotoku][01][TVRip][简繁日语字幕][1080P][HEVC MKV]")
+ parse("[諸神字幕組][羣花綻放、彷如修羅][Hana wa Saku, Shura no Gotoku][01][TVRip][簡繁日語字幕][1080P][HEVC MKV]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8070,7 +8070,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689706_Hana_wa_Saku_Shura_no_Gotoku_01_TVRip_1080P_CHS_MP4`() {
kotlin.run {
val r =
- parse("[诸神字幕组][群花绽放、彷如修罗][Hana wa Saku, Shura no Gotoku][01][TVRip][简日双语字幕][1080P][CHS MP4]")
+ parse("[諸神字幕組][羣花綻放、彷如修羅][Hana wa Saku, Shura no Gotoku][01][TVRip][簡日雙語字幕][1080P][CHS MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8082,7 +8082,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689703_VCB_Studio_Dainanaoji_10_bit_1080p_HEVC_BDRip_Fin`() {
kotlin.run {
val r =
- parse("[VCB-Studio] 转生为第七王子,随心所欲的魔法学习之路 / Tensei shitara Dainana Ouji Datta node, Kimama ni Majutsu wo Kiwamemasu / 転生したら第七王子だったので、気ままに魔術を極めます 10-bit 1080p HEVC BDRip [Fin]")
+ parse("[VCB-Studio] 轉生爲第七王子,隨心所欲的魔法學習之路 / Tensei shitara Dainana Ouji Datta node, Kimama ni Majutsu wo Kiwamemasu / 転生したら第七王子だったので、気ままに魔術を極めます 10-bit 1080p HEVC BDRip [Fin]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8094,7 +8094,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689702_LoliHouse_SAKAMOTO_DAYS___06_WebRip_1080p_HEVC_10bit_AACx2`() {
kotlin.run {
val r =
- parse("[北宇治字幕组&LoliHouse] 坂本日常 / SAKAMOTO DAYS - 06 [WebRip 1080p HEVC-10bit AACx2][简繁日内封字幕]")
+ parse("[北宇治字幕組&LoliHouse] 坂本日常 / SAKAMOTO DAYS - 06 [WebRip 1080p HEVC-10bit AACx2][簡繁日內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8107,7 +8107,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689701_LoliHouse_Kuroiwa_Medaka_ni_Watashi_no_Kawaii_ga_Tsuujinai___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 黑岩目高不把我的可爱放在眼里 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai - 07 [WebRip 1080p HEVC-10bit AAC][无字幕]")
+ parse("[LoliHouse] 黑巖目高不把我的可愛放在眼裏 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai - 07 [WebRip 1080p HEVC-10bit AAC][無字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8120,7 +8120,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689700_LoliHouse_____Chi_Chikyuu_no_Undou_ni_Tsuite_18_WebRip_1080p_HEVC_10bit_AAC_ASSx2`() {
kotlin.run {
val r =
- parse("[北宇治字幕组&LoliHouse] 地。-关于地球的运动- / Chi. Chikyuu no Undou ni Tsuite 18 [WebRip 1080p HEVC-10bit AAC ASSx2][简繁日内封字幕]")
+ parse("[北宇治字幕組&LoliHouse] 地。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite 18 [WebRip 1080p HEVC-10bit AAC ASSx2][簡繁日內封字幕]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8133,7 +8133,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689699_LoliHouse_____Chi_Chikyuu_no_Undou_ni_Tsuite_17_WebRip_1080p_HEVC_10bit_AAC_ASSx2`() {
kotlin.run {
val r =
- parse("[北宇治字幕组&LoliHouse] 地。-关于地球的运动- / Chi. Chikyuu no Undou ni Tsuite 17 [WebRip 1080p HEVC-10bit AAC ASSx2][简繁日内封字幕]")
+ parse("[北宇治字幕組&LoliHouse] 地。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite 17 [WebRip 1080p HEVC-10bit AAC ASSx2][簡繁日內封字幕]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8213,7 +8213,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689692_10_DAIMA_Dragon_Ball_DAIMA_17_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】【龙珠DAIMA Dragon Ball DAIMA】【17】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【10月新番】【龍珠DAIMA Dragon Ball DAIMA】【17】【GB_MP4】【1920X1080】")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8235,7 +8235,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689690_10_DAIMA_Dragon_Ball_DAIMA_17_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】【龙珠DAIMA Dragon Ball DAIMA】【17】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【10月新番】【龍珠DAIMA Dragon Ball DAIMA】【17】【GB_MP4】【1280X720】")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8247,7 +8247,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689686_Sub_Nihon_e_Youkoso_Elf_san_03_1080P_AVC_AAC_WebRip`() {
kotlin.run {
val r =
- parse("[霜庭云花Sub][欢迎来到日本 妖精小姐 / 日本へようこそエルフさん。 / Nihon e Youkoso Elf-san.][03][1080P][AVC AAC][简日双语][WebRip]")
+ parse("[霜庭雲花Sub][歡迎來到日本 妖精小姐 / 日本へようこそエルフさん。 / Nihon e Youkoso Elf-san.][03][1080P][AVC AAC][簡日雙語][WebRip]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8259,7 +8259,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689685_Sub_Nihon_e_Youkoso_Elf_san_04_1080P_AVC_AAC_WebRip`() {
kotlin.run {
val r =
- parse("[霜庭云花Sub][欢迎来到日本 妖精小姐 / 日本へようこそエルフさん。 / Nihon e Youkoso Elf-san.][04][1080P][AVC AAC][简日双语][WebRip]")
+ parse("[霜庭雲花Sub][歡迎來到日本 妖精小姐 / 日本へようこそエルフさん。 / Nihon e Youkoso Elf-san.][04][1080P][AVC AAC][簡日雙語][WebRip]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8281,7 +8281,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689683_Sub_BanG_Dream_21_Ave_Mujica_06_1080P_AVC_AAC_WebRip`() {
kotlin.run {
- val r = parse("[霜庭云花Sub][BanG Dream! Ave Mujica][06][1080P][AVC AAC][简日双语][WebRip]")
+ val r = parse("[霜庭雲花Sub][BanG Dream! Ave Mujica][06][1080P][AVC AAC][簡日雙語][WebRip]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8292,7 +8292,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689682_Hana_wa_Saku_Shura_no_Gotoku_06_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕組] 群花綻放、彷如修羅 / Hana wa Saku, Shura no Gotoku [06][1080p][繁體內嵌]")
+ val r = parse("[桜都字幕組] 羣花綻放、彷如修羅 / Hana wa Saku, Shura no Gotoku [06][1080p][繁體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8303,7 +8303,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689681_Hana_wa_Saku_Shura_no_Gotoku_06_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 群花绽放、彷如修罗 / Hana wa Saku, Shura no Gotoku [06][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 羣花綻放、彷如修羅 / Hana wa Saku, Shura no Gotoku [06][1080p][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8314,7 +8314,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689680_Hana_wa_Saku_Shura_no_Gotoku_06_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 群花绽放、彷如修罗 / Hana wa Saku, Shura no Gotoku [06][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 羣花綻放、彷如修羅 / Hana wa Saku, Shura no Gotoku [06][1080p][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8325,7 +8325,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689678_BanG_Dream_21_Ave_Mujica_06_1080p`() {
kotlin.run {
- val r = parse("[萌樱字幕组] BanG Dream! Ave Mujica [06][1080p]")
+ val r = parse("[萌櫻字幕組] BanG Dream! Ave Mujica [06][1080p]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8336,7 +8336,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689677_BanG_Dream_21_Ave_Mujica_05_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] BanG Dream! Ave Mujica / 颂乐人偶 [05][WebRip][HEVC_AAC][简繁日内封]")
+ val r = parse("[北宇治字幕組] BanG Dream! Ave Mujica / 頌樂人偶 [05][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -8347,7 +8347,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689676_BanG_Dream_21_Ave_Mujica_05_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] BanG Dream! Ave Mujica / 頌樂人偶 [05][WebRip][HEVC_AAC][繁日內嵌]")
+ val r = parse("[北宇治字幕組] BanG Dream! Ave Mujica / 頌樂人偶 [05][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -8358,7 +8358,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689675_BanG_Dream_21_Ave_Mujica_05_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] BanG Dream! Ave Mujica / 颂乐人偶 [05][WebRip][HEVC_AAC][简日内嵌]")
+ val r = parse("[北宇治字幕組] BanG Dream! Ave Mujica / 頌樂人偶 [05][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -8370,7 +8370,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689674_Kusuriya_no_Hitorigoto_30_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 药屋少女的呢喃 / 药屋少女的独语 / Kusuriya no Hitorigoto [30][WebRip][HEVC_AAC][简繁日内封]")
+ parse("[北宇治字幕組] 藥屋少女的呢喃 / 藥屋少女的獨語 / Kusuriya no Hitorigoto [30][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("30..30", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -8382,7 +8382,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689673_Kusuriya_no_Hitorigoto_30_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 药屋少女的呢喃 / 药屋少女的独语 / Kusuriya no Hitorigoto [30][WebRip][HEVC_AAC][简日内嵌]")
+ parse("[北宇治字幕組] 藥屋少女的呢喃 / 藥屋少女的獨語 / Kusuriya no Hitorigoto [30][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("30..30", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -8394,7 +8394,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689672_Kusuriya_no_Hitorigoto_30_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 藥屋少女的呢喃 / 藥屋少女的獨語 / Kusuriya no Hitorigoto [30][WebRip][HEVC_AAC][繁日內嵌]")
+ parse("[北宇治字幕組] 藥屋少女的呢喃 / 藥屋少女的獨語 / Kusuriya no Hitorigoto [30][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("30..30", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -8406,7 +8406,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689671_1_Funkan_dake_Furete_mo_Ii_yo_Share_House_no_Himitsu_Rule_05_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 「只能触摸一分钟哦...」合租房的秘密规则。 / 「1 Funkan dake Furete mo Ii yo...」 Share House no Himitsu Rule. [05][1080p][简繁内封]")
+ parse("[桜都字幕組] 「只能觸摸一分鐘哦...」合租房的祕密規則。 / 「1 Funkan dake Furete mo Ii yo...」 Share House no Himitsu Rule. [05][1080p][簡繁內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8418,7 +8418,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689670_1_Funkan_dake_Furete_mo_Ii_yo_Share_House_no_Himitsu_Rule_05_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕組] 「只能觸摸一分鐘哦...」合租房的秘密規則。 / 「1 Funkan dake Furete mo Ii yo...」 Share House no Himitsu Rule. [05][1080p][繁體內嵌]")
+ parse("[桜都字幕組] 「只能觸摸一分鐘哦...」合租房的祕密規則。 / 「1 Funkan dake Furete mo Ii yo...」 Share House no Himitsu Rule. [05][1080p][繁體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8430,7 +8430,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689669_1_Funkan_dake_Furete_mo_Ii_yo_Share_House_no_Himitsu_Rule_05_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 「只能触摸一分钟哦...」合租房的秘密规则。 / 「1 Funkan dake Furete mo Ii yo...」 Share House no Himitsu Rule. [05][1080p][简体内嵌]")
+ parse("[桜都字幕組] 「只能觸摸一分鐘哦...」合租房的祕密規則。 / 「1 Funkan dake Furete mo Ii yo...」 Share House no Himitsu Rule. [05][1080p][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8441,7 +8441,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689668_01_12_720P_MP4`() {
kotlin.run {
- val r = parse("[轻之国度字幕组][恋语轻唱/恰如细语般的恋歌][01-12][720P][MP4]")
+ val r = parse("[輕之國度字幕組][戀語輕唱/恰如細語般的戀歌][01-12][720P][MP4]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8453,7 +8453,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689666_1_Kusuriya_no_Hitorigoto_30_1080P_MP4_GB_JP`() {
kotlin.run {
val r =
- parse("[漫猫字幕社&猫恋汉化组][1月新番][药屋少女的呢喃][Kusuriya no Hitorigoto][30][1080P][MP4][GB&JP][简日双语]")
+ parse("[漫貓字幕社&貓戀漢化組][1月新番][藥屋少女的呢喃][Kusuriya no Hitorigoto][30][1080P][MP4][GB&JP][簡日雙語]")
assertEquals("30..30", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8476,7 +8476,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689664_158_159_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[吞噬星空][第158-159集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[吞噬星空][第158-159集][國語中字][WEB-MKV][2160P]")
assertEquals("158..159", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -8510,7 +8510,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689661_Class_no_Daikirai_na_Joshi_to_Kekkon_Suru_Koto_ni_Natta_07_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 我和班上最讨厌的女生结婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [07][1080p][简繁内封]")
+ parse("[桜都字幕組] 我和班上最討厭的女生結婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [07][1080p][簡繁內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8534,7 +8534,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689659_Class_no_Daikirai_na_Joshi_to_Kekkon_Suru_Koto_ni_Natta_07_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 我和班上最讨厌的女生结婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [07][1080p][简体内嵌]")
+ parse("[桜都字幕組] 我和班上最討厭的女生結婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [07][1080p][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8556,7 +8556,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689654_Ameku_Takao_no_Suiri_Karte_06_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[天久鹰央的推理病历表_Ameku Takao no Suiri Karte][06][1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[天久鷹央的推理病歷表_Ameku Takao no Suiri Karte][06][1080p][CHS]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8568,7 +8568,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689653_NEO_QSW_Aquarion_Myth_of_Emotions_05_WEBRIP_AVC_1080P`() {
kotlin.run {
val r =
- parse("[NEO·QSW]想星的阿克艾利昂 情感神话 想星のアクエリオン Aquarion: Myth of Emotions 05[WEBRIP AVC 1080P](搜索用:想星的大天使)")
+ parse("[NEO·QSW]想星的阿克艾利昂 情感神話 想星のアクエリオン Aquarion: Myth of Emotions 05[WEBRIP AVC 1080P](搜索用:想星的大天使)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8579,7 +8579,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689652_Grisaia_Phantom_Trigger_07_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 灰色:幻影扳机 / Grisaia:Phantom Trigger [07][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 灰色:幻影扳機 / Grisaia:Phantom Trigger [07][1080p][簡繁內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8601,7 +8601,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689650_Grisaia_Phantom_Trigger_07_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 灰色:幻影扳机 / Grisaia:Phantom Trigger [07][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 灰色:幻影扳機 / Grisaia:Phantom Trigger [07][1080p][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8612,7 +8612,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689649_Grisaia_Phantom_Trigger_06_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 灰色:幻影扳机 / Grisaia:Phantom Trigger [06][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 灰色:幻影扳機 / Grisaia:Phantom Trigger [06][1080p][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8635,7 +8635,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689647_NEO_QSW_Aquarion_Myth_of_Emotions_04_WEBRIP_AVC_1080P`() {
kotlin.run {
val r =
- parse("[NEO·QSW]想星的阿克艾利昂 情感神话 想星のアクエリオン Aquarion: Myth of Emotions 04[WEBRIP AVC 1080P](搜索用:想星的大天使)")
+ parse("[NEO·QSW]想星的阿克艾利昂 情感神話 想星のアクエリオン Aquarion: Myth of Emotions 04[WEBRIP AVC 1080P](搜索用:想星的大天使)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8646,7 +8646,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689646_Grisaia_Phantom_Trigger_06_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 灰色:幻影扳机 / Grisaia:Phantom Trigger [06][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 灰色:幻影扳機 / Grisaia:Phantom Trigger [06][1080p][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8657,7 +8657,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689645_Grisaia_Phantom_Trigger_05_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 灰色:幻影扳机 / Grisaia:Phantom Trigger [05][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 灰色:幻影扳機 / Grisaia:Phantom Trigger [05][1080p][簡繁內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8679,7 +8679,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689643_Grisaia_Phantom_Trigger_05_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 灰色:幻影扳机 / Grisaia:Phantom Trigger [05][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 灰色:幻影扳機 / Grisaia:Phantom Trigger [05][1080p][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8690,7 +8690,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689642_VCB_Studio_Isekai_Shikkaku_10_bit_1080p_HEVC_BDRip_Fin`() {
kotlin.run {
- val r = parse("[VCB-Studio] 异世界失格 / Isekai Shikkaku / 異世界失格 10-bit 1080p HEVC BDRip [Fin]")
+ val r = parse("[VCB-Studio] 異世界失格 / Isekai Shikkaku / 異世界失格 10-bit 1080p HEVC BDRip [Fin]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8703,7 +8703,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689641_DBD_Raws_Sei_Juushi_Bismarck_01_51TV_USA_Ver_1080P_BDRip_HEVC_10bit_FLAC_MKV_Star_Musketeer_Bismark`() {
kotlin.run {
val r =
- parse("[DBD-Raws][星铳士俾斯麦/Sei Juushi Bismarck][01-51TV全集][美版/USA.Ver][1080P][BDRip][HEVC-10bit][FLAC][MKV](星銃士 ビスマルク/Star Musketeer Bismark)")
+ parse("[DBD-Raws][星銃士俾斯麥/Sei Juushi Bismarck][01-51TV全集][美版/USA.Ver][1080P][BDRip][HEVC-10bit][FLAC][MKV](星銃士 ビスマルク/Star Musketeer Bismark)")
assertEquals("01..51", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8714,7 +8714,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689640_29_1080p`() {
kotlin.run {
- val r = parse("[萌樱字幕组] 药屋少女的呢喃 [29][1080p][简繁日内封]")
+ val r = parse("[萌櫻字幕組] 藥屋少女的呢喃 [29][1080p][簡繁日內封]")
assertEquals("29..29", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8794,7 +8794,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689632_S___08_AMZN_WebRip_AI2160p_HEVC_10bit_E_AC_3`() {
kotlin.run {
val r =
- parse("[新沸羊羊制作] S级怪兽《贝希摩斯》被误认成小猫,成为精灵女孩的骑士(宠物)一起生活 - 08 [AMZN WebRip AI2160p HEVC-10bit E-AC-3][官方简繁内封字幕]")
+ parse("[新沸羊羊製作] S級怪獸《貝希摩斯》被誤認成小貓,成爲精靈女孩的騎士(寵物)一起生活 - 08 [AMZN WebRip AI2160p HEVC-10bit E-AC-3][官方簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -8866,7 +8866,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689626_10_Touhai_Ura_Rate_Mahjong_Touhai_Roku_18_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[冻牌 / Touhai: Ura Rate Mahjong Touhai Roku][18][1080p][简体][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[凍牌 / Touhai: Ura Rate Mahjong Touhai Roku][18][1080p][簡體][招募翻譯]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8877,7 +8877,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689625_FSD_MIRAI_DAYS_05_1080P`() {
kotlin.run {
- val r = parse("【FSD粉羽社】魔法使光之美少女!!~MIRAI DAYS~[05][1080P][简体中字]")
+ val r = parse("【FSD粉羽社】魔法使光之美少女!!~MIRAI DAYS~[05][1080P][簡體中字]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8888,7 +8888,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689624___07_CR_WebRip_AI2160p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[新沸羊羊制作] 我独自升级 第二季 -起于暗影- - 07 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[新沸羊羊製作] 我獨自升級 第二季 -起於暗影- - 07 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -8912,7 +8912,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689619_LoliHouse_Medalist___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[喵萌奶茶屋&LoliHouse] 金牌得主 / Medalist - 07 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ val r = parse("[喵萌奶茶屋&LoliHouse] 金牌得主 / Medalist - 07 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8924,7 +8924,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689618_LoliHouse_Ao_no_Exorcist_Yosuga_hen___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[豌豆字幕组&LoliHouse] 青之驱魔师 终夜篇 / Ao no Exorcist Yosuga-hen - 07 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&LoliHouse] 青之驅魔師 終夜篇 / Ao no Exorcist Yosuga-hen - 07 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8946,7 +8946,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689616_01_Medalist_07_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[金牌得主 / Medalist][07][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[金牌得主 / Medalist][07][1080p][簡日雙語][招募翻譯]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8968,7 +8968,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689614_Ao_no_Exorcist_Yosuga_Hen_07v2_1080P_MP4`() {
kotlin.run {
- val r = parse("【豌豆字幕组】[青之驱魔师 终夜篇 / Ao no Exorcist _Yosuga Hen][07v2][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組】[青之驅魔師 終夜篇 / Ao no Exorcist _Yosuga Hen][07v2][簡體][1080P][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8979,7 +8979,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689613_SAKAMOTO_DAYS_06_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 坂本日常 / SAKAMOTO DAYS [06][WebRip][HEVC_AAC][简繁日內封]")
+ val r = parse("[北宇治字幕組] 坂本日常 / SAKAMOTO DAYS [06][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -8990,7 +8990,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689612_SAKAMOTO_DAYS_06_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 坂本日常 / SAKAMOTO DAYS [06][WebRip][HEVC_AAC][简日內嵌]")
+ val r = parse("[北宇治字幕組] 坂本日常 / SAKAMOTO DAYS [06][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -9001,7 +9001,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689611_SAKAMOTO_DAYS_06_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 坂本日常 / SAKAMOTO DAYS [06][WebRip][HEVC_AAC][繁日內嵌]")
+ val r = parse("[北宇治字幕組] 坂本日常 / SAKAMOTO DAYS [06][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -9013,7 +9013,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689610_____Rurouni_Kenshin_Meiji_Kenkaku_Romantan___Kyoto_Douran_42_1080p_2024_10`() {
kotlin.run {
val r =
- parse("[猎户手抄部] 神剑闯江湖 -明治剑客浪漫谭- 京都动乱 / Rurouni Kenshin:Meiji Kenkaku Romantan - Kyoto Douran [42] [1080p] [繁日内嵌] [2024年10月番]")
+ parse("[獵戶手抄部] 神劍闖江湖 -明治劍客浪漫譚- 京都動亂 / Rurouni Kenshin:Meiji Kenkaku Romantan - Kyoto Douran [42] [1080p] [繁日內嵌] [2024年10月番]")
assertEquals("42..42", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9025,7 +9025,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689609_____Rurouni_Kenshin_Meiji_Kenkaku_Romantan___Kyoto_Douran_42_1080p_2024_10`() {
kotlin.run {
val r =
- parse("[猎户手抄部] 浪客剑心 -明治剑客浪漫谭- 京都动乱 / Rurouni Kenshin: Meiji Kenkaku Romantan - Kyoto Douran [42] [1080p] [简日内嵌] [2024年10月番]")
+ parse("[獵戶手抄部] 浪客劍心 -明治劍客浪漫譚- 京都動亂 / Rurouni Kenshin: Meiji Kenkaku Romantan - Kyoto Douran [42] [1080p] [簡日內嵌] [2024年10月番]")
assertEquals("42..42", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9038,7 +9038,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689608_Strange_Raw_Sentai_Red_Isekai_de_Boukensha_ni_Naru_S01_06_Bilibili_WEB_DL_1080P_AVC_8Bits_AAC_2_0`() {
kotlin.run {
val r =
- parse("[Strange-Raw] 战队红战士在异世界当冒险者 第一季 / Sentai Red Isekai de Boukensha ni Naru S01 [06] [Bilibili] [WEB-DL] [1080P AVC-8Bits AAC 2.0] [简日内嵌字幕]")
+ parse("[Strange-Raw] 戰隊紅戰士在異世界當冒險者 第一季 / Sentai Red Isekai de Boukensha ni Naru S01 [06] [Bilibili] [WEB-DL] [1080P AVC-8Bits AAC 2.0] [簡日內嵌字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9050,7 +9050,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689607_Ao_no_Hako_Blue_Box_17_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 青之箱 / 青春之箱 / 青春盒子 / 蓝箱 / Ao no Hako / Blue Box [17][WebRip][HEVC_AAC][简繁日内封]")
+ parse("[北宇治字幕組] 青之箱 / 青春之箱 / 青春盒子 / 藍箱 / Ao no Hako / Blue Box [17][WebRip][HEVC_AAC][簡繁日內封]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -9061,7 +9061,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689606_Ao_no_Hako_Blue_Box_17_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 青春之箱 / 青春盒子 / Ao no Hako / Blue Box [17][WebRip][HEVC_AAC][繁日內嵌]")
+ val r = parse("[北宇治字幕組] 青春之箱 / 青春盒子 / Ao no Hako / Blue Box [17][WebRip][HEVC_AAC][繁日內嵌]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -9072,7 +9072,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689605_Ao_no_Hako_Blue_Box_17_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 青之箱 / 蓝箱 / Ao no Hako / Blue Box [17][WebRip][HEVC_AAC][简日内嵌]")
+ val r = parse("[北宇治字幕組] 青之箱 / 藍箱 / Ao no Hako / Blue Box [17][WebRip][HEVC_AAC][簡日內嵌]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -9083,7 +9083,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689604_SW_77_83_1080P_AVC_MP4_CHS_JP`() {
kotlin.run {
- val r = parse("【SW字幕组】[宠物小精灵 / 宝可梦 地平线 烈空坐之升龙崛起][77-83][简日双语字幕][1080P][AVC][MP4][CHS_JP]")
+ val r = parse("【SW字幕組】[寵物小精靈 / 寶可夢 地平線 烈空坐之升龍崛起][77-83][簡日雙語字幕][1080P][AVC][MP4][CHS_JP]")
assertEquals("77..83", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9095,7 +9095,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689603_A_Doraemon1979_2000_3_11_1080P_WEB_MKV`() {
kotlin.run {
val r =
- parse("[哆啦字幕组][哆啦A梦大山版附映中篇 Doraemon1979][2000.3.11][1080P][WEB][简日&繁日][奶奶的回忆][数码修复版][MKV]")
+ parse("[哆啦字幕組][哆啦A夢大山版附映中篇 Doraemon1979][2000.3.11][1080P][WEB][簡日&繁日][奶奶的回憶][數碼修復版][MKV]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9107,7 +9107,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689602_LoliHouse_S_Beheneko___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] S级怪兽《贝希摩斯》被误认成小猫,成为精灵女孩的骑士(宠物)一起生活 / Beheneko - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] S級怪獸《貝希摩斯》被誤認成小貓,成爲精靈女孩的騎士(寵物)一起生活 / Beheneko - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9131,7 +9131,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689598_MingY_Re_Bocchi_the_Rock_21_Re_BDRip_1080p_HEVC_OPUS`() {
kotlin.run {
val r =
- parse("[MingY] 剧场总集篇 孤独摇滚! Re: / Bocchi the Rock! Re [剧场版][BDRip][1080p][HEVC OPUS][简日内嵌]")
+ parse("[MingY] 劇場總集篇 孤獨搖滾! Re: / Bocchi the Rock! Re [劇場版][BDRip][1080p][HEVC OPUS][簡日內嵌]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9142,7 +9142,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689597_Himitsu_no_Aipri_45`() {
kotlin.run {
- val r = parse("[雪飄工作室][ひみつのアイプリ/Himitsu_no_Aipri/秘密的美妙公主][45][简繁外挂](检索:/美妙旋律/美妙天堂/美妙頻道/美妙魔法)")
+ val r = parse("[雪飄工作室][ひみつのアイプリ/Himitsu_no_Aipri/祕密的美妙公主][45][簡繁外掛](檢索:/美妙旋律/美妙天堂/美妙頻道/美妙魔法)")
assertEquals("45..45", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -9154,7 +9154,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689596_Himitsu_no_Aipri_720P_45`() {
kotlin.run {
val r =
- parse("[雪飄工作室][ひみつのアイプリ/Himitsu_no_Aipri/秘密的美妙公主][720P][45][繁](检索:/美妙旋律/美妙天堂/美妙頻道/美妙魔法)")
+ parse("[雪飄工作室][ひみつのアイプリ/Himitsu_no_Aipri/祕密的美妙公主][720P][45][繁](檢索:/美妙旋律/美妙天堂/美妙頻道/美妙魔法)")
assertEquals("45..45", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -9166,7 +9166,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689595_LoliHouse_Shangri_La_Frontier___44_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] Shangri-La Frontier / 香格里拉·开拓异境~粪作猎手挑战神作~ - 44 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] Shangri-La Frontier / 香格里拉·開拓異境~糞作獵手挑戰神作~ - 44 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("44..44", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9177,7 +9177,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689593_GM_Team_Renegade_Immortal_2023_76_AVC_GB_1080P`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][仙逆][Renegade Immortal][2023][76][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][仙逆][Renegade Immortal][2023][76][AVC][GB][1080P]")
assertEquals("76..76", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9190,7 +9190,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689592_LoliHouse_Fuguushoku_Kanteishi_ga_Jitsu_wa_Saikyou_Datta___05_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 不幸职业【鉴定士】实则最强 / Fuguushoku 'Kanteishi' ga Jitsu wa Saikyou Datta - 05 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 不幸職業【鑑定士】實則最強 / Fuguushoku 'Kanteishi' ga Jitsu wa Saikyou Datta - 05 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9203,7 +9203,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689591_LoliHouse_Fuguushoku_Kanteishi_ga_Jitsu_wa_Saikyou_Datta___04_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 不幸职业【鉴定士】实则最强 / Fuguushoku 'Kanteishi' ga Jitsu wa Saikyou Datta - 04 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 不幸職業【鑑定士】實則最強 / Fuguushoku 'Kanteishi' ga Jitsu wa Saikyou Datta - 04 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9216,7 +9216,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689590_LoliHouse_Fuguushoku_Kanteishi_ga_Jitsu_wa_Saikyou_Datta___03_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 不幸职业【鉴定士】实则最强 / Fuguushoku 'Kanteishi' ga Jitsu wa Saikyou Datta - 03 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 不幸職業【鑑定士】實則最強 / Fuguushoku 'Kanteishi' ga Jitsu wa Saikyou Datta - 03 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9229,7 +9229,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689589_LoliHouse_Botsuraku_Yotei_no_Kizoku_dakedo_Hima_Datta_kara_Mahou_wo_Kiwametemita___05_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 虽然我是注定没落的贵族,闲来无事只好来深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita - 05 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 雖然我是註定沒落的貴族,閒來無事只好來深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita - 05 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9253,7 +9253,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689586_76_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[仙逆][第76集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[仙逆][第76集][國語中字][WEB-MKV][2160P]")
assertEquals("76..76", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -9264,7 +9264,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689585_GM_Team_The_Eternal_Realm_2024_17_HEVC_GB_4K`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][长生界][The Eternal Realm][2024][17][HEVC][GB][4K]")
+ val r = parse("[GM-Team][國漫][長生界][The Eternal Realm][2024][17][HEVC][GB][4K]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -9275,7 +9275,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689584_GM_Team_The_Eternal_Realm_2024_16_HEVC_GB_4K`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][长生界][The Eternal Realm][2024][16][HEVC][GB][4K]")
+ val r = parse("[GM-Team][國漫][長生界][The Eternal Realm][2024][16][HEVC][GB][4K]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -9286,7 +9286,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689583_GM_Team_The_Eternal_Realm_2024_15_HEVC_GB_4K`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][长生界][The Eternal Realm][2024][15][HEVC][GB][4K]")
+ val r = parse("[GM-Team][國漫][長生界][The Eternal Realm][2024][15][HEVC][GB][4K]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -9298,7 +9298,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689582_VCB_Studio_Kuusen_Madoushi_Kouhosei_no_Kyoukan_10_bit_1080p_HEVC_BDRip_Fin`() {
kotlin.run {
val r =
- parse("[VCB-Studio] 空战魔导士候补生的教官 / Kuusen Madoushi Kouhosei no Kyoukan / 空戦魔導士候補生の教官 10-bit 1080p HEVC BDRip [Fin]")
+ parse("[VCB-Studio] 空戰魔導士候補生的教官 / Kuusen Madoushi Kouhosei no Kyoukan / 空戦魔導士候補生の教官 10-bit 1080p HEVC BDRip [Fin]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9311,7 +9311,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689581_DBD_Raws_Kono_Subarashii_Sekai_ni_Shukufuku_o_21_3_01_11TV_1080P_BDRip_HEVC_10bit_FLACx2_MKV__21_3`() {
kotlin.run {
val r =
- parse("[DBD-Raws][为美好的世界献上祝福! 第三季/Kono Subarashii Sekai ni Shukufuku o! 3][01-11TV全集+特典映像][1080P][BDRip][HEVC-10bit][简繁外挂][FLACx2][MKV](この素晴らしい世界に祝福を! 3)")
+ parse("[DBD-Raws][爲美好的世界獻上祝福! 第三季/Kono Subarashii Sekai ni Shukufuku o! 3][01-11TV全集+特典映像][1080P][BDRip][HEVC-10bit][簡繁外掛][FLACx2][MKV](この素晴らしい世界に祝福を! 3)")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9322,7 +9322,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689579_GM_Team_Swallowed_Star_2021_158_AVC_GB_1080P`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][吞噬星空][Swallowed Star][2021][158][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][吞噬星空][Swallowed Star][2021][158][AVC][GB][1080P]")
assertEquals("158..158", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9333,7 +9333,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689578_GM_Team_Swallowed_Star_2021_157_AVC_GB_1080P`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][吞噬星空][Swallowed Star][2021][157][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][吞噬星空][Swallowed Star][2021][157][AVC][GB][1080P]")
assertEquals("157..157", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9344,7 +9344,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689577_GM_Team_Swallowed_Star_2021_156_AVC_GB_1080P`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][吞噬星空][Swallowed Star][2021][156][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][吞噬星空][Swallowed Star][2021][156][AVC][GB][1080P]")
assertEquals("156..156", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9355,7 +9355,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689576_GM_Team_Renegade_Immortal_2023_75_AVC_GB_1080P`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][仙逆][Renegade Immortal][2023][75][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][仙逆][Renegade Immortal][2023][75][AVC][GB][1080P]")
assertEquals("75..75", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9366,7 +9366,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689575_GM_Team_Renegade_Immortal_2023_74_AVC_GB_1080P`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][仙逆][Renegade Immortal][2023][74][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][仙逆][Renegade Immortal][2023][74][AVC][GB][1080P]")
assertEquals("74..74", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9377,7 +9377,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689574_GM_Team_Renegade_Immortal_2023_73_AVC_GB_1080P`() {
kotlin.run {
- val r = parse("[GM-Team][国漫][仙逆][Renegade Immortal][2023][73][AVC][GB][1080P]")
+ val r = parse("[GM-Team][國漫][仙逆][Renegade Immortal][2023][73][AVC][GB][1080P]")
assertEquals("73..73", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9389,7 +9389,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689573_LoliHouse_A_Aparida___06_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 离开A级队伍的我,和从前的弟子往迷宫深处迈进 / Aparida - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 離開A級隊伍的我,和從前的弟子往迷宮深處邁進 / Aparida - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9401,7 +9401,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689572_LoliHouse_NEET_Kunoichi___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 我与尼特女忍者的莫名同居生活 / NEET Kunoichi - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 我與尼特女忍者的莫名同居生活 / NEET Kunoichi - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9414,7 +9414,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689571_DBD_Raws_The_Super_Dimension_Fortress_Macross___Do_You_Remember_Love_1080P_BDRip_HEVC_10bit_FLAC_MKV_Choujikuu_Yousai_Macross_Ai_Oboete_Imasuka`() {
kotlin.run {
val r =
- parse("[DBD-Raws][超时空要塞 可曾记得爱/The Super Dimension Fortress Macross - Do You Remember Love?][完全版+院线版][1080P][BDRip][HEVC-10bit][简繁日双语外挂][FLAC][MKV](Choujikuu Yousai Macross: Ai Oboete Imasuka/超時空要塞マクロス 愛・おぼえていますか)")
+ parse("[DBD-Raws][超時空要塞 可曾記得愛/The Super Dimension Fortress Macross - Do You Remember Love?][完全版+院線版][1080P][BDRip][HEVC-10bit][簡繁日雙語外掛][FLAC][MKV](Choujikuu Yousai Macross: Ai Oboete Imasuka/超時空要塞マクロス 愛・おぼえていますか)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9426,7 +9426,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689568_You_and_Idol_Precure_1080p_03_Q`() {
kotlin.run {
val r =
- parse("[雪飘工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/与你同为 偶像光之美少女♪][1080p][03][简繁外挂](检索:Q娃)")
+ parse("[雪飄工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/與你同爲 偶像光之美少女♪][1080p][03][簡繁外掛](檢索:Q娃)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9438,7 +9438,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689567_You_and_Idol_Precure_720p_03_Q`() {
kotlin.run {
val r =
- parse("[雪飘工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/与你同为 偶像光之美少女♪][720p][03][简体内嵌](检索:Q娃)")
+ parse("[雪飄工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/與你同爲 偶像光之美少女♪][720p][03][簡體內嵌](檢索:Q娃)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -9450,7 +9450,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689566_You_and_Idol_Precure_720p_03_Q`() {
kotlin.run {
val r =
- parse("[雪飄工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/与你同为 偶像光之美少女♪][720p][03][繁體內嵌](檢索:Q娃)")
+ parse("[雪飄工作室][キミとアイドルプリキュア♪/You and Idol Precure♪/與你同爲 偶像光之美少女♪][720p][03][繁體內嵌](檢索:Q娃)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -9463,7 +9463,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689563_LoliHouse_____Ore_dake_Level_Up_na_Ken_Solo_Leveling___19_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 我独自升级 -起于暗影- / Ore dake Level Up na Ken / Solo Leveling - 19 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 我獨自升級 -起於暗影- / Ore dake Level Up na Ken / Solo Leveling - 19 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9475,7 +9475,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689561_LoliHouse_Tasokare_Hotel___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 黄昏旅店 / Tasokare Hotel - 07 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 黃昏旅店 / Tasokare Hotel - 07 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9487,7 +9487,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689560_LoliHouse_Tasokare_Hotel___06_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 黄昏旅店 / Tasokare Hotel - 06 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 黃昏旅店 / Tasokare Hotel - 06 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9499,7 +9499,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689559_LoliHouse_Tasokare_Hotel___05_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 黄昏旅店 / Tasokare Hotel - 05 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 黃昏旅店 / Tasokare Hotel - 05 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9604,7 +9604,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689549__21_21_MIRAI_DAYS_Maho_Girls_Precure_21_21__21_21_1080p_06_Q`() {
kotlin.run {
val r =
- parse("[雪飘工作室][魔法つかいプリキュア!!~MIRAI DAYS~/Maho_Girls_Precure!!/魔法少女 光之美少女!!~未来的日子~][1080p][06][简繁外挂](检索:Q娃)")
+ parse("[雪飄工作室][魔法つかいプリキュア!!~MIRAI DAYS~/Maho_Girls_Precure!!/魔法少女 光之美少女!!~未來的日子~][1080p][06][簡繁外掛](檢索:Q娃)")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9616,7 +9616,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689548__21_21_MIRAI_DAYS_Maho_Girls_Precure_21_21__21_21_720p_06_Q`() {
kotlin.run {
val r =
- parse("[雪飘工作室][魔法つかいプリキュア!!~MIRAI DAYS~/Maho_Girls_Precure!!/魔法少女 光之美少女!!~未来的日子~][720p][06][简体内嵌](检索:Q娃)")
+ parse("[雪飄工作室][魔法つかいプリキュア!!~MIRAI DAYS~/Maho_Girls_Precure!!/魔法少女 光之美少女!!~未來的日子~][720p][06][簡體內嵌](檢索:Q娃)")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -9639,7 +9639,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689546_10_18_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&澄空学园&华盟字幕社&千夏字幕组】★10月新番[冻牌][18][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組&澄空學園&華盟字幕社&千夏字幕組】★10月新番[凍牌][18][1080P][簡體][MP4]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9709,7 +9709,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689538_1153_WEBRIP_MKV_1080P`() {
kotlin.run {
- val r = parse("[银色子弹字幕组][名侦探柯南][第1153集 屋久岛的山姬(前篇)][WEBRIP][简繁日多语MKV][1080P]")
+ val r = parse("[銀色子彈字幕組][名偵探柯南][第1153集 屋久島的山姬(前篇)][WEBRIP][簡繁日多語MKV][1080P]")
assertEquals("1153..1153", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9720,7 +9720,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689537_1153_WEBRIP_MP4_1080P`() {
kotlin.run {
- val r = parse("[银色子弹字幕组][名侦探柯南][第1153集 屋久島的山姬(前篇)][WEBRIP][繁日雙語MP4][1080P]")
+ val r = parse("[銀色子彈字幕組][名偵探柯南][第1153集 屋久島的山姬(前篇)][WEBRIP][繁日雙語MP4][1080P]")
assertEquals("1153..1153", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9731,7 +9731,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689536_1153_WEBRIP_MP4_1080P`() {
kotlin.run {
- val r = parse("[银色子弹字幕组][名侦探柯南][第1153集 屋久岛的山姬(前篇)][WEBRIP][简日双语MP4][1080P]")
+ val r = parse("[銀色子彈字幕組][名偵探柯南][第1153集 屋久島的山姬(前篇)][WEBRIP][簡日雙語MP4][1080P]")
assertEquals("1153..1153", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9814,7 +9814,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689527_Kuroiwa_Medaka_ni_Watashi_no_Kawaii_ga_Tsuujinai_06_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]我的可爱对黑岩目高不管用 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai [06] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]我的可愛對黑巖目高不管用 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai [06] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9827,7 +9827,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689526_Kuroiwa_Medaka_ni_Watashi_no_Kawaii_ga_Tsuujinai_06_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]我的可爱对黑岩目高不管用 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai [06] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]我的可愛對黑巖目高不管用 / Kuroiwa Medaka ni Watashi no Kawaii ga Tsuujinai [06] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9864,7 +9864,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689520___18_CR_WebRip_AI2160p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[新沸羊羊制作] 龙珠大魔 - 18 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[新沸羊羊製作] 龍珠大魔 - 18 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -9875,7 +9875,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689519_DBFC_018_1080P_MP4`() {
kotlin.run {
- val r = parse("【DBFC字幕组】【龙珠 大魔】【018】【中日双语字幕】【1080P】【MP4】")
+ val r = parse("【DBFC字幕組】【龍珠 大魔】【018】【中日雙語字幕】【1080P】【MP4】")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9887,7 +9887,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689518_Strange_Raw_SAKAMOTO_DAYS_S01_06_Bilibili_WEB_DL_1080P_AVC_8Bits_AAC_2_0`() {
kotlin.run {
val r =
- parse("[Strange-Raw] 坂本日常 第一季 / SAKAMOTO DAYS S01 [06] [Bilibili] [WEB-DL] [1080P AVC-8Bits AAC 2.0] [简日内嵌字幕]")
+ parse("[Strange-Raw] 坂本日常 第一季 / SAKAMOTO DAYS S01 [06] [Bilibili] [WEB-DL] [1080P AVC-8Bits AAC 2.0] [簡日內嵌字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9899,7 +9899,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689517_LoliHouse_Kurakon___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 我和班上最讨厌的女生结婚了。 / クラスの大嫌いな女子と結婚することになった。 / Kurakon - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 我和班上最討厭的女生結婚了。 / クラスの大嫌いな女子と結婚することになった。 / Kurakon - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9911,7 +9911,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689514_LoliHouse_Nihon_e_Youkoso_Elf_san___06_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 精灵来日 / 歡迎來到日本,妖精小姐。 / 日本へようこそエルフさん。 / Nihon e Youkoso Elf-san. - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 精靈來日 / 歡迎來到日本,妖精小姐。 / 日本へようこそエルフさん。 / Nihon e Youkoso Elf-san. - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9922,7 +9922,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689513___06_CR_WebRip_AI2160p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[新沸羊羊制作] 药师少女的独语 第二季 - 06 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[新沸羊羊製作] 藥師少女的獨語 第二季 - 06 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -9944,7 +9944,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689511_1140_3_1080P_MP4`() {
kotlin.run {
- val r = parse("[风车字幕组][名侦探柯南][1140][女子推理社3][1080P][简体][MP4]")
+ val r = parse("[風車字幕組][名偵探柯南][1140][女子推理社3][1080P][簡體][MP4]")
assertEquals("1140..1140", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9955,7 +9955,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689510_06_GB_CN_HEVC_opus_1080p`() {
kotlin.run {
- val r = parse("【极影字幕·毁片党】 这家公司里有我喜欢的人 第06集 GB_CN HEVC_opus 1080p")
+ val r = parse("【極影字幕·毀片黨】 這家公司裏有我喜歡的人 第06集 GB_CN HEVC_opus 1080p")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9966,7 +9966,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689509_134_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[斗破苍穹年番][第134集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[鬥破蒼穹年番][第134集][國語中字][WEB-MKV][2160P]")
assertEquals("134..134", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -9989,7 +9989,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689507_H_Enc_Gimai_Seikatsu_BDRip_1080p_HEVC_FLAC`() {
kotlin.run {
- val r = parse("[H-Enc] 义妹生活 / Gimai Seikatsu (BDRip 1080p HEVC FLAC)")
+ val r = parse("[H-Enc] 義妹生活 / Gimai Seikatsu (BDRip 1080p HEVC FLAC)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10001,7 +10001,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689506_LoliHouse_Izure_Saikyou_no_Renkinjutsushi___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 迟早是最强的炼金术师? / Izure Saikyou no Renkinjutsushi? - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 遲早是最強的鍊金術師? / Izure Saikyou no Renkinjutsushi? - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10013,7 +10013,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689505_LoliHouse_Ishura_S2___06_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 异修罗 第二季 / Ishura S2 - 06 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 異修羅 第二季 / Ishura S2 - 06 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10037,7 +10037,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689503_Re_Re_Zero_kara_Hajimeru_Isekai_Seikatsu_60_WebRip_1080p_AVC_AAC`() {
kotlin.run {
val r =
- parse("【百冬练习组】【Re: 从零开始的异世界的生活_Re꞉ Zero kara Hajimeru Isekai Seikatsu】[60][WebRip 1080p AVC AAC][简体]")
+ parse("【百冬練習組】【Re: 從零開始的異世界的生活_Re꞉ Zero kara Hajimeru Isekai Seikatsu】[60][WebRip 1080p AVC AAC][簡體]")
assertEquals("60..60", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10049,7 +10049,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689501_VCB_Studio_Seiken_Tsukai_no_World_Break_10_bit_1080p_HEVC_BDRip_Fin`() {
kotlin.run {
val r =
- parse("[VCB-Studio] 圣剑使的禁咒咏唱 / Seiken Tsukai no World Break / 聖剣使いの禁呪詠唱 10-bit 1080p HEVC BDRip [Fin]")
+ parse("[VCB-Studio] 聖劍使的禁咒詠唱 / Seiken Tsukai no World Break / 聖剣使いの禁呪詠唱 10-bit 1080p HEVC BDRip [Fin]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10061,7 +10061,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689500_DBD_Raws_Shoushimin_Series_01_10TV_1080P_BDRip_HEVC_10bit_FLAC_MKV`() {
kotlin.run {
val r =
- parse("[DBD-Raws][小市民系列/Shoushimin Series][01-10TV全集+特典映像][1080P][BDRip][HEVC-10bit][简繁日双语外挂][FLAC][MKV](小市民シリーズ)")
+ parse("[DBD-Raws][小市民系列/Shoushimin Series][01-10TV全集+特典映像][1080P][BDRip][HEVC-10bit][簡繁日雙語外掛][FLAC][MKV](小市民シリーズ)")
assertEquals("01..10", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10074,7 +10074,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689497_LoliHouse_Act_2_Act_2_Unnamed_Memory_Act_2___18_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 无名记忆 Act.2 / 無名記憶 Act.2 / Unnamed Memory Act.2 - 18 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 無名記憶 Act.2 / 無名記憶 Act.2 / Unnamed Memory Act.2 - 18 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10086,7 +10086,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689496_LoliHouse_Dragon_Ball_Daima___18_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 龙珠 大魔 / Dragon Ball Daima - 18 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 龍珠 大魔 / Dragon Ball Daima - 18 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10108,7 +10108,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689494_01_Honey_Lemon_Soda_04_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[蜂蜜柠檬苏打 / Honey Lemon Soda][04][1080p][简体]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[蜂蜜檸檬蘇打 / Honey Lemon Soda][04][1080p][簡體]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10130,7 +10130,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689492_01_Honey_Lemon_Soda_03_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[蜂蜜柠檬苏打 / Honey Lemon Soda][03][1080p][简体]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[蜂蜜檸檬蘇打 / Honey Lemon Soda][03][1080p][簡體]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10141,7 +10141,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689491_130_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[凡人修仙传][第130集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[凡人修仙傳][第130集][國語中字][WEB-MKV][2160P]")
assertEquals("130..130", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -10153,7 +10153,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689490_10_Chi_____Chi_Chikyuu_no_Undou_ni_Tsuite_19_1080p`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★10月新番★[Chi。-关于地球的运动- / Chi. Chikyuu no Undou ni Tsuite][19][1080p][简日双语][招募翻译]")
+ parse("【喵萌奶茶屋】★10月新番★[Chi。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite][19][1080p][簡日雙語][招募翻譯]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10165,7 +10165,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689489_10_Chi_____Chi_Chikyuu_no_Undou_ni_Tsuite_18_1080p`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★10月新番★[Chi。-关于地球的运动- / Chi. Chikyuu no Undou ni Tsuite][18][1080p][简日双语][招募翻译]")
+ parse("【喵萌奶茶屋】★10月新番★[Chi。-關於地球的運動- / Chi. Chikyuu no Undou ni Tsuite][18][1080p][簡日雙語][招募翻譯]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10176,7 +10176,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689488_01_Tasokare_Hotel_07_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[黄昏旅店 / Tasokare Hotel][07][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[黃昏旅店 / Tasokare Hotel][07][1080p][簡日雙語][招募翻譯]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10188,7 +10188,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689487_LoliHouse_Douse_Koishite_Shimaunda___06_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 终究、与你相恋 / Douse, Koishite Shimaunda - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 終究、與你相戀 / Douse, Koishite Shimaunda - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10199,7 +10199,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689486_Kusuriya_no_Hitorigoto_30_1080P_MP4`() {
kotlin.run {
- val r = parse("【豌豆字幕组】[药屋少女的呢喃(药师少女的独语)/ Kusuriya no Hitorigoto][30][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組】[藥屋少女的呢喃(藥師少女的獨語)/ Kusuriya no Hitorigoto][30][簡體][1080P][MP4]")
assertEquals("30..30", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10313,7 +10313,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689476_57_58_WEBRIP_MP4_MP4_MKV_1080P`() {
kotlin.run {
- val r = parse("[银色子弹字幕组][名侦探柯南][第57-58集 福尔摩斯迷杀人事件][WEBRIP][简日双语MP4/繁日雙語MP4/简繁日多语MKV][1080P]")
+ val r = parse("[銀色子彈字幕組][名偵探柯南][第57-58集 福爾摩斯迷殺人事件][WEBRIP][簡日雙語MP4/繁日雙語MP4/簡繁日多語MKV][1080P]")
assertEquals("57..58", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10337,7 +10337,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689468_LoliHouse_Myth_of_Emotions_Sousei_no_Aquarion_Myth_of_Emotions___06_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 想星的大天使 Myth of Emotions / Sousei no Aquarion: Myth of Emotions - 06 [WebRip 1080p HEVC-10bit AAC][无字幕]")
+ parse("[LoliHouse] 想星的大天使 Myth of Emotions / Sousei no Aquarion: Myth of Emotions - 06 [WebRip 1080p HEVC-10bit AAC][無字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10372,7 +10372,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689465_01_Act_2_Unnamed_Memory_Act_2_18_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[无名记忆 Act.2 / Unnamed Memory Act.2][18][1080p][简日双语][招募翻译时轴]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[無名記憶 Act.2 / Unnamed Memory Act.2][18][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10385,7 +10385,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689464_Dungeon_ni_Deai_o_Motomeru_no_wa_Machigatte_Iru_Darouka_Familia_Myth_V_13_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 在地下城寻求邂逅是否搞错了什么 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [13][1080p][繁体内嵌]")
+ parse("[桜都字幕組] 在地下城尋求邂逅是否搞錯了什麼 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [13][1080p][繁體內嵌]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10398,7 +10398,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689463_Dungeon_ni_Deai_o_Motomeru_no_wa_Machigatte_Iru_Darouka_Familia_Myth_V_13_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 在地下城寻求邂逅是否搞错了什么 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [13][1080p][简体内嵌]")
+ parse("[桜都字幕組] 在地下城尋求邂逅是否搞錯了什麼 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [13][1080p][簡體內嵌]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10411,7 +10411,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689462_Dungeon_ni_Deai_o_Motomeru_no_wa_Machigatte_Iru_Darouka_Familia_Myth_V_13_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 在地下城寻求邂逅是否搞错了什么 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [13][1080p][简繁内封]")
+ parse("[桜都字幕組] 在地下城尋求邂逅是否搞錯了什麼 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [13][1080p][簡繁內封]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10424,7 +10424,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689461_Dungeon_ni_Deai_o_Motomeru_no_wa_Machigatte_Iru_Darouka_Familia_Myth_V_12_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 在地下城寻求邂逅是否搞错了什么 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [12][1080p][繁体内嵌]")
+ parse("[桜都字幕組] 在地下城尋求邂逅是否搞錯了什麼 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [12][1080p][繁體內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10437,7 +10437,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689460_Dungeon_ni_Deai_o_Motomeru_no_wa_Machigatte_Iru_Darouka_Familia_Myth_V_12_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 在地下城寻求邂逅是否搞错了什么 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [12][1080p][简体内嵌]")
+ parse("[桜都字幕組] 在地下城尋求邂逅是否搞錯了什麼 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [12][1080p][簡體內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10450,7 +10450,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689459_Dungeon_ni_Deai_o_Motomeru_no_wa_Machigatte_Iru_Darouka_Familia_Myth_V_12_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 在地下城寻求邂逅是否搞错了什么 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [12][1080p][简繁内封]")
+ parse("[桜都字幕組] 在地下城尋求邂逅是否搞錯了什麼 第五季 / Dungeon ni Deai o Motomeru no wa Machigatte Iru Darouka: Familia Myth V [12][1080p][簡繁內封]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10486,7 +10486,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689456_LoliHouse_Hana_wa_Saku_Shura_no_Gotoku___06_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 群花绽放,仿如修罗 / Hana wa Saku Shura no Gotoku - 06 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 羣花綻放,仿如修羅 / Hana wa Saku Shura no Gotoku - 06 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10497,7 +10497,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689455_Honey_Lemon_Soda_05_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组] 蜂蜜柠檬苏打水 Honey Lemon Soda [05][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 蜂蜜檸檬蘇打水 Honey Lemon Soda [05][簡體雙語][1080p]招募翻譯")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10509,7 +10509,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689454_____Ore_dake_Level_Up_na_Ken_S2_18v2_1080p_JaVer_2025_1`() {
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [18v2] [1080p] [繁日内嵌] [JaVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [18v2] [1080p] [繁日內嵌] [JaVer] [2025年1月番]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10520,7 +10520,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689453_01_Hana_wa_Saku_Shura_no_Gotoku_06_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[群花綻放,彷如修羅 / Hana wa Saku Shura no Gotoku][06][1080p][繁日雙語][招募翻譯]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[羣花綻放,彷如修羅 / Hana wa Saku Shura no Gotoku][06][1080p][繁日雙語][招募翻譯]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10531,7 +10531,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689452_01_Hana_wa_Saku_Shura_no_Gotoku_06_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[群花绽放,彷如修罗 / Hana wa Saku Shura no Gotoku][06][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[羣花綻放,彷如修羅 / Hana wa Saku Shura no Gotoku][06][1080p][簡日雙語][招募翻譯]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10543,7 +10543,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689451_____Ore_dake_Level_Up_na_Ken_S2_18v2_1080p_JaVer_2025_1`() {
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [18v2] [1080p] [简日内嵌] [JaVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [18v2] [1080p] [簡日內嵌] [JaVer] [2025年1月番]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10555,7 +10555,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689450_____Ore_dake_Level_Up_na_Ken_S2_18_1080p_KoVer_2025_1`() {
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [18] [1080p] [简日内嵌] [KoVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [18] [1080p] [簡日內嵌] [KoVer] [2025年1月番]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10578,7 +10578,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689448_Amor_Kusuriya_no_Hitorigoto_30_WEBDL_1080P_MKV`() {
kotlin.run {
- val r = parse("[Amor压制组][药师少女的独语 藥師少女的獨語 Kusuriya no Hitorigoto][30][简繁内封][WEBDL][1080P][MKV]")
+ val r = parse("[Amor壓制組][藥師少女的獨語 藥師少女的獨語 Kusuriya no Hitorigoto][30][簡繁內封][WEBDL][1080P][MKV]")
assertEquals("30..30", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10601,7 +10601,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689445_LoliHouse_____Rurouni_Kenshin_2023___42_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 浪客剑心 -明治剑客浪漫谭- 京都动乱 / Rurouni Kenshin (2023) - 42 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 浪客劍心 -明治劍客浪漫譚- 京都動亂 / Rurouni Kenshin (2023) - 42 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("42..42", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10612,7 +10612,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689444_New_Doraemon_A_849_2025_02_08_AVC_1080P_GB_JP_MP4`() {
kotlin.run {
- val r = parse("[梦蓝字幕组]New Doraemon 哆啦A梦新番[849][2025.02.08][AVC][1080P][GB_JP][MP4]")
+ val r = parse("[夢藍字幕組]New Doraemon 哆啦A夢新番[849][2025.02.08][AVC][1080P][GB_JP][MP4]")
assertEquals("849..849", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10623,7 +10623,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689443_Hana_wa_Saku_Shura_no_Gotoku_05_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 群花绽放、彷如修罗 / Hana wa Saku, Shura no Gotoku [05][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 羣花綻放、彷如修羅 / Hana wa Saku, Shura no Gotoku [05][1080p][簡繁內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10634,7 +10634,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689442_Hana_wa_Saku_Shura_no_Gotoku_05_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 群花绽放、彷如修罗 / Hana wa Saku, Shura no Gotoku [05][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 羣花綻放、彷如修羅 / Hana wa Saku, Shura no Gotoku [05][1080p][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10645,7 +10645,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689441_Hana_wa_Saku_Shura_no_Gotoku_05_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕組] 群花綻放、彷如修羅 / Hana wa Saku, Shura no Gotoku [05][1080p][繁體內嵌]")
+ val r = parse("[桜都字幕組] 羣花綻放、彷如修羅 / Hana wa Saku, Shura no Gotoku [05][1080p][繁體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10657,7 +10657,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689440_Okinawa_de_Suki_ni_Natta_Ko_ga_Hougen_Sugite_Tsura_Sugiru_06_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 喜欢的冲绳妹说方言 / Okinawa de Suki ni Natta Ko ga Hougen Sugite Tsura Sugiru [06][1080p][简繁日内封]")
+ parse("[桜都字幕組] 喜歡的沖繩妹說方言 / Okinawa de Suki ni Natta Ko ga Hougen Sugite Tsura Sugiru [06][1080p][簡繁日內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10669,7 +10669,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689439_Okinawa_de_Suki_ni_Natta_Ko_ga_Hougen_Sugite_Tsura_Sugiru_06_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 喜欢的冲绳妹说方言 / Okinawa de Suki ni Natta Ko ga Hougen Sugite Tsura Sugiru [06][1080p][简日内嵌]")
+ parse("[桜都字幕組] 喜歡的沖繩妹說方言 / Okinawa de Suki ni Natta Ko ga Hougen Sugite Tsura Sugiru [06][1080p][簡日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10693,7 +10693,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689437_Magic_Maker_Isekai_Mahou_no_Tsukurikata_06_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]魔术发明家 ~异世界魔法的制作方法~ / Magic Maker: Isekai Mahou no Tsukurikata [06] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]魔術發明家 ~異世界魔法的製作方法~ / Magic Maker: Isekai Mahou no Tsukurikata [06] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10705,7 +10705,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689436_Magic_Maker_Isekai_Mahou_no_Tsukurikata_06_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]魔术发明家 ~异世界魔法的制作方法~ / Magic Maker: Isekai Mahou no Tsukurikata [06] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]魔術發明家 ~異世界魔法的製作方法~ / Magic Maker: Isekai Mahou no Tsukurikata [06] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10717,7 +10717,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689435_DBD_Raws_Isekai_Nonbiri_Nouka_01_12TV_1080P_BDRip_HEVC_10bit_FLAC_MKV`() {
kotlin.run {
val r =
- parse("[DBD-Raws][异世界悠闲农家/Isekai Nonbiri Nouka][01-12TV全集+特典映像][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV](異世界のんびり農家)")
+ parse("[DBD-Raws][異世界悠閒農家/Isekai Nonbiri Nouka][01-12TV全集+特典映像][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV](異世界のんびり農家)")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10728,7 +10728,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689434_Unnamed_Memory_Act_2_18_1080p_2025_1`() {
kotlin.run {
- val r = parse("[猎户手抄部] 无名记忆 第二季 / Unnamed Memory Act.2 [18] [1080p] [繁日内嵌] [2025年1月番]")
+ val r = parse("[獵戶手抄部] 無名記憶 第二季 / Unnamed Memory Act.2 [18] [1080p] [繁日內嵌] [2025年1月番]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10739,7 +10739,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689433_Unnamed_Memory_Act_2_18_1080p_2025_1`() {
kotlin.run {
- val r = parse("[猎户手抄部] 无名记忆 第二季 / Unnamed Memory Act.2 [18] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶手抄部] 無名記憶 第二季 / Unnamed Memory Act.2 [18] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10750,7 +10750,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689432_Zenshuu_06_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 全修。 / Zenshuu. [06][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 全修。 / Zenshuu. [06][1080p][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10772,7 +10772,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689430_Zenshuu_06_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 全修。 / Zenshuu. [06][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 全修。 / Zenshuu. [06][1080p][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10784,7 +10784,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689429_Class_no_Daikirai_na_Joshi_to_Kekkon_Suru_Koto_ni_Natta_06_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 我和班上最讨厌的女生结婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [06][1080p][简体内嵌]")
+ parse("[桜都字幕組] 我和班上最討厭的女生結婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [06][1080p][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10808,7 +10808,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689427_Class_no_Daikirai_na_Joshi_to_Kekkon_Suru_Koto_ni_Natta_06_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 我和班上最讨厌的女生结婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [06][1080p][简繁内封]")
+ parse("[桜都字幕組] 我和班上最討厭的女生結婚了。 / Class no Daikirai na Joshi to Kekkon Suru Koto ni Natta. [06][1080p][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10819,7 +10819,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689426_2_88_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[斗罗大陆2绝世唐门][第88集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[斗羅大陸2絕世唐門][第88集][國語中字][WEB-MKV][2160P]")
assertEquals("88..88", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -10843,7 +10843,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689423_DBD_Raws_Senpai_wa_Otokonoko_01_12TV_1080P_BDRip_HEVC_10bit_FLAC_MKV`() {
kotlin.run {
val r =
- parse("[DBD-Raws][前辈是男孩子/Senpai wa Otokonoko][01-12TV全集][1080P][BDRip][HEVC-10bit][简繁日双语外挂][FLAC][MKV](先輩はおとこのこ)")
+ parse("[DBD-Raws][前輩是男孩子/Senpai wa Otokonoko][01-12TV全集][1080P][BDRip][HEVC-10bit][簡繁日雙語外掛][FLAC][MKV](先輩はおとこのこ)")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10856,7 +10856,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689421_DBD_Raws_Mahouka_Koukou_no_Rettousei_S3_01_13TV_1080P_BDRip_HEVC_10bit_FLAC_MKV_3`() {
kotlin.run {
val r =
- parse("[DBD-Raws][魔法科高中的劣等生 第三季/Mahouka Koukou no Rettousei S3][01-13TV全集][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV](魔法科高校の劣等生 第3シーズン)")
+ parse("[DBD-Raws][魔法科高中的劣等生 第三季/Mahouka Koukou no Rettousei S3][01-13TV全集][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV](魔法科高校の劣等生 第3シーズン)")
assertEquals("01..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10868,7 +10868,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689418_Arafou_Otoko_no_Isekai_Tsuuhan_Seikatsu_05_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]中年男的异世界网购生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [05] [webRip] [AVC-8bit 1080P AAC] [繁日内嵌]")
+ parse("[黑白字幕組]中年男的異世界網購生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [05] [webRip] [AVC-8bit 1080P AAC] [繁日內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10880,7 +10880,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689417_Arafou_Otoko_no_Isekai_Tsuuhan_Seikatsu_05_webRip_AVC_8bit_1080P_AAC`() {
kotlin.run {
val r =
- parse("[黑白字幕组]中年男的异世界网购生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [05] [webRip] [AVC-8bit 1080P AAC] [简日内嵌]")
+ parse("[黑白字幕組]中年男的異世界網購生活 / Arafou Otoko no Isekai Tsuuhan Seikatsu [05] [webRip] [AVC-8bit 1080P AAC] [簡日內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10893,7 +10893,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689416_DBD_Raws_Gekijou_Soushuuhen_Bocchi_the_Rock_21_SP_1080P_BDRip_HEVC_10bit_FLAC_AC3_MKV__21`() {
kotlin.run {
val r =
- parse("[DBD-Raws][孤独摇滚!剧场总集篇/Gekijou Soushuuhen Bocchi the Rock!][正片+SP][1080P][BDRip][HEVC-10bit][FLAC+AC3][MKV](劇場総集編ぼっち・ざ・ろっく!)")
+ parse("[DBD-Raws][孤獨搖滾!劇場總集篇/Gekijou Soushuuhen Bocchi the Rock!][正片+SP][1080P][BDRip][HEVC-10bit][FLAC+AC3][MKV](劇場総集編ぼっち・ざ・ろっく!)")
assertEquals("SP..SP", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -10905,7 +10905,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689412_Bang_Dream_Ave_Mujica___07_CR_WebRip_AI2160p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[新沸羊羊制作] Bang Dream Ave Mujica - 07 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ parse("[新沸羊羊製作] Bang Dream Ave Mujica - 07 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -10927,7 +10927,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689408_Ao_no_Hako_20_WEBrip_1080P`() {
kotlin.run {
- val r = parse("【今晚月色真美】[青之箱 / アオのハコ / Ao no Hako][20][WEBrip][1080P][简日双语]")
+ val r = parse("【今晚月色真美】[青之箱 / アオのハコ / Ao no Hako][20][WEBrip][1080P][簡日雙語]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11043,7 +11043,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689392_01_Ishura_S2_06_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[异修罗 第二季 / Ishura S2][06][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[異修羅 第二季 / Ishura S2][06][1080p][簡日雙語][招募翻譯]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11054,7 +11054,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689391_Production_01_BanG_Dream_21_Ave_Mujica_07_1080p`() {
kotlin.run {
- val r = parse("【喵萌Production】★01月新番★[BanG Dream! Ave Mujica][07][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌Production】★01月新番★[BanG Dream! Ave Mujica][07][1080p][簡日雙語][招募翻譯]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11065,7 +11065,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689390_06_GB_CN_HEVC_opus_1080p`() {
kotlin.run {
- val r = parse("【极影字幕·毁片党】灰色:幻影扳机 第06集 GB_CN HEVC_opus 1080p")
+ val r = parse("【極影字幕·毀片黨】灰色:幻影扳機 第06集 GB_CN HEVC_opus 1080p")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11089,7 +11089,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689387_DBD_4K_2160P_HDR_1080P_BanG_Dream_21_Ave_Mujica_07_WEB_DL_AAC_MKV`() {
kotlin.run {
val r =
- parse("[DBD制作组][4K(2160P)+HDR+1080P][BanG Dream! Ave Mujica][07][WEB-DL][简日双语内嵌][AAC][MKV]")
+ parse("[DBD製作組][4K(2160P)+HDR+1080P][BanG Dream! Ave Mujica][07][WEB-DL][簡日雙語內嵌][AAC][MKV]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11101,7 +11101,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689386_S1_BanG_Dream_21_Ave_Mujica_07_2160p_Bilibili_Web_DL_HDR_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[S1百综字幕组]BanG Dream! Ave Mujica [07][2160p][Bilibili][Web-DL][HDR][HEVC_AAC][简日双语]")
+ parse("[S1百綜字幕組]BanG Dream! Ave Mujica [07][2160p][Bilibili][Web-DL][HDR][HEVC_AAC][簡日雙語]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -11114,7 +11114,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689385_LoliHouse_2_Watashi_no_Shiawase_na_Kekkon_S2___06_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 我的幸福婚姻 2期 / Watashi no Shiawase na Kekkon S2 - 06 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 我的幸福婚姻 2期 / Watashi no Shiawase na Kekkon S2 - 06 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11127,7 +11127,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689384_DBD_Raws_ZZ_Mobile_Suit_Gundam_ZZ_01_47TV_1080P_BDRip_HEVC_10bit_FLAC_MKV_Kidou_Senshi_Gundam_ZZ_ZZ`() {
kotlin.run {
val r =
- parse("[DBD-Raws][机动战士高达ZZ/Mobile Suit Gundam ZZ][01-47TV全集+特典映像][1080P][BDRip][HEVC-10bit][简繁内封][FLAC][MKV](Kidou Senshi Gundam ZZ/機動戦士ガンダムZZ)")
+ parse("[DBD-Raws][機動戰士高達ZZ/Mobile Suit Gundam ZZ][01-47TV全集+特典映像][1080P][BDRip][HEVC-10bit][簡繁內封][FLAC][MKV](Kidou Senshi Gundam ZZ/機動戦士ガンダムZZ)")
assertEquals("01..47", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11138,7 +11138,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689383_202_WEB_MKV_2160P`() {
kotlin.run {
- val r = parse("[完美世界][第202集][国语中字][WEB-MKV][2160P]")
+ val r = parse("[完美世界][第202集][國語中字][WEB-MKV][2160P]")
assertEquals("202..202", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -11149,7 +11149,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689382_Shakugan_no_Shana_I_04_BDRip_1080P_x264_AAC`() {
kotlin.run {
- val r = parse("[晚街与灯][灼眼的夏娜 第一季_Shakugan no Shana I][04][BDRip_1080P_x264_AAC][简日内嵌]")
+ val r = parse("[晚街與燈][灼眼的夏娜 第一季_Shakugan no Shana I][04][BDRip_1080P_x264_AAC][簡日內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11171,7 +11171,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689380_Re___10V2_CR_WebRip_AI2160p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[新沸羊羊制作] Re:从零开始的异世界生活 第三季 - 10V2 [CR WebRip AI2160p HEVC-10bit AAC][官方简繁内封字幕]")
+ val r = parse("[新沸羊羊製作] Re:從零開始的異世界生活 第三季 - 10V2 [CR WebRip AI2160p HEVC-10bit AAC][官方簡繁內封字幕]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -11184,7 +11184,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689377_DBD_Raws_Mairimashita_21_Iruma_kun_S2_01_21TV_1080P_BDRip_HEVC_10bit_FLAC_MKV_2`() {
kotlin.run {
val r =
- parse("[DBD-Raws][入间同学入魔了! 第二季/Mairimashita! Iruma-kun S2][01-21TV全集][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV](魔入りました!入間くん 第2シーズン)")
+ parse("[DBD-Raws][入間同學入魔了! 第二季/Mairimashita! Iruma-kun S2][01-21TV全集][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV](魔入りました!入間くん 第2シーズン)")
assertEquals("01..21", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11195,7 +11195,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689364_OVA_I_s_Pure_2005_DVD720P`() {
kotlin.run {
- val r = parse("OVA I''s Pure.2005.DVD720P.日语中字")
+ val r = parse("OVA I''s Pure.2005.DVD720P.日語中字")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -11207,7 +11207,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689363_LoliHouse_100_Hyakkano___15_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&喵萌奶茶屋&LoliHouse] 超超超超超喜歡你的100個女朋友 / Hyakkano - 15 [WebRip 1080p HEVC-10bit AAC][简繁日内封字幕]")
+ parse("[千夏字幕組&喵萌奶茶屋&LoliHouse] 超超超超超喜歡你的100個女朋友 / Hyakkano - 15 [WebRip 1080p HEVC-10bit AAC][簡繁日內封字幕]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11252,7 +11252,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689358_GalaxyRailroad_888_GO_RUSH_21_21_Yu_Gi_Oh_21_GO_RUSH__21_21_144_720P_GB`() {
kotlin.run {
- val r = parse("[GalaxyRailroad-888] 游戏王GO RUSH!! Yu-Gi-Oh! GO RUSH !! 144 720P [GB_简中]")
+ val r = parse("[GalaxyRailroad-888] 遊戲王GO RUSH!! Yu-Gi-Oh! GO RUSH !! 144 720P [GB_簡中]")
assertEquals("144..144", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -11274,7 +11274,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689356_01_2_Watashi_no_Shiawase_na_Kekkon_S2_06_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★01月新番★[我的幸福婚姻 2期 / Watashi no Shiawase na Kekkon S2][06][1080p][简日双语]")
+ val r = parse("【喵萌奶茶屋】★01月新番★[我的幸福婚姻 2期 / Watashi no Shiawase na Kekkon S2][06][1080p][簡日雙語]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11297,7 +11297,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689354_Billion_Meta_Lab_Momentary_Lily_05_1080P_HEVC_10bit`() {
kotlin.run {
val r =
- parse("[Billion Meta Lab] 昙花一现的百合 Momentary Lily [05][1080P][HEVC 10bit][简繁日内封][检索:刹那之花]")
+ parse("[Billion Meta Lab] 曇花一現的百合 Momentary Lily [05][1080P][HEVC 10bit][簡繁日內封][檢索:剎那之花]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11308,7 +11308,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689353_Billion_Meta_Lab_Momentary_Lily_05_1080P`() {
kotlin.run {
- val r = parse("[Billion Meta Lab] 昙花一现的百合 Momentary Lily [05][1080P][简日内嵌][检索:刹那之花]")
+ val r = parse("[Billion Meta Lab] 曇花一現的百合 Momentary Lily [05][1080P][簡日內嵌][檢索:剎那之花]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11333,7 +11333,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689350_____Ore_dake_Level_Up_na_Ken_S2_18_1080p_JaVer_2025_1`() {
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [18] [1080p] [繁日内嵌] [JaVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [18] [1080p] [繁日內嵌] [JaVer] [2025年1月番]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11345,7 +11345,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689349_____Ore_dake_Level_Up_na_Ken_S2_18_1080p_JaVer_2025_1`() {
kotlin.run {
val r =
- parse("[猎户压制部] 我独自升级 第二季 -起于暗影- / Ore dake Level Up na Ken S2 [18] [1080p] [简日内嵌] [JaVer] [2025年1月番]")
+ parse("[獵戶壓制部] 我獨自升級 第二季 -起於暗影- / Ore dake Level Up na Ken S2 [18] [1080p] [簡日內嵌] [JaVer] [2025年1月番]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11370,7 +11370,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689347_Sentai_Red_Isekai_de_Boukensha_ni_Naru_05_1080p_2025_1`() {
kotlin.run {
val r =
- parse("[猎户手抄部] 红战士在异世界成了冒险者 / Sentai Red Isekai de Boukensha ni Naru [05] [1080p] [繁日内嵌] [2025年1月番]")
+ parse("[獵戶手抄部] 紅戰士在異世界成了冒險者 / Sentai Red Isekai de Boukensha ni Naru [05] [1080p] [繁日內嵌] [2025年1月番]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11382,7 +11382,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689346_Sentai_Red_Isekai_de_Boukensha_ni_Naru_05_1080p_2025_1`() {
kotlin.run {
val r =
- parse("[猎户手抄部] 战队红战士在异世界当冒险者 / Sentai Red Isekai de Boukensha ni Naru [05] [1080p] [简日内嵌] [2025年1月番]")
+ parse("[獵戶手抄部] 戰隊紅戰士在異世界當冒險者 / Sentai Red Isekai de Boukensha ni Naru [05] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11394,7 +11394,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689345_Shangri_La_Frontier_S2_43_1080p_2024_10`() {
kotlin.run {
val r =
- parse("[猎户压制部] 香格里拉·开拓异境~粪作猎手挑战神作 第二季 / Shangri-La Frontier S2 [43] [1080p] [繁日内嵌] [2024年10月番]")
+ parse("[獵戶壓制部] 香格里拉·開拓異境~糞作獵手挑戰神作 第二季 / Shangri-La Frontier S2 [43] [1080p] [繁日內嵌] [2024年10月番]")
assertEquals("43..43", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11406,7 +11406,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689344_Shangri_La_Frontier_S2_43_1080p_2024_10`() {
kotlin.run {
val r =
- parse("[猎户压制部] 香格里拉·开拓异境~粪作猎手挑战神作 第二季 / Shangri-La Frontier S2 [43] [1080p] [简日内嵌] [2024年10月番]")
+ parse("[獵戶壓制部] 香格里拉·開拓異境~糞作獵手挑戰神作 第二季 / Shangri-La Frontier S2 [43] [1080p] [簡日內嵌] [2024年10月番]")
assertEquals("43..43", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11418,7 +11418,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689343_LoliHouse_Mahoutsukai_no_Yakusoku___06_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 魔法使的约定 / Mahoutsukai no Yakusoku - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 魔法使的約定 / Mahoutsukai no Yakusoku - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11431,7 +11431,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689342_LoliHouse_Botsuraku_Yotei_no_Kizoku_dakedo_Hima_Datta_kara_Mahou_wo_Kiwametemita___06_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 虽然我是注定没落的贵族,闲来无事只好来深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 雖然我是註定沒落的貴族,閒來無事只好來深究魔法 / Botsuraku Yotei no Kizoku dakedo, Hima Datta kara Mahou wo Kiwametemita - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11455,7 +11455,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689340_1_Kusuriya_no_Hitorigoto_29_1080P_MP4_GB_JP`() {
kotlin.run {
val r =
- parse("[漫猫字幕社&猫恋汉化组][1月新番][药屋少女的呢喃][Kusuriya no Hitorigoto][29][1080P][MP4][GB&JP][简日双语]")
+ parse("[漫貓字幕社&貓戀漢化組][1月新番][藥屋少女的呢喃][Kusuriya no Hitorigoto][29][1080P][MP4][GB&JP][簡日雙語]")
assertEquals("29..29", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11510,7 +11510,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689335_Crayonshinchan_1270_2025_02_08_AVC_1080P_GB_JP_MP4`() {
kotlin.run {
- val r = parse("[梦蓝字幕组]Crayonshinchan 蜡笔小新[1270][2025.02.08][AVC][1080P][GB_JP][MP4]")
+ val r = parse("[夢藍字幕組]Crayonshinchan 蠟筆小新[1270][2025.02.08][AVC][1080P][GB_JP][MP4]")
assertEquals("1270..1270", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11521,7 +11521,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689334_Crayonshinchan_1269_2025_02_01_AVC_1080P_GB_JP_MP4`() {
kotlin.run {
- val r = parse("[梦蓝字幕组]Crayonshinchan 蜡笔小新[1269][2025.02.01][AVC][1080P][GB_JP][MP4]")
+ val r = parse("[夢藍字幕組]Crayonshinchan 蠟筆小新[1269][2025.02.01][AVC][1080P][GB_JP][MP4]")
assertEquals("1269..1269", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11532,7 +11532,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689333_New_Doraemon_A_848_2025_02_01_AVC_1080P_GB_JP_MP4`() {
kotlin.run {
- val r = parse("[梦蓝字幕组]New Doraemon 哆啦A梦新番[848][2025.02.01][AVC][1080P][GB_JP][MP4]")
+ val r = parse("[夢藍字幕組]New Doraemon 哆啦A夢新番[848][2025.02.01][AVC][1080P][GB_JP][MP4]")
assertEquals("848..848", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11545,7 +11545,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689332_LoliHouse_Around_40_Otoko_no_Isekai_Tsuuhan___04_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 中年男的异世界网购生活 / Around 40 Otoko no Isekai Tsuuhan - 04 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 中年男的異世界網購生活 / Around 40 Otoko no Isekai Tsuuhan - 04 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11558,7 +11558,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
fun `689331_LoliHouse_Sararyman_ga_Isekai_ni_Ittara_Shitennou_ni_Natta_Hanashi___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 平凡上班族到异世界当上了四天王的故事 / Sararyman ga Isekai ni Ittara Shitennou ni Natta Hanashi - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 平凡上班族到異世界當上了四天王的故事 / Sararyman ga Isekai ni Ittara Shitennou ni Natta Hanashi - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11569,7 +11569,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
@Test
public fun `689330_28_1080p`() {
kotlin.run {
- val r = parse("[萌樱字幕组] 药屋少女的呢喃 [28][1080p][简繁日内封]")
+ val r = parse("[萌櫻字幕組] 藥屋少女的呢喃 [28][1080p][簡繁日內封]")
assertEquals("28..28", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11581,7 +11581,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689329_Chibi_Maruko_chan_II_1466_2025_02_09_GB_JP_1080P_MP4`() {
kotlin.run {
val r =
- parse("[夜莺家族][樱桃小丸子第二期(Chibi Maruko-chan II)][1466]富子想赢躲避球比赛&小丸子擅长安慰他人[2025.02.09][GB_JP][1080P][MP4]")
+ parse("[夜鶯家族][櫻桃小丸子第二期(Chibi Maruko-chan II)][1466]富子想贏躲避球比賽&小丸子擅長安慰他人[2025.02.09][GB_JP][1080P][MP4]")
assertEquals("1466..1466", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11593,7 +11593,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689325_VCB_Studio_FLOPS_LOVE_FLOPS_Renai_Flops_10_bit_1080p_HEVC_BDRip_Fin`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&VCB-Studio] 恋爱FLOPS / LOVE FLOPS / Renai Flops / 恋愛フロップス 10-bit 1080p HEVC BDRip [Fin]")
+ parse("[喵萌奶茶屋&VCB-Studio] 戀愛FLOPS / LOVE FLOPS / Renai Flops / 戀愛フロップス 10-bit 1080p HEVC BDRip [Fin]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11605,7 +11605,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689324_LoliHouse_Kinomi_Master___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 最弱技能《果实大师》 ~关于能无限食用技能果实(吃了就会死)这件事~ / Kinomi Master - 07 [WebRip 1080p HEVC-10bit AAC][无字幕]")
+ parse("[LoliHouse] 最弱技能《果實大師》 ~關於能無限食用技能果實(喫了就會死)這件事~ / Kinomi Master - 07 [WebRip 1080p HEVC-10bit AAC][無字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11617,7 +11617,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689323_LoliHouse_Amagami_san_Chi_no_Enmusubi___18_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 结缘甘神神社 / Amagami-san Chi no Enmusubi - 18 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[LoliHouse] 結緣甘神神社 / Amagami-san Chi no Enmusubi - 18 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -11629,7 +11629,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689322_S___07_AMZN_WebRip_AI2160p_HEVC_10bit_E_AC_3`() {
kotlin.run {
val r =
- parse("[新沸羊羊制作] S级怪兽《贝希摩斯》被误认成小猫,成为精灵女孩的骑士(宠物)一起生活 - 07 [AMZN WebRip AI2160p HEVC-10bit E-AC-3][官方简繁内封字幕]")
+ parse("[新沸羊羊製作] S級怪獸《貝希摩斯》被誤認成小貓,成爲精靈女孩的騎士(寵物)一起生活 - 07 [AMZN WebRip AI2160p HEVC-10bit E-AC-3][官方簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -11641,7 +11641,7 @@ public class PatternTitleParserTestRecent202503 : PatternBasedTitleParserTestSui
public fun `689321_ANi_Hana_wa_Saku_Shura_no_Gotoku___06_1080P_Baha_WEB_DL_AAC_AVC_CHT_MP4`() {
kotlin.run {
val r =
- parse("[搬運][ANi] Hana wa Saku Shura no Gotoku / 群花綻放、彷如修羅 - 06 [1080P][Baha][WEB-DL][AAC AVC][CHT][MP4]")
+ parse("[搬運][ANi] Hana wa Saku Shura no Gotoku / 羣花綻放、彷如修羅 - 06 [1080P][Baha][WEB-DL][AAC AVC][CHT][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
diff --git "a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\345\211\247\345\234\272\347\211\210 \347\264\253\347\275\227\345\205\260\346\260\270\346\201\222\350\212\261\345\233\255.kt" "b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\345\211\247\345\234\272\347\211\210 \347\264\253\347\275\227\345\205\260\346\260\270\346\201\222\350\212\261\345\233\255.kt"
index e400f82da..8f15b5d9d 100644
--- "a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\345\211\247\345\234\272\347\211\210 \347\264\253\347\275\227\345\205\260\346\260\270\346\201\222\350\212\261\345\233\255.kt"
+++ "b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\345\211\247\345\234\272\347\211\210 \347\264\253\347\275\227\345\205\260\346\260\270\346\201\222\350\212\261\345\233\255.kt"
@@ -27,7 +27,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
fun `651397_VCB_Studio_Gekijouban_Violet_Evergarden_10_bit_2160p_1080p_HEVC_BDRip_MOVIE`() {
kotlin.run {
val r =
- parse("[VCB-Studio] 剧场版 紫罗兰永恒花园 / Gekijouban Violet Evergarden 10-bit 2160p/1080p HEVC BDRip [MOVIE]")
+ parse("[VCB-Studio] 劇場版 紫羅蘭永恆花園 / Gekijouban Violet Evergarden 10-bit 2160p/1080p HEVC BDRip [MOVIE]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -38,7 +38,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
@Test
public fun `615844_Violet_Evergarden_the_Movie_4K_SDR`() {
kotlin.run {
- val r = parse("[云光字幕组]剧场版 紫罗兰永恒花园 Violet Evergarden the Movie [简体双语][4K SDR]招募时轴翻译")
+ val r = parse("[雲光字幕組]劇場版 紫羅蘭永恆花園 Violet Evergarden the Movie [簡體雙語][4K SDR]招募時軸翻譯")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -49,7 +49,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
@Test
public fun `588811_Violet_Evergarden_The_Movie_BDrip_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【剧场版紫罗兰永恒花园 Violet Evergarden The Movie】【BDrip】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【劇場版紫羅蘭永恆花園 Violet Evergarden The Movie】【BDrip】【GB_MP4】【1280X720】")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -60,7 +60,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
@Test
public fun `588810_Violet_Evergarden_The_Movie_BDrip_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【剧场版紫罗兰永恒花园 Violet Evergarden The Movie】【BDrip】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【劇場版紫羅蘭永恆花園 Violet Evergarden The Movie】【BDrip】【GB_MP4】【1920X1080】")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -72,7 +72,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
public fun `587366_Violet_Evergarden_Eien_to_Jidou_Shuki_Ningyou_BDrip_GB_MP4_1920X1080`() {
kotlin.run {
val r =
- parse("【幻樱字幕组】【剧场版】【紫罗兰永恒花园外传:永远与自动手记人偶 Violet Evergarden Eien to Jidou Shuki Ningyou】【BDrip】【GB_MP4】【1920X1080】")
+ parse("【幻櫻字幕組】【劇場版】【紫羅蘭永恆花園外傳:永遠與自動手記人偶 Violet Evergarden Eien to Jidou Shuki Ningyou】【BDrip】【GB_MP4】【1920X1080】")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -84,7 +84,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
public fun `587364_Violet_Evergarden_Eien_to_Jidou_Shuki_Ningyou_BDrip_GB_MP4_1280X720`() {
kotlin.run {
val r =
- parse("【幻樱字幕组】【剧场版】【紫罗兰永恒花园外传:永远与自动手记人偶 Violet Evergarden Eien to Jidou Shuki Ningyou】【BDrip】【GB_MP4】【1280X720】")
+ parse("【幻櫻字幕組】【劇場版】【紫羅蘭永恆花園外傳:永遠與自動手記人偶 Violet Evergarden Eien to Jidou Shuki Ningyou】【BDrip】【GB_MP4】【1280X720】")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -96,7 +96,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
public fun `585468_subbers_project_Violet_Evergarden_the_Movie_BDRip_2K_SDR_rev2`() {
kotlin.run {
val r =
- parse("[.subbers project] 剧场版 紫罗兰永恒花园 / 劇場版 ヴァイオレット・エヴァーガーデン / Violet Evergarden the Movie [BDRip][2K SDR][简繁日字幕内封][rev2]")
+ parse("[.subbers project] 劇場版 紫羅蘭永恆花園 / 劇場版 ヴァイオレット・エヴァーガーデン / Violet Evergarden the Movie [BDRip][2K SDR][簡繁日字幕內封][rev2]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -108,7 +108,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
public fun `583084_subbers_project_Violet_Evergarden_the_Movie_BDRip_4K_HDR_2K_SDR_BD`() {
kotlin.run {
val r =
- parse("[.subbers project] 剧场版 紫罗兰永恒花园 / 劇場版 ヴァイオレット・エヴァーガーデン / Violet Evergarden the Movie [BDRip][4K HDR+2K SDR][简繁日字幕内封](附BD及剧场特典扫图、相关音乐、小说翻译等)")
+ parse("[.subbers project] 劇場版 紫羅蘭永恆花園 / 劇場版 ヴァイオレット・エヴァーガーデン / Violet Evergarden the Movie [BDRip][4K HDR+2K SDR][簡繁日字幕內封](附BD及劇場特典掃圖、相關音樂、小說翻譯等)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -120,7 +120,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
public fun `582838_Violet_Evergarden_the_Movie_BDRip_Full_HD_HEVC`() {
kotlin.run {
val r =
- parse("【千夏字幕组】【剧场版 紫罗兰永恒花园/薇尔莉特·伊芙嘉登_Violet Evergarden the Movie】[剧场版][BDRip_Full HD_HEVC][简繁内封]")
+ parse("【千夏字幕組】【劇場版 紫羅蘭永恆花園/薇爾莉特·伊芙嘉登_Violet Evergarden the Movie】[劇場版][BDRip_Full HD_HEVC][簡繁內封]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -132,7 +132,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
public fun `582836_Violet_Evergarden_the_Movie_BDRip_Full_HD_AVC`() {
kotlin.run {
val r =
- parse("【千夏字幕组】【剧场版 紫罗兰永恒花园/薇尔莉特·伊芙嘉登_Violet Evergarden the Movie】[剧场版][BDRip_Full HD_AVC][简体]")
+ parse("【千夏字幕組】【劇場版 紫羅蘭永恆花園/薇爾莉特·伊芙嘉登_Violet Evergarden the Movie】[劇場版][BDRip_Full HD_AVC][簡體]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -144,7 +144,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
public fun `582144_DBD_Raws_Violet_Evergarden_The_Movie_1080P_BDRip_HEVC_10bit_FLAC_MKV`() {
kotlin.run {
val r =
- parse("[DBD-Raws][剧场版 紫罗兰永恒花园/Violet Evergarden The Movie/劇場版 ヴァイオレット・エヴァーガーデ][1080P][BDRip][HEVC-10bit][FLAC][MKV]")
+ parse("[DBD-Raws][劇場版 紫羅蘭永恆花園/Violet Evergarden The Movie/劇場版 ヴァイオレット・エヴァーガーデ][1080P][BDRip][HEVC-10bit][FLAC][MKV]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -157,7 +157,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
fun `582130_DBD_Raws_4K_HDR_Violet_Evergarden_The_Movie_2160P_BDRip_HEVC_10bit_FLAC_MKV`() {
kotlin.run {
val r =
- parse("[DBD-Raws][4K_HDR][剧场版 紫罗兰永恒花园/Violet Evergarden The Movie/劇場版 ヴァイオレット・エヴァーガーデ][2160P][BDRip][HEVC-10bit][FLAC][MKV]")
+ parse("[DBD-Raws][4K_HDR][劇場版 紫羅蘭永恆花園/Violet Evergarden The Movie/劇場版 ヴァイオレット・エヴァーガーデ][2160P][BDRip][HEVC-10bit][FLAC][MKV]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -168,7 +168,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
@Test
public fun `582129_Violet_Evergarden_the_Movie_1080P_GB_BDrip`() {
kotlin.run {
- val r = parse("【幻之字幕组】剧场版 紫罗兰永恒花园[Violet Evergarden the Movie] [1080P][GB][BDrip]")
+ val r = parse("【幻之字幕組】劇場版 紫羅蘭永恆花園[Violet Evergarden the Movie] [1080P][GB][BDrip]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -180,7 +180,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
public fun `581912_subbers_project_Violet_Evergarden_the_Movie_BDRip_FullHD`() {
kotlin.run {
val r =
- parse("[.subbers project] 剧场版 紫罗兰永恒花园 / 劇場版 ヴァイオレット・エヴァーガーデン / Violet Evergarden the Movie [BDRip][FullHD][简体中文字幕内嵌]")
+ parse("[.subbers project] 劇場版 紫羅蘭永恆花園 / 劇場版 ヴァイオレット・エヴァーガーデン / Violet Evergarden the Movie [BDRip][FullHD][簡體中文字幕內嵌]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -192,7 +192,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
public fun `571322_WEBRip_MOVIE_Violet_Evergarden_1920x804_x_264_AAC_MP4`() {
kotlin.run {
val r =
- parse("[森之屋动画组][WEBRip][剧场版 紫罗兰永恒花园 / 劇場版ヴァイオレット・エヴァーガーデン / MOVIE Violet Evergarden][1920x804][x.264 AAC MP4][俄语音轨][内嵌简中]")
+ parse("[森之屋動畫組][WEBRip][劇場版 紫羅蘭永恆花園 / 劇場版ヴァイオレット・エヴァーガーデン / MOVIE Violet Evergarden][1920x804][x.264 AAC MP4][俄語音軌][內嵌簡中]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -204,7 +204,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
public fun `571317_WEBRip_MOVIE_Violet_Evergarden_1920x804_x_264_AAC_MP4`() {
kotlin.run {
val r =
- parse("[森之屋动画组][WEBRip][剧场版 紫罗兰永恒花园 / 劇場版ヴァイオレット・エヴァーガーデン / MOVIE Violet Evergarden][1920x804][x.264 AAC MP4][日语剧场录音音轨(先行版)][内嵌简中]")
+ parse("[森之屋動畫組][WEBRip][劇場版 紫羅蘭永恆花園 / 劇場版ヴァイオレット・エヴァーガーデン / MOVIE Violet Evergarden][1920x804][x.264 AAC MP4][日語劇場錄音音軌(先行版)][內嵌簡中]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -216,7 +216,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
public fun `549455_MCE_Violet_Evergarden_2020_Trial_Version_1080P_x264_AAC`() {
kotlin.run {
val r =
- parse("【MCE汉化组】[剧场版 紫罗兰永恒花园 冒头影像 / Violet Evergarden 2020][Trial Version][简体][1080P][x264 AAC]")
+ parse("【MCE漢化組】[劇場版 紫羅蘭永恆花園 冒頭影像 / Violet Evergarden 2020][Trial Version][簡體][1080P][x264 AAC]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -229,7 +229,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
fun `537654_Violet_Evergarden_Side_Story__Eternity_and_Auto_Memory_Doll__BDRip_1080p_HEVC`() {
kotlin.run {
val r =
- parse("【千夏字幕组】【紫罗兰永恒花园·外传 —永远与自动手记人偶—_Violet Evergarden Side Story -Eternity and Auto Memory Doll-】[剧场版][BDRip_1080p_HEVC][简繁外挂]")
+ parse("【千夏字幕組】【紫羅蘭永恆花園·外傳 —永遠與自動手記人偶—_Violet Evergarden Side Story -Eternity and Auto Memory Doll-】[劇場版][BDRip_1080p_HEVC][簡繁外掛]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -242,7 +242,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
fun `537653_Violet_Evergarden_Side_Story__Eternity_and_Auto_Memory_Doll__BDRip_1080p_AVC`() {
kotlin.run {
val r =
- parse("【千夏字幕组】【紫罗兰永恒花园·外传 —永远与自动手记人偶—_Violet Evergarden Side Story -Eternity and Auto Memory Doll-】[剧场版][BDRip_1080p_AVC][简体]")
+ parse("【千夏字幕組】【紫羅蘭永恆花園·外傳 —永遠與自動手記人偶—_Violet Evergarden Side Story -Eternity and Auto Memory Doll-】[劇場版][BDRip_1080p_AVC][簡體]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -255,7 +255,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
fun `537305_Moozzi2_Violet_Evergarden_Eien_to_Jidou_Shuki_Ningyou_BD_1920x804_x264_10Bit_4Audio`() {
kotlin.run {
val r =
- parse("[Moozzi2] 劇場版 紫羅蘭永恒花園外傳:永遠與自動手記人偶 Violet Evergarden Eien to Jidou Shuki Ningyou (BD 1920x804 x264-10Bit 4Audio)")
+ parse("[Moozzi2] 劇場版 紫羅蘭永恆花園外傳:永遠與自動手記人偶 Violet Evergarden Eien to Jidou Shuki Ningyou (BD 1920x804 x264-10Bit 4Audio)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -268,7 +268,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
fun `537233_Violet_Evergarden_Gaiden_Eien_to_Jidou_Shuki_Ningyou_1080P_CHT_JPN_BDrip_AVC_AAC_YUV420P8`() {
kotlin.run {
val r =
- parse("【幻之字幕组】劇場版 紫羅蘭永恒花園外傳:永遠與自動手記人偶 Violet Evergarden Gaiden: Eien to Jidou Shuki Ningyou [1080P][雙語][CHT&JPN][BDrip][AVC AAC YUV420P8]")
+ parse("【幻之字幕組】劇場版 紫羅蘭永恆花園外傳:永遠與自動手記人偶 Violet Evergarden Gaiden: Eien to Jidou Shuki Ningyou [1080P][雙語][CHT&JPN][BDrip][AVC AAC YUV420P8]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -281,7 +281,7 @@ public class `PatternTitleParserTest剧场版 紫罗兰永恒花园` : PatternBa
fun `537232_Violet_Evergarden_Gaiden_Eien_to_Jidou_Shuki_Ningyou_1080P_CHS_JPN_BDrip_AVC_AAC_YUV420P8`() {
kotlin.run {
val r =
- parse("【幻之字幕组】剧场版 紫罗兰永恒花园外传:永远与自动手记人偶 Violet Evergarden Gaiden: Eien to Jidou Shuki Ningyou [1080P][双语][CHS&JPN][BDrip][AVC AAC YUV420P8]")
+ parse("【幻之字幕組】劇場版 紫羅蘭永恆花園外傳:永遠與自動手記人偶 Violet Evergarden Gaiden: Eien to Jidou Shuki Ningyou [1080P][雙語][CHS&JPN][BDrip][AVC AAC YUV420P8]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
diff --git "a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\345\220\271\345\223\215\345\220\247_\344\270\212\344\275\216\351\237\263\345\217\267.kt" "b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\345\220\271\345\223\215\345\220\247_\344\270\212\344\275\216\351\237\263\345\217\267.kt"
index 41cbc02cf..5466c9f0c 100644
--- "a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\345\220\271\345\223\215\345\220\247_\344\270\212\344\275\216\351\237\263\345\217\267.kt"
+++ "b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\345\220\271\345\223\215\345\220\247_\344\270\212\344\275\216\351\237\263\345\217\267.kt"
@@ -47,7 +47,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `670276_Hibike_21_Euphonium_3_07_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [07][WebRip][HEVC_AAC][简繁日内封][招募时轴]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [07][WebRip][HEVC_AAC][簡繁日內封][招募時軸]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -58,7 +58,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `670275_Hibike_21_Euphonium_3_07_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [07][WebRip][HEVC_AAC][简日内嵌][招募时轴]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [07][WebRip][HEVC_AAC][簡日內嵌][招募時軸]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -69,7 +69,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `670274_Hibike_21_Euphonium_3_07_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [07][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [07][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -80,7 +80,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `670253_4_Hibike_21_Euphonium_S3_06_GB_1080P_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 吹响吧!上低音号 第三季/Hibike! Euphonium S3 第06话 GB 1080P MP4(字幕社招人内详)")
+ val r = parse("【極影字幕社】★4月新番 吹響吧!上低音號 第三季/Hibike! Euphonium S3 第06話 GB 1080P MP4(字幕社招人內詳)")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -91,7 +91,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `670252_4_Hibike_21_Euphonium_S3_06_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 吹响吧!上低音号 第三季/Hibike! Euphonium S3 第06话 GB 720P MP4(字幕社招人内详)")
+ val r = parse("【極影字幕社】★4月新番 吹響吧!上低音號 第三季/Hibike! Euphonium S3 第06話 GB 720P MP4(字幕社招人內詳)")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -102,7 +102,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `670215_3_Hibike_21_Euphonium_S3_06_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]吹响吧!上低音号 3 Hibike! Euphonium S3 [06][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]吹響吧!上低音號 3 Hibike! Euphonium S3 [06][簡體雙語][1080p]招募翻譯")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -114,7 +114,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `670099_ANi___07_1080P_Bilibili_WEB_DL_AAC_AVC_CHT_CHS_MP4`() {
kotlin.run {
val r =
- parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳台地區) - 07 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳臺地區) - 07 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -126,7 +126,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `669963_Sub_Hibike_21_Euphonium_3_06_1080P_AVC_AAC_WebRip`() {
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3][06][1080P][AVC AAC][繁日双语][WebRip]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3][06][1080P][AVC AAC][繁日雙語][WebRip]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -138,7 +138,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `669962_Sub_Hibike_21_Euphonium_3_06_1080P_AVC_AAC_WebRip`() {
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹响吧!上低音号 第三季 / Hibike! Euphonium 3][06][1080P][AVC AAC][简日双语][WebRip]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3][06][1080P][AVC AAC][簡日雙語][WebRip]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -171,7 +171,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `669910_4_Hibike_21_Euphonium_S3_06_1080P_MP4`() {
kotlin.run {
- val r = parse("[漫猫字幕社][4月新番][吹响吧!上低音号 第三季][Hibike! Euphonium S3][06][1080P][MP4][简日双语]")
+ val r = parse("[漫貓字幕社][4月新番][吹響吧!上低音號 第三季][Hibike! Euphonium S3][06][1080P][MP4][簡日雙語]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -204,7 +204,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `669901_4_Hibike_21_Euphonium_S3_05_1080P_MP4`() {
kotlin.run {
- val r = parse("[漫猫字幕社][4月新番][吹响吧!上低音号 第三季][Hibike! Euphonium S3][05][1080P][MP4][简日双语]")
+ val r = parse("[漫貓字幕社][4月新番][吹響吧!上低音號 第三季][Hibike! Euphonium S3][05][1080P][MP4][簡日雙語]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -226,7 +226,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `669842_3_Hibike_21_Euphonium_3_06_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 吹响吧!上低音号 3 / Hibike! Euphonium 3 [06][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 吹響吧!上低音號 3 / Hibike! Euphonium 3 [06][1080p][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -237,7 +237,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `669841_3_Hibike_21_Euphonium_3_06_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 吹响吧!上低音号 3 / Hibike! Euphonium 3 [06][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 吹響吧!上低音號 3 / Hibike! Euphonium 3 [06][1080p][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -249,7 +249,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `669835_Sub_Hibike_21_Euphonium_3___06_WebRip_2160P_HEVC_AAC_ASSx3`() {
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 - 06 [WebRip 2160P HEVC AAC][简繁日内封 ASSx3]")
+ parse("[萌櫻字幕組&霜庭雲花Sub] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 06 [WebRip 2160P HEVC AAC][簡繁日內封 ASSx3]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -261,7 +261,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `669834_Sub_Hibike_21_Euphonium_3___06_WebRip_1080P_HEVC_AAC_ASSx3`() {
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹响吧!上低音号 第三季 / Hibike! Euphonium 3 - 06 [WebRip 1080P HEVC AAC][简繁日内封 ASSx3]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 06 [WebRip 1080P HEVC AAC][簡繁日內封 ASSx3]")
assertEquals("03+06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -272,7 +272,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `669692_Hibike_21_Euphonium_3_05_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [06][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [06][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -283,7 +283,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `669691_Hibike_21_Euphonium_3_06_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [06][WebRip][HEVC_AAC][简日内嵌][招募时轴]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [06][WebRip][HEVC_AAC][簡日內嵌][招募時軸]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -294,7 +294,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `669690_Hibike_21_Euphonium_3_06_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [06][WebRip][HEVC_AAC][简繁日内封][招募时轴]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [06][WebRip][HEVC_AAC][簡繁日內封][招募時軸]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -306,7 +306,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `669685_Sub_Hibike_21_Euphonium_3_05_1080P_AVC_AAC_WebRip`() {
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3][05][1080P][AVC AAC][繁日双语][WebRip]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3][05][1080P][AVC AAC][繁日雙語][WebRip]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -318,7 +318,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `669684_Sub_Hibike_21_Euphonium_3_05_1080P_AVC_AAC_WebRip`() {
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹响吧!上低音号 第三季 / Hibike! Euphonium 3][05][1080P][AVC AAC][简日双语][WebRip]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3][05][1080P][AVC AAC][簡日雙語][WebRip]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -330,7 +330,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `669433_LoliHouse_3_Hibike_21_Euphonium_3___05_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 吹响吧!上低音号 3 / Hibike! Euphonium 3 - 05 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 吹響吧!上低音號 3 / Hibike! Euphonium 3 - 05 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -352,7 +352,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `669431_3_Hibike_21_Euphonium_3_05_1080p_AVC`() {
kotlin.run {
- val r = parse("[千夏字幕组][吹响吧!上低音号 3_Hibike! Euphonium 3][第05话][1080p_AVC][简体]")
+ val r = parse("[千夏字幕組][吹響吧!上低音號 3_Hibike! Euphonium 3][第05話][1080p_AVC][簡體]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -364,7 +364,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `669404_ANi___06_1080P_Bilibili_WEB_DL_AAC_AVC_CHT_CHS_MP4`() {
kotlin.run {
val r =
- parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳台地區) - 06 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳臺地區) - 06 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -375,7 +375,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `669258_3_Hibike_21_Euphonium_S3_05_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]吹响吧!上低音号 3 Hibike! Euphonium S3 [05][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]吹響吧!上低音號 3 Hibike! Euphonium S3 [05][簡體雙語][1080p]招募翻譯")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -386,7 +386,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `669239_4_Hibike_21_Euphonium_S3_05_GB_1080P_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 吹响吧!上低音号 第三季/Hibike! Euphonium S3 第05话 GB 1080P MP4(字幕社招人内详)")
+ val r = parse("【極影字幕社】★4月新番 吹響吧!上低音號 第三季/Hibike! Euphonium S3 第05話 GB 1080P MP4(字幕社招人內詳)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -397,7 +397,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `669238_4_Hibike_21_Euphonium_S3_05_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 吹响吧!上低音号 第三季/Hibike! Euphonium S3 第05话 GB 720P MP4(字幕社招人内详)")
+ val r = parse("【極影字幕社】★4月新番 吹響吧!上低音號 第三季/Hibike! Euphonium S3 第05話 GB 720P MP4(字幕社招人內詳)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -419,7 +419,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `669186_4_Hibike_21_Euphonium_S3_05_1080P_MP4`() {
kotlin.run {
- val r = parse("[漫猫字幕社][4月新番][吹响吧!上低音号 第三季][Hibike! Euphonium S3][05][1080P][MP4][简日双语]")
+ val r = parse("[漫貓字幕社][4月新番][吹響吧!上低音號 第三季][Hibike! Euphonium S3][05][1080P][MP4][簡日雙語]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -441,7 +441,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `669137_3_Hibike_21_Euphonium_3_05_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 吹响吧!上低音号 3 / Hibike! Euphonium 3 [05][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 吹響吧!上低音號 3 / Hibike! Euphonium 3 [05][1080p][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -452,7 +452,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `669135_3_Hibike_21_Euphonium_3_05_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 吹响吧!上低音号 3 / Hibike! Euphonium 3 [05][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 吹響吧!上低音號 3 / Hibike! Euphonium 3 [05][1080p][簡繁內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -463,7 +463,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668979_Hibike_21_Euphonium_3_05_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [05][WebRip][HEVC_AAC][简繁日内封][招募时轴]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [05][WebRip][HEVC_AAC][簡繁日內封][招募時軸]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -474,7 +474,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668978_Hibike_21_Euphonium_3_05_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [05][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [05][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -485,7 +485,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668971_Hibike_21_Euphonium_3_05_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [05][WebRip][HEVC_AAC][简日内嵌][招募时轴]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [05][WebRip][HEVC_AAC][簡日內嵌][招募時軸]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -496,7 +496,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668898_3_Hibike_21_Euphonium_3_04_1080p_AVC`() {
kotlin.run {
- val r = parse("[千夏字幕组][吹响吧!上低音号 3_Hibike! Euphonium 3][第04话][1080p_AVC][简体]")
+ val r = parse("[千夏字幕組][吹響吧!上低音號 3_Hibike! Euphonium 3][第04話][1080p_AVC][簡體]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -519,7 +519,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `668896_LoliHouse_3_Hibike_21_Euphonium_3___04_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 吹响吧!上低音号 3 / Hibike! Euphonium 3 - 04 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 吹響吧!上低音號 3 / Hibike! Euphonium 3 - 04 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -552,7 +552,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668882_3_Hibike_21_Euphonium_S3_04_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]吹响吧!上低音号 3 Hibike! Euphonium S3 [04][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]吹響吧!上低音號 3 Hibike! Euphonium S3 [04][簡體雙語][1080p]招募翻譯")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -564,7 +564,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `668878_ANi___05_1080P_Bilibili_WEB_DL_AAC_AVC_CHT_CHS_MP4`() {
kotlin.run {
val r =
- parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳台地區) - 05 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳臺地區) - 05 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -576,7 +576,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `668743_Sub_Hibike_21_Euphonium_3___04_WebRip_2160P_HEVC_AAC_ASSx3`() {
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 - 04 [WebRip 2160P HEVC AAC][简繁日内封 ASSx3]")
+ parse("[萌櫻字幕組&霜庭雲花Sub] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 04 [WebRip 2160P HEVC AAC][簡繁日內封 ASSx3]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -588,7 +588,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `668742_Sub_Hibike_21_Euphonium_3___04_WebRip_1080P_HEVC_AAC_ASSx3`() {
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹响吧!上低音号 第三季 / Hibike! Euphonium 3 - 04 [WebRip 1080P HEVC AAC][简繁日内封 ASSx3]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 04 [WebRip 1080P HEVC AAC][簡繁日內封 ASSx3]")
assertEquals("03+04", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -599,7 +599,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668694_4_Hibike_21_Euphonium_S3_04_GB_1080P_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 吹响吧!上低音号 第三季/Hibike! Euphonium S3 第04话 GB 1080P MP4(字幕社招人内详)")
+ val r = parse("【極影字幕社】★4月新番 吹響吧!上低音號 第三季/Hibike! Euphonium S3 第04話 GB 1080P MP4(字幕社招人內詳)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -610,7 +610,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668693_4_Hibike_21_Euphonium_S3_04_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 吹响吧!上低音号 第三季/Hibike! Euphonium S3 第04话 GB 720P MP4(字幕社招人内详)")
+ val r = parse("【極影字幕社】★4月新番 吹響吧!上低音號 第三季/Hibike! Euphonium S3 第04話 GB 720P MP4(字幕社招人內詳)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -632,7 +632,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668550_3_Hibike_21_Euphonium_3_04_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 吹响吧!上低音号 3 / Hibike! Euphonium 3 [04][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 吹響吧!上低音號 3 / Hibike! Euphonium 3 [04][1080p][簡體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -654,7 +654,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668548_4_Hibike_21_Euphonium_S3_04_1080P_MP4`() {
kotlin.run {
- val r = parse("[漫猫字幕社][4月新番][吹响吧!上低音号 第三季][Hibike! Euphonium S3][04][1080P][MP4][简日双语]")
+ val r = parse("[漫貓字幕社][4月新番][吹響吧!上低音號 第三季][Hibike! Euphonium S3][04][1080P][MP4][簡日雙語]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -665,7 +665,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668547_3_Hibike_21_Euphonium_3_04_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 吹响吧!上低音号 3 / Hibike! Euphonium 3 [04][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 吹響吧!上低音號 3 / Hibike! Euphonium 3 [04][1080p][簡繁內封]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -676,7 +676,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668465_Hibike_21_Euphonium_3_04_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [04][WebRip][HEVC_AAC][简繁日内封][招募时轴]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [04][WebRip][HEVC_AAC][簡繁日內封][招募時軸]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -687,7 +687,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668464_Hibike_21_Euphonium_3_04_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [04][WebRip][HEVC_AAC][简日内嵌][招募时轴]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [04][WebRip][HEVC_AAC][簡日內嵌][招募時軸]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -698,7 +698,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668463_Hibike_21_Euphonium_3_04_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [04][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [04][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -732,7 +732,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `668361_ANi___04_1080P_Bilibili_WEB_DL_AAC_AVC_CHT_CHS_MP4`() {
kotlin.run {
val r =
- parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳台地區) - 04 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳臺地區) - 04 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -743,7 +743,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668337_4_Hibike_21_Euphonium_S3_03_GB_1080P_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 吹响吧!上低音号 第三季/Hibike! Euphonium S3 第03话 GB 1080P MP4(字幕社招人内详)")
+ val r = parse("【極影字幕社】★4月新番 吹響吧!上低音號 第三季/Hibike! Euphonium S3 第03話 GB 1080P MP4(字幕社招人內詳)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -754,7 +754,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668336_4_Hibike_21_Euphonium_S3_03_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 吹响吧!上低音号 第三季/Hibike! Euphonium S3 第03话 GB 720P MP4(字幕社招人内详)")
+ val r = parse("【極影字幕社】★4月新番 吹響吧!上低音號 第三季/Hibike! Euphonium S3 第03話 GB 720P MP4(字幕社招人內詳)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -765,7 +765,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668334_3_Hibike_21_Euphonium_3_03_1080p_AVC`() {
kotlin.run {
- val r = parse("[千夏字幕组][吹响吧!上低音号 3_Hibike! Euphonium 3][第03话][1080p_AVC][简体]")
+ val r = parse("[千夏字幕組][吹響吧!上低音號 3_Hibike! Euphonium 3][第03話][1080p_AVC][簡體]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -788,7 +788,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `668332_LoliHouse_3_Hibike_21_Euphonium_3___03_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 吹响吧!上低音号 3 / Hibike! Euphonium 3 - 03 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 吹響吧!上低音號 3 / Hibike! Euphonium 3 - 03 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -800,7 +800,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `668316_Sub_Hibike_21_Euphonium_3___03_WebRip_2160P_HEVC_AAC_ASSx3`() {
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 - 03 [WebRip 2160P HEVC AAC][简繁日内封 ASSx3]")
+ parse("[萌櫻字幕組&霜庭雲花Sub] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 03 [WebRip 2160P HEVC AAC][簡繁日內封 ASSx3]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -812,7 +812,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `668315_Sub_Hibike_21_Euphonium_3___03_WebRip_1080P_HEVC_AAC_ASSx3`() {
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹响吧!上低音号 第三季 / Hibike! Euphonium 3 - 03 [WebRip 1080P HEVC AAC][简繁日内封 ASSx3]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 03 [WebRip 1080P HEVC AAC][簡繁日內封 ASSx3]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -824,7 +824,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `668309_Sub_Hibike_21_Euphonium_3_03_1080P_AVC_AAC_WebRip`() {
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3][03][1080P][AVC AAC][繁日双语][WebRip]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3][03][1080P][AVC AAC][繁日雙語][WebRip]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -836,7 +836,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `668308_Sub_Hibike_21_Euphonium_3_03_1080P_AVC_AAC_WebRip`() {
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹响吧!上低音号 第三季 / Hibike! Euphonium 3][03][1080P][AVC AAC][简日双语][WebRip]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3][03][1080P][AVC AAC][簡日雙語][WebRip]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -847,7 +847,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668262_3_Hibike_21_Euphonium_S3_03_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]吹响吧!上低音号 3 Hibike! Euphonium S3 [03][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]吹響吧!上低音號 3 Hibike! Euphonium S3 [03][簡體雙語][1080p]招募翻譯")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -891,7 +891,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668159_3_Hibike_21_Euphonium_3_03_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 吹响吧!上低音号 3 / Hibike! Euphonium 3 [03][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 吹響吧!上低音號 3 / Hibike! Euphonium 3 [03][1080p][簡體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -902,7 +902,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668158_3_Hibike_21_Euphonium_3_03_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 吹响吧!上低音号 3 / Hibike! Euphonium 3 [03][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 吹響吧!上低音號 3 / Hibike! Euphonium 3 [03][1080p][簡繁內封]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -924,7 +924,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668150_4_Hibike_21_Euphonium_S3_03_1080P_MP4`() {
kotlin.run {
- val r = parse("[漫猫字幕社][4月新番][吹响吧!上低音号 第三季][Hibike! Euphonium S3][03][1080P][MP4][简日双语]")
+ val r = parse("[漫貓字幕社][4月新番][吹響吧!上低音號 第三季][Hibike! Euphonium S3][03][1080P][MP4][簡日雙語]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -946,7 +946,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668148_4_Hibike_21_Euphonium_S3_02v2_1080P_MP4`() {
kotlin.run {
- val r = parse("[漫猫字幕社][4月新番][吹响吧!上低音号 第三季][Hibike! Euphonium S3][02v2][1080P][MP4][简日双语]")
+ val r = parse("[漫貓字幕社][4月新番][吹響吧!上低音號 第三季][Hibike! Euphonium S3][02v2][1080P][MP4][簡日雙語]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -957,7 +957,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668111_4_Hibike_21_Euphonium_S3_02_GB_1080P_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 吹响吧!上低音号 第三季/Hibike! Euphonium S3 第02话 GB 1080P MP4(字幕社招人内详)")
+ val r = parse("【極影字幕社】★4月新番 吹響吧!上低音號 第三季/Hibike! Euphonium S3 第02話 GB 1080P MP4(字幕社招人內詳)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -968,7 +968,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `668110_4_Hibike_21_Euphonium_S3_02_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 吹响吧!上低音号 第三季/Hibike! Euphonium S3 第02话 GB 720P MP4(字幕社招人内详)")
+ val r = parse("【極影字幕社】★4月新番 吹響吧!上低音號 第三季/Hibike! Euphonium S3 第02話 GB 720P MP4(字幕社招人內詳)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -980,7 +980,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `667913_Hibike_21_Euphonium_3_03v2_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [03v2][WebRip][HEVC_AAC][简繁日内封][招募时轴]")
+ parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [03v2][WebRip][HEVC_AAC][簡繁日內封][招募時軸]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -992,7 +992,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `667912_Hibike_21_Euphonium_3_03v2_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [03v2][WebRip][HEVC_AAC][简日内嵌][招募时轴]")
+ parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [03v2][WebRip][HEVC_AAC][簡日內嵌][招募時軸]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1004,7 +1004,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `667911_Hibike_21_Euphonium_3_03v2_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [03v2][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
+ parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [03v2][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1016,7 +1016,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `667884_Sub_Hibike_21_Euphonium_3___02_WebRip_1080P_HEVC_AAC_ASSx3`() {
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹响吧!上低音号 第三季 / Hibike! Euphonium 3 - 02 [WebRip 1080P HEVC AAC][简繁日内封 ASSx3]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 02 [WebRip 1080P HEVC AAC][簡繁日內封 ASSx3]")
assertEquals("03+02", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1028,7 +1028,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `667849_Sub_Hibike_21_Euphonium_3___02_WebRip_2160P_HEVC_AAC_ASSx3`() {
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 - 02 [WebRip 2160P HEVC AAC][简繁日内封 ASSx3]")
+ parse("[萌櫻字幕組&霜庭雲花Sub] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 02 [WebRip 2160P HEVC AAC][簡繁日內封 ASSx3]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -1040,7 +1040,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `667844_ANi___03_1080P_Bilibili_WEB_DL_AAC_AVC_CHT_CHS_MP4`() {
kotlin.run {
val r =
- parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳台地區) - 03 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳臺地區) - 03 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1051,7 +1051,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `667840_3_Hibike_21_Euphonium_S3_02_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]吹响吧!上低音号 3 Hibike! Euphonium S3 [02][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]吹響吧!上低音號 3 Hibike! Euphonium S3 [02][簡體雙語][1080p]招募翻譯")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1063,7 +1063,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `667775_Sub_Hibike_21_Euphonium_3_02_1080P_AVC_AAC_WebRip`() {
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹响吧!上低音号 第三季 / Hibike! Euphonium 3][02][1080P][AVC AAC][简日双语][WebRip]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3][02][1080P][AVC AAC][簡日雙語][WebRip]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1074,7 +1074,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `667745_4_Hibike_21_Euphonium_S3_02_1080P_MP4`() {
kotlin.run {
- val r = parse("[漫猫字幕社][4月新番][吹响吧!上低音号 第三季][Hibike! Euphonium S3][02][1080P][MP4][简日双语]")
+ val r = parse("[漫貓字幕社][4月新番][吹響吧!上低音號 第三季][Hibike! Euphonium S3][02][1080P][MP4][簡日雙語]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1097,7 +1097,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `667610_LoliHouse_3_Hibike_21_Euphonium_3___02_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 吹响吧!上低音号 3 / Hibike! Euphonium 3 - 02 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 吹響吧!上低音號 3 / Hibike! Euphonium 3 - 02 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1119,7 +1119,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `667608_3_Hibike_21_Euphonium_3_02_1080p_AVC`() {
kotlin.run {
- val r = parse("[千夏字幕组][吹响吧!上低音号 3_Hibike! Euphonium 3][第02话][1080p_AVC][简体]")
+ val r = parse("[千夏字幕組][吹響吧!上低音號 3_Hibike! Euphonium 3][第02話][1080p_AVC][簡體]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1141,7 +1141,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `667517_3_Hibike_21_Euphonium_3_02_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 吹响吧!上低音号 3 / Hibike! Euphonium 3 [02][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 吹響吧!上低音號 3 / Hibike! Euphonium 3 [02][1080p][簡體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1152,7 +1152,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `667516_3_Hibike_21_Euphonium_3_02_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 吹响吧!上低音号 3 / Hibike! Euphonium 3 [02][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 吹響吧!上低音號 3 / Hibike! Euphonium 3 [02][1080p][簡繁內封]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1196,7 +1196,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `667377_4_Hibike_21_Euphonium_S3_01v2_1080P_MP4`() {
kotlin.run {
- val r = parse("[漫猫字幕社][4月新番][吹响吧!上低音号 第三季][Hibike! Euphonium S3][01v2][1080P][MP4][简日双语]")
+ val r = parse("[漫貓字幕社][4月新番][吹響吧!上低音號 第三季][Hibike! Euphonium S3][01v2][1080P][MP4][簡日雙語]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1218,7 +1218,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `667312_4_Hibike_21_Euphonium_S3_01_1080P_MP4`() {
kotlin.run {
- val r = parse("[漫猫字幕社][4月新番][吹响吧!上低音号 第三季][Hibike! Euphonium S3][01][1080P][MP4][简日双语]")
+ val r = parse("[漫貓字幕社][4月新番][吹響吧!上低音號 第三季][Hibike! Euphonium S3][01][1080P][MP4][簡日雙語]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1229,7 +1229,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `667298_Hibike_21_Euphonium_3_02_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [02][WebRip][HEVC_AAC][简日内嵌][招募时轴]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [02][WebRip][HEVC_AAC][簡日內嵌][招募時軸]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1240,7 +1240,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `667297_Hibike_21_Euphonium_3_02_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [02][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [02][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1251,7 +1251,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `667290_4_Hibike_21_Euphonium_S3_01_GB_1080P_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 吹响吧!上低音号 第三季/Hibike! Euphonium S3 第01话 GB 1080P MP4(字幕社招人内详)")
+ val r = parse("【極影字幕社】★4月新番 吹響吧!上低音號 第三季/Hibike! Euphonium S3 第01話 GB 1080P MP4(字幕社招人內詳)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1262,7 +1262,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `667289_4_Hibike_21_Euphonium_S3_01_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 吹响吧!上低音号 第三季/Hibike! Euphonium S3 第01话 GB 720P MP4(字幕社招人内详)")
+ val r = parse("【極影字幕社】★4月新番 吹響吧!上低音號 第三季/Hibike! Euphonium S3 第01話 GB 720P MP4(字幕社招人內詳)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1273,7 +1273,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `667286_Hibike_21_Euphonium_3_02_WebRip_HEVC_AAC`() {
kotlin.run {
- val r = parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [02][WebRip][HEVC_AAC][简繁日内封][招募时轴]")
+ val r = parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [02][WebRip][HEVC_AAC][簡繁日內封][招募時軸]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1285,7 +1285,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `667228_ANi___02_1080P_Bilibili_WEB_DL_AAC_AVC_CHT_CHS_MP4`() {
kotlin.run {
val r =
- parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳台地區) - 02 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳臺地區) - 02 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1296,7 +1296,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `667130_3_Hibike_21_Euphonium_S3_01_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]吹响吧!上低音号 3 Hibike! Euphonium S3 [01][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]吹響吧!上低音號 3 Hibike! Euphonium S3 [01][簡體雙語][1080p]招募翻譯")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1308,7 +1308,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `666843_LoliHouse_3_Hibike_21_Euphonium_3___01_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 吹响吧!上低音号 3 / Hibike! Euphonium 3 - 01 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 吹響吧!上低音號 3 / Hibike! Euphonium 3 - 01 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1319,7 +1319,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `666842_3_Hibike_21_Euphonium_3_01_1080p_AVC`() {
kotlin.run {
- val r = parse("[千夏字幕组][吹响吧!上低音号 3_Hibike! Euphonium 3][第01话][1080p_AVC][简体]")
+ val r = parse("[千夏字幕組][吹響吧!上低音號 3_Hibike! Euphonium 3][第01話][1080p_AVC][簡體]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1352,7 +1352,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `666634_3_Hibike_21_Euphonium_3_01_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 吹响吧!上低音号 3 / Hibike! Euphonium 3 [01][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 吹響吧!上低音號 3 / Hibike! Euphonium 3 [01][1080p][簡體內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1363,7 +1363,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `666633_3_Hibike_21_Euphonium_3_01_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 吹响吧!上低音号 3 / Hibike! Euphonium 3 [01][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 吹響吧!上低音號 3 / Hibike! Euphonium 3 [01][1080p][簡繁內封]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1375,7 +1375,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `666601_Sub_Hibike_21_Euphonium_3___01_WebRip_2160P_HEVC_AAC_ASSx2`() {
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 01 [WebRip 2160P HEVC AAC][简繁日内封 ASSx2]【高压版】")
+ parse("[萌櫻字幕組&霜庭雲花Sub] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 01 [WebRip 2160P HEVC AAC][簡繁日內封 ASSx2]【高壓版】")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -1387,7 +1387,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `666600_Sub_Hibike_21_Euphonium_3___01_WebRip_2160P_HEVC_AAC_ASSx2`() {
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 01 [WebRip 2160P HEVC AAC][简繁日内封 ASSx2]")
+ parse("[萌櫻字幕組&霜庭雲花Sub] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 01 [WebRip 2160P HEVC AAC][簡繁日內封 ASSx2]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -1399,7 +1399,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `666599_Sub_Hibike_21_Euphonium_3___01_WebRip_1080P_HEVC_AAC_ASSx2`() {
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹响吧!上低音号 第三季 / Hibike! Euphonium 3 - 01 [WebRip 1080P HEVC AAC][简繁日内封 ASSx2]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3 - 01 [WebRip 1080P HEVC AAC][簡繁日內封 ASSx2]")
assertEquals("03+01", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1411,7 +1411,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `666598_Sub_Hibike_21_Euphonium_3_01_1080P_AVC_AAC_WebRip`() {
kotlin.run {
val r =
- parse("[萌樱字幕组&霜庭云花Sub][吹响吧!上低音号 第三季 / Hibike! Euphonium 3][01][1080P][AVC AAC][简日双语][WebRip]")
+ parse("[萌櫻字幕組&霜庭雲花Sub][吹響吧!上低音號 第三季 / Hibike! Euphonium 3][01][1080P][AVC AAC][簡日雙語][WebRip]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1423,7 +1423,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `666567_Hibike_21_Euphonium_3_01v2_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [01v2][WebRip][HEVC_AAC][简繁日内封][招募时轴]")
+ parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [01v2][WebRip][HEVC_AAC][簡繁日內封][招募時軸]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1435,7 +1435,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `666566_Hibike_21_Euphonium_3_01v2_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [01v2][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
+ parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [01v2][WebRip][HEVC_AAC][繁日內嵌][招募時軸]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1447,7 +1447,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `666420_Hibike_21_Euphonium_3_01v2_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [01v2][WebRip][HEVC_AAC][简日内嵌][招募时轴]")
+ parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [01v2][WebRip][HEVC_AAC][簡日內嵌][招募時軸]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1459,7 +1459,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `666337_ANi___01_1080P_Bilibili_WEB_DL_AAC_AVC_CHT_CHS_MP4`() {
kotlin.run {
val r =
- parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳台地區) - 01 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 吹響吧!上低音號 第三季(僅限港澳臺地區) - 01 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1471,7 +1471,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `666150_Hibike_21_Euphonium_3_02_WebRip_HEVC_AAC_CHS_EN`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [02][先行版][WebRip][HEVC_AAC][CHS_EN][招募时轴]")
+ parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [02][先行版][WebRip][HEVC_AAC][CHS_EN][招募時軸]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1483,7 +1483,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `666027_Hibike_21_Euphonium_3_01_WebRip_HEVC_AAC_CHS_EN`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 吹响吧!上低音号 第三季 / Hibike! Euphonium 3 [01][先行版][WebRip][HEVC_AAC][CHS_EN][招募时轴]")
+ parse("[北宇治字幕組] 吹響吧!上低音號 第三季 / Hibike! Euphonium 3 [01][先行版][WebRip][HEVC_AAC][CHS_EN][招募時軸]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1495,7 +1495,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `659668_Hibike_21_Euphonium_Special_Episode_of_Ensemble_Contest_1080p`() {
kotlin.run {
val r =
- parse("[云光字幕组]特别篇 吹响吧!上低音号~合奏比赛~Hibike! Euphonium Special ~Episode of Ensemble Contest~ [简体双语][1080p]招募翻译")
+ parse("[雲光字幕組]特別篇 吹響吧!上低音號~合奏比賽~Hibike! Euphonium Special ~Episode of Ensemble Contest~ [簡體雙語][1080p]招募翻譯")
assertEquals("Special..Special", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1507,7 +1507,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `651923_Hibike_21_Euphonium_Ensemble_Contest_Hen_BDRip_AVC_8bit_1080p`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 吹響吧!上低音號~合奏比賽篇~ / Hibike! Euphonium Ensemble Contest Hen [BDRip][AVC-8bit 1080p][繁日内嵌]")
+ parse("[❀撥雪尋春❀] 吹響吧!上低音號~合奏比賽篇~ / Hibike! Euphonium Ensemble Contest Hen [BDRip][AVC-8bit 1080p][繁日內嵌]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1519,7 +1519,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `651922_Hibike_21_Euphonium_Ensemble_Contest_Hen_BDRip_AVC_8bit_1080p`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 吹响吧!上低音号~合奏比赛篇~ / Hibike! Euphonium Ensemble Contest Hen [BDRip][AVC-8bit 1080p][简日内嵌]")
+ parse("[❀撥雪尋春❀] 吹響吧!上低音號~合奏比賽篇~ / Hibike! Euphonium Ensemble Contest Hen [BDRip][AVC-8bit 1080p][簡日內嵌]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1531,7 +1531,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `651921_Hibike_21_Euphonium_Ensemble_Contest_Hen_BDRip_HEVC_10bit_1080p`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 吹响吧!上低音号~合奏比赛篇~ / Hibike! Euphonium Ensemble Contest Hen [BDRip][HEVC-10bit 1080p][简繁日内封]")
+ parse("[❀撥雪尋春❀] 吹響吧!上低音號~合奏比賽篇~ / Hibike! Euphonium Ensemble Contest Hen [BDRip][HEVC-10bit 1080p][簡繁日內封]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1556,7 +1556,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `648009_Tokubetsu_Hen_Hibike_21_Euphonium_Ensemble_Contest_Hen_BDRip_1080p_AVC`() {
kotlin.run {
val r =
- parse("[千夏字幕組][特別篇 吹響吧!上低音號 ~合奏競賽~_Tokubetsu Hen Hibike! Euphonium: Ensemble Contest Hen][劇場版][BDRip_1080p_AVC][繁日双语][招募新人]")
+ parse("[千夏字幕組][特別篇 吹響吧!上低音號 ~合奏競賽~_Tokubetsu Hen Hibike! Euphonium: Ensemble Contest Hen][劇場版][BDRip_1080p_AVC][繁日雙語][招募新人]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1568,8 +1568,8 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `648008_Tokubetsu_Hen_Hibike_21_Euphonium_Ensemble_Contest_Hen_BDRip_1080p_AVC`() {
kotlin.run {
val r =
- parse("[千夏字幕组][特别篇 吹响吧!上低音号 ~合奏竞赛~_Tokubetsu Hen Hibike! Euphonium: Ensemble Contest Hen][剧场版][BDRip_1080p_AVC][简日双语][招募新人]")
- assertEquals("特别篇..特别篇", r.episodeRange.toString())
+ parse("[千夏字幕組][特別篇 吹響吧!上低音號 ~合奏競賽~_Tokubetsu Hen Hibike! Euphonium: Ensemble Contest Hen][劇場版][BDRip_1080p_AVC][簡日雙語][招募新人]")
+ assertEquals("特別篇..特別篇", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(null, r.subtitleKind)
@@ -1581,7 +1581,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
fun `647860_Tokubetsu_Hen_Hibike_21_Euphonium_Ensemble_Contest_Hen_BDRip_v2_1080p_HEVC_FLAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 特別篇 吹響吧!上低音號 ~ 合奏比賽 ~ / Tokubetsu Hen Hibike! Euphonium ~ Ensemble Contest Hen ~ [BDRip v2][1080p][HEVC_FLAC][繁日內嵌]")
+ parse("[北宇治字幕組] 特別篇 吹響吧!上低音號 ~ 合奏比賽 ~ / Tokubetsu Hen Hibike! Euphonium ~ Ensemble Contest Hen ~ [BDRip v2][1080p][HEVC_FLAC][繁日內嵌]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1594,8 +1594,8 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
fun `647859_Tokubetsu_Hen_Hibike_21_Euphonium_Ensemble_Contest_Hen_BDRip_v2_1080p_HEVC_FLAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 特别篇 吹响吧!上低音号 ~ 合奏比赛 ~ / Tokubetsu Hen Hibike! Euphonium ~ Ensemble Contest Hen ~ [BDRip v2][1080p][HEVC_FLAC][简日内嵌]")
- assertEquals("特别篇..特别篇", r.episodeRange.toString())
+ parse("[北宇治字幕組] 特別篇 吹響吧!上低音號 ~ 合奏比賽 ~ / Tokubetsu Hen Hibike! Euphonium ~ Ensemble Contest Hen ~ [BDRip v2][1080p][HEVC_FLAC][簡日內嵌]")
+ assertEquals("特別篇..特別篇", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
assertEquals(SubtitleKind.EMBEDDED, r.subtitleKind)
@@ -1606,7 +1606,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `597732_5_EUPHO_5TH_REGULAR_CONCERT_BDRIP_1080p_x265_TrueHD_Atmos_TrueHD_2_0`() {
kotlin.run {
val r =
- parse("吹响吧!上低音号5周年纪念公演[EUPHO 5TH REGULAR CONCERT][BDRIP_1080p_x265_TrueHD_Atmos_TrueHD_2.0]")
+ parse("吹響吧!上低音號5週年紀念公演[EUPHO 5TH REGULAR CONCERT][BDRIP_1080p_x265_TrueHD_Atmos_TrueHD_2.0]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1630,7 +1630,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
fun `540923_VCB_Studio_Gekijouban_Hibike_21_Euphonium_Chikai_no_Finale_10_bit_1080p_HEVC_BDRip_MOVIE`() {
kotlin.run {
val r =
- parse("[千夏字幕组&VCB-Studio] Gekijouban Hibike! Euphonium Chikai no Finale / 剧场版 吹响吧!上低音号~誓言的终章~ 10-bit 1080p HEVC BDRip [MOVIE]")
+ parse("[千夏字幕組&VCB-Studio] Gekijouban Hibike! Euphonium Chikai no Finale / 劇場版 吹響吧!上低音號~誓言的終章~ 10-bit 1080p HEVC BDRip [MOVIE]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1642,7 +1642,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `536196_Movie_Hibike_21_Euphonium_S1_S2_SP_Moviex4_BD_1920x1080_HEVC_10bit_OPUS`() {
kotlin.run {
val r =
- parse("吹响吧!上低音号 全两季+Movie Hibike! Euphonium S1+S2+SP+Moviex4 [BD 1920x1080 HEVC-10bit OPUS][简繁内封字幕]")
+ parse("吹響吧!上低音號 全兩季+Movie Hibike! Euphonium S1+S2+SP+Moviex4 [BD 1920x1080 HEVC-10bit OPUS][簡繁內封字幕]")
assertEquals("S1+S2+SP", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1654,7 +1654,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `535781_Gekijouban_Hibike_21_Euphonium_Chikai_no_Finale_v2_BDRip_1080p_AVC`() {
kotlin.run {
val r =
- parse("【千夏字幕组】【剧场版 吹响吧!上低音号 ~誓言的终曲~_Gekijouban Hibike! Euphonium: Chikai no Finale】[剧场版_v2][BDRip_1080p_AVC][简体]")
+ parse("【千夏字幕組】【劇場版 吹響吧!上低音號 ~誓言的終曲~_Gekijouban Hibike! Euphonium: Chikai no Finale】[劇場版_v2][BDRip_1080p_AVC][簡體]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1679,7 +1679,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
fun `535752_LoliHouse_Gekijouban_Hibike_21_Euphonium_Chikai_no_Finale_BDRip_1080p_HEVC_10bit_FLAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 剧场版 吹响吧!上低音号 ~誓言的终曲~ / Gekijouban Hibike! Euphonium: Chikai no Finale [BDRip 1080p HEVC-10bit FLAC][简繁外挂字幕](索引:誓言的终章)")
+ parse("[千夏字幕組&LoliHouse] 劇場版 吹響吧!上低音號 ~誓言的終曲~ / Gekijouban Hibike! Euphonium: Chikai no Finale [BDRip 1080p HEVC-10bit FLAC][簡繁外掛字幕](索引:誓言的終章)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1692,7 +1692,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
fun `532705_U3_Web_2019_Movie_BIG5_GP_WEB_DL_1080p_AVC_AAC_2_0_5_1_MP4_Gekijouban_Hibike_21_Euphonium_Chikai_no_Finale_Sound_21_Euphonium_the_Movie__Our_Promise_A_Brand_New_Day_`() {
kotlin.run {
val r =
- parse("[U3-Web] 電影版 吹響吧!上低音號~誓言的終章~ / 劇場版 響け!ユーフォニアム~誓いのフィナーレ~ [2019][Movie][繁體中文內嵌字幕][BIG5][GP WEB-DL 1080p AVC AAC(2.0+5.1) MP4] (剧场版 吹响!悠风号 ~誓言的终章~(誓言的終曲) / Gekijouban Hibike! Euphonium : Chikai no Finale / Sound! Euphonium, the Movie -Our Promise: A Brand New Day-)")
+ parse("[U3-Web] 電影版 吹響吧!上低音號~誓言的終章~ / 劇場版 響け!ユーフォニアム~誓いのフィナーレ~ [2019][Movie][繁體中文內嵌字幕][BIG5][GP WEB-DL 1080p AVC AAC(2.0+5.1) MP4] (劇場版 吹響!悠風號 ~誓言的終章~(誓言的終曲) / Gekijouban Hibike! Euphonium : Chikai no Finale / Sound! Euphonium, the Movie -Our Promise: A Brand New Day-)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1705,7 +1705,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
fun `532580_U3_Web_2019_Movie_1080p_HEVC_10bit_AAC_AC_3_DD5_1_MKV_Gekijouban_Hibike_21_Euphonium_Chikai_no_Finale_Sound_21_Euphonium_the_Movie__Our_Promise_A_Brand_New_Day_`() {
kotlin.run {
val r =
- parse("[U3-Web] 電影版 吹響吧!上低音號~誓言的終章~ / 劇場版 響け!ユーフォニアム~誓いのフィナーレ~ [2019][Movie][繁體中文內封字幕][BIG5][1080p HEVC-10bit AAC AC-3(DD5.1) MKV] (剧场版 吹响!悠风号 ~誓言的终章~(誓言的終曲) / Gekijouban Hibike! Euphonium : Chikai no Finale / Sound! Euphonium, the Movie -Our Promise: A Brand New Day-) [WEB-DL --> WebRip]")
+ parse("[U3-Web] 電影版 吹響吧!上低音號~誓言的終章~ / 劇場版 響け!ユーフォニアム~誓いのフィナーレ~ [2019][Movie][繁體中文內封字幕][BIG5][1080p HEVC-10bit AAC AC-3(DD5.1) MKV] (劇場版 吹響!悠風號 ~誓言的終章~(誓言的終曲) / Gekijouban Hibike! Euphonium : Chikai no Finale / Sound! Euphonium, the Movie -Our Promise: A Brand New Day-) [WEB-DL --> WebRip]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1727,7 +1727,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `506290_Hibike_21_Euphonium_BDrip_1080P_HEVC`() {
kotlin.run {
- val r = parse("【极影字幕社】★[吹响吧!上低音号 Hibike! Euphonium][BDrip][1080P][HEVC]")
+ val r = parse("【極影字幕社】★[吹響吧!上低音號 Hibike! Euphonium][BDrip][1080P][HEVC]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1752,7 +1752,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `505581_U3_Project_Liz_and_the_Blue_Bird_Liz_to_Aoi_Tori_BDMV_1080p_MOVIE_U3`() {
kotlin.run {
val r =
- parse("[U3-Project] 吹響吧!上低音號~莉茲與青鳥~ / Liz and the Blue Bird / Liz to Aoi Tori / リズと青い鳥 [台本付数量限定版][BDMV][1080p][MOVIE]【U3自購團招人 / 新增合購計畫 , 內詳】")
+ parse("[U3-Project] 吹響吧!上低音號~莉茲與青鳥~ / Liz and the Blue Bird / Liz to Aoi Tori / リズと青い鳥 [臺本付數量限定版][BDMV][1080p][MOVIE]【U3自購團招人 / 新增合購計畫 , 內詳】")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1765,7 +1765,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
fun `504907_VCB_Studio_Gekijouban_Hibike_21_Euphonium_Todoketai_Melody_10_bit_1080p_HEVC_BDRip_Movie_Fin`() {
kotlin.run {
val r =
- parse("[VCB-Studio] Gekijouban Hibike! Euphonium: Todoketai Melody / 剧场版 吹响吧!上低音号~想要传达的旋律~ 10-bit 1080p HEVC BDRip [Movie Fin]")
+ parse("[VCB-Studio] Gekijouban Hibike! Euphonium: Todoketai Melody / 劇場版 吹響吧!上低音號~想要傳達的旋律~ 10-bit 1080p HEVC BDRip [Movie Fin]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1778,7 +1778,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
fun `484696_Gekijouban_Hibike_21_Euphonium_Todoketai_Melody_BDRip_1920x1080_AVC_8bit_AAC`() {
kotlin.run {
val r =
- parse("[届恋字幕组] 剧场版 吹响吧!上低音号 ~想要传达的旋律~ / Gekijouban Hibike! Euphonium Todoketai Melody [BDRip 1920x1080 AVC-8bit AAC][繁体内嵌字幕]")
+ parse("[屆戀字幕組] 劇場版 吹響吧!上低音號 ~想要傳達的旋律~ / Gekijouban Hibike! Euphonium Todoketai Melody [BDRip 1920x1080 AVC-8bit AAC][繁體內嵌字幕]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1791,7 +1791,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
fun `484695_Gekijouban_Hibike_21_Euphonium_Todoketai_Melody_BDRip_1920x1080_AVC_8bit_AAC`() {
kotlin.run {
val r =
- parse("[届恋字幕组] 剧场版 吹响吧!上低音号 ~想要传达的旋律~ / Gekijouban Hibike! Euphonium Todoketai Melody [BDRip 1920x1080 AVC-8bit AAC][简体内嵌字幕]")
+ parse("[屆戀字幕組] 劇場版 吹響吧!上低音號 ~想要傳達的旋律~ / Gekijouban Hibike! Euphonium Todoketai Melody [BDRip 1920x1080 AVC-8bit AAC][簡體內嵌字幕]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1816,7 +1816,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
fun `484106_Eupho_Fans_Hibike_21_Euphonium_Movie_Todoketai_Melody_BDRip_x264_1920x1080_AAC_DTS_PGS_MKV`() {
kotlin.run {
val r =
- parse("[Eupho-Fans] 劇場版 吹響吧!上低音號~想要傳達的旋律~ / 劇場版 響け!ユーフォニアム~届けたいメロディ~ / Hibike! Euphonium Movie: Todoketai Melody [BDRip x264 1920x1080 AAC DTS PGS MKV]")
+ parse("[Eupho-Fans] 劇場版 吹響吧!上低音號~想要傳達的旋律~ / 劇場版 響け!ユーフォニアム~屆けたいメロディ~ / Hibike! Euphonium Movie: Todoketai Melody [BDRip x264 1920x1080 AAC DTS PGS MKV]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1827,7 +1827,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `478260_Hibike_21_Euphonium_S2_BDrip_1080P_HEVC`() {
kotlin.run {
- val r = parse("【极影字幕社】★[吹响吧!上低音号二期 Hibike! Euphonium S2][BDrip][1080P][HEVC]")
+ val r = parse("【極影字幕社】★[吹響吧!上低音號二期 Hibike! Euphonium S2][BDrip][1080P][HEVC]")
assertEquals("S2", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1838,7 +1838,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `478169_UHA_WINGS_2_Hibike_21_Euphonium_2_BDSP_MKV`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[UHA-WINGS][吹响吧!上低音号 第2季/Hibike! Euphonium 2][BDSP][MKV 简日_繁日外挂]")
+ val r = parse("【悠哈璃羽字幕社】[UHA-WINGS][吹響吧!上低音號 第2季/Hibike! Euphonium 2][BDSP][MKV 簡日_繁日外掛]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1885,7 +1885,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `467213_VCB_Studio_Hibike_21_Euphonium_2_2__21_2_10_bit_1080p_HEVC_BDRip_Fin`() {
kotlin.run {
val r =
- parse("[VCB-Studio] Hibike! Euphonium 2 / 吹响吧!上低音号 2 / 響け! ユーフォニアム 2 10-bit 1080p HEVC BDRip [Fin]")
+ parse("[VCB-Studio] Hibike! Euphonium 2 / 吹響吧!上低音號 2 / 響け! ユーフォニアム 2 10-bit 1080p HEVC BDRip [Fin]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1897,7 +1897,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `467212_VCB_Studio_Hibike_21_Euphonium_2_2__21_2_8_bit_1080p_HEVC_BDRip_MP4_Ver`() {
kotlin.run {
val r =
- parse("[VCB-Studio] Hibike! Euphonium 2 / 吹响吧!上低音号 2 / 響け! ユーフォニアム 2 8-bit 1080p HEVC BDRip [MP4 Ver.]")
+ parse("[VCB-Studio] Hibike! Euphonium 2 / 吹響吧!上低音號 2 / 響け! ユーフォニアム 2 8-bit 1080p HEVC BDRip [MP4 Ver.]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1910,7 +1910,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
fun `466528_UHA_WINGS_ANK_Raws_Hibike_21_Euphonium_01_01_13_MKV_BDrip_1920x1080_HEVC_YUV420P10_FLAC`() {
kotlin.run {
val r =
- parse("[UHA-WINGS&ANK-Raws][吹响吧!上低音号 第二季][Hibike! Euphonium 02][01-13][MKV 简日_繁日双语外挂][BDrip 1920x1080 HEVC-YUV420P10 FLAC]")
+ parse("[UHA-WINGS&ANK-Raws][吹響吧!上低音號 第二季][Hibike! Euphonium 02][01-13][MKV 簡日_繁日雙語外掛][BDrip 1920x1080 HEVC-YUV420P10 FLAC]")
assertEquals("01..13", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1923,7 +1923,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
fun `466330_UHA_WINGS_ANK_Raws_Hibike_21_Euphonium_2_01_13_MKV_BDrip_1920x1080_HEVC_10bit`() {
kotlin.run {
val r =
- parse("[UHA-WINGS&ANK-Raws][吹响吧!上低音号 第二季][Hibike! Euphonium 2][01-13][MKV 简日_繁日双语外挂][BDrip 1920x1080 HEVC-10bit]")
+ parse("[UHA-WINGS&ANK-Raws][吹響吧!上低音號 第二季][Hibike! Euphonium 2][01-13][MKV 簡日_繁日雙語外掛][BDrip 1920x1080 HEVC-10bit]")
assertEquals("01..13", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1934,7 +1934,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `465556_BD720P`() {
kotlin.run {
- val r = parse("【浩天个人发布】吹响吧!上低音号第二季 BD720P内嵌简体字幕")
+ val r = parse("【浩天個人發佈】吹響吧!上低音號第二季 BD720P內嵌簡體字幕")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1967,7 +1967,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `463600_2_SP7_1080P_MP4`() {
kotlin.run {
- val r = parse("【悠风社】吹响吧!上低音号 2 SP7 [简][1080P][MP4]")
+ val r = parse("【悠風社】吹響吧!上低音號 2 SP7 [簡][1080P][MP4]")
assertEquals("SP07..SP07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1980,7 +1980,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
fun `461337_UHA_WINGS_ANK_Raws_Hibike_21_Euphonium_2_01_07_BDrip_1920x1080_HEVC_10bit_MKV`() {
kotlin.run {
val r =
- parse("[UHA-WINGS&ANK-Raws][吹响吧!上低音号 第二季][Hibike! Euphonium 2][01-07][BDrip 1920x1080 HEVC-10bit][MKV 简日_繁日外挂]")
+ parse("[UHA-WINGS&ANK-Raws][吹響吧!上低音號 第二季][Hibike! Euphonium 2][01-07][BDrip 1920x1080 HEVC-10bit][MKV 簡日_繁日外掛]")
assertEquals("01..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1991,7 +1991,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `461023_2_SP6_1080P_MP4`() {
kotlin.run {
- val r = parse("【悠风社】吹响吧!上低音号 2 SP6 [简][1080P][MP4]")
+ val r = parse("【悠風社】吹響吧!上低音號 2 SP6 [簡][1080P][MP4]")
assertEquals("SP06..SP06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2002,7 +2002,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `458613_2_SP5_1080P_MP4`() {
kotlin.run {
- val r = parse("【悠风社】吹响吧!上低音号 2 SP5 [简][1080P][MP4]")
+ val r = parse("【悠風社】吹響吧!上低音號 2 SP5 [簡][1080P][MP4]")
assertEquals("SP05..SP05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2013,7 +2013,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `456299_2_SP1_4_720P_MP4`() {
kotlin.run {
- val r = parse("【悠风社】吹响吧!上低音号 2 SP1~4 [简][720P][MP4]")
+ val r = parse("【悠風社】吹響吧!上低音號 2 SP1~4 [簡][720P][MP4]")
assertEquals("SP01..SP04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2025,7 +2025,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `454096_2_Hibike_21_Euphonium_2_1_13END_1280x720_GB_BIG5`() {
kotlin.run {
val r =
- parse("【悠哈璃羽字幕社】[合集][吹响吧!上低音号 第2季/Hibike! Euphonium 2][1-13END][1280x720][简繁合集][GB&BIG5]")
+ parse("【悠哈璃羽字幕社】[合集][吹響吧!上低音號 第2季/Hibike! Euphonium 2][1-13END][1280x720][簡繁合集][GB&BIG5]")
assertEquals("01..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2070,7 +2070,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `450888_10_Hibike_21_Euphonium_S2_13END_1080P_BIG5_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][13END][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][13END][1080P][BIG5][MP4]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2081,7 +2081,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `450887_10_Hibike_21_Euphonium_S2_13END_1080P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][13END][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][13END][1080P][GB][MP4]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2092,7 +2092,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `450666_10_Hibike_21_Euphonium_S2_13END_720P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][13END][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][13END][720P][GB][MP4]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2125,7 +2125,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `450427_10_2_Hibike_21_Euphonium_10_720P_GB_MP4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][10][720P][GB][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][10][720P][GB][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2136,7 +2136,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `450426_10_2_Hibike_21_Euphonium_10_720P_BIG5_MP4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][10][720P][BIG5][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][10][720P][BIG5][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2147,7 +2147,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `450425_10_2_Hibike_21_Euphonium_11_720P_BIG5_MP4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][11][720P][BIG5][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][11][720P][BIG5][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2158,7 +2158,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `450424_10_2_Hibike_21_Euphonium_11_720P_GB_MP4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][11][720P][GB][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][11][720P][GB][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2169,7 +2169,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `450376_10_Hibike_21_Euphonium_S2_12_1080P_BIG5_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][12][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][12][1080P][BIG5][MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2180,7 +2180,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `450375_10_Hibike_21_Euphonium_S2_12_1080P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][12][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][12][1080P][GB][MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2191,7 +2191,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `450085_10_Hibike_21_Euphonium_S2_12_720P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][12][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][12][720P][GB][MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2224,7 +2224,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `449583_10_Hibike_21_Euphonium_S2_11_1080P_BIG5_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][11][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][11][1080P][BIG5][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2235,7 +2235,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `449582_10_Hibike_21_Euphonium_S2_11_1080P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][11][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][11][1080P][GB][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2246,7 +2246,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `449577_10_Hibike_21_Euphonium_S2_10_1080P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][10][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][10][1080P][GB][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2257,7 +2257,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `449576_10_Hibike_21_Euphonium_S2_10_1080P_BIG5_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][10][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][10][1080P][BIG5][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2268,7 +2268,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `449575_10_Hibike_21_Euphonium_S2_11_720P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][11][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][11][720P][GB][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2301,7 +2301,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `449441_10_2_Hibike_21_Euphonium_09_720P_BIG5_MP4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][09][720P][BIG5][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][09][720P][BIG5][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2312,7 +2312,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `449439_10_2_Hibike_21_Euphonium_09_720P_GB_MP4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][09][720P][GB][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][09][720P][GB][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2323,7 +2323,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `449023_10_Hibike_21_Euphonium_S2_10_720P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][10][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][10][720P][GB][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2345,7 +2345,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `448515_10_Hibike_21_Euphonium_S2_09_1080P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][09][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][09][1080P][GB][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2356,7 +2356,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `448514_10_Hibike_21_Euphonium_S2_09_1080P_BIG5_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][09][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][09][1080P][BIG5][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2378,7 +2378,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `448384_10_Hibike_21_Euphonium_S2_09_720P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][09][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][09][720P][GB][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2389,7 +2389,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `448361_10_2_Hibike_21_Euphonium_08_720P_BIG5_MP4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][08][720P][BIG5][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][08][720P][BIG5][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2400,7 +2400,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `448360_10_2_Hibike_21_Euphonium_08_720P_GB_MP4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][08][720P][GB][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][08][720P][GB][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2422,7 +2422,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `447983_10_Hibike_21_Euphonium_S2_08_1080P_BIG5_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][08][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][08][1080P][BIG5][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2433,7 +2433,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `447982_10_Hibike_21_Euphonium_S2_08_1080P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][08][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][08][1080P][GB][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2455,7 +2455,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `447893_10_Hibike_21_Euphonium_S2_08_720P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][08][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][08][720P][GB][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2466,7 +2466,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `447792_10_2_Hibike_21_Euphonium_07_720P_BIG5_MP4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][07][720P][BIG5][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][07][720P][BIG5][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2477,7 +2477,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `447786_10_2_Hibike_21_Euphonium_07_720P_GB_MP4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][07][720P][GB][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][07][720P][GB][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2488,7 +2488,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `447525_10_Hibike_21_Euphonium_S2_07_1080P_BIG5_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][07][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][07][1080P][BIG5][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2499,7 +2499,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `447524_10_Hibike_21_Euphonium_S2_07_1080P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][07][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][07][1080P][GB][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2521,7 +2521,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `447407_10_Hibike_21_Euphonium_S2_07_720P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][07][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][07][720P][GB][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2543,7 +2543,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `447100_10_2_Hibike_21_Euphonium_06_720P_BIG5_MP4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][06][720P][BIG5][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][06][720P][BIG5][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2554,7 +2554,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `447099_10_2_Hibike_21_Euphonium_06_720P_GB_MP4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][06][720P][GB][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][06][720P][GB][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2565,7 +2565,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `446939_10_Hibike_21_Euphonium_S2_06_1080P_BIG5_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][06][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][06][1080P][BIG5][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2576,7 +2576,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `446938_10_Hibike_21_Euphonium_S2_06_1080P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][06][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][06][1080P][GB][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2598,7 +2598,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `446886_10_Hibike_21_Euphonium_S2_06_720P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][06][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][06][720P][GB][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2620,7 +2620,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `446626_10_2_Hibike_21_Euphonium_05_720P_BIG5_MP4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][05][720P][BIG5][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][05][720P][BIG5][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2631,7 +2631,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `446625_10_2_Hibike_21_Euphonium_05_720P_GB_MP4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][05][720P][GB][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][05][720P][GB][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2642,7 +2642,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `446464_10_Hibike_21_Euphonium_S2_05_1080P_BIG5_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][05][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][05][1080P][BIG5][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2653,7 +2653,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `446463_10_Hibike_21_Euphonium_S2_04_1080P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][05][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][05][1080P][GB][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2675,7 +2675,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `446442_10_Hibike_21_Euphonium_S2_05_720P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][05][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][05][720P][GB][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2697,7 +2697,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `446248_10_Hibike_21_Euphonium_S2_04_1080P_BIG5_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][04][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][04][1080P][BIG5][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2708,7 +2708,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `446173_10_Hibike_21_Euphonium_S2_04_1080P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][04][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][04][1080P][GB][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2719,7 +2719,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `446123_10_2_Hibike_21_Euphonium_04_720P_BIG5_MP4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][04][720P][BIG5][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][04][720P][BIG5][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2730,7 +2730,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `446122_10_2_Hibike_21_Euphonium_04_720P_GB_MP4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][04][720P][GB][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][04][720P][GB][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2741,7 +2741,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `445927_10_Hibike_21_Euphonium_S2_04_720P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][04][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][04][720P][GB][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2774,7 +2774,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `445674_10_Hibike_21_Euphonium_S2_03_1080P_BIG5_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][03][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][03][1080P][BIG5][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2785,7 +2785,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `445608_10_2_Hibike_21_Euphonium_03_720P_BIGB_MP4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][03][720P][BIGB][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][03][720P][BIGB][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2796,7 +2796,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `445607_10_2_Hibike_21_Euphonium_03_720P_GB_MP4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][03][720P][GB][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][03][720P][GB][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2807,7 +2807,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `445475_10_Hibike_21_Euphonium_S2_03_1080P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][03][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][03][1080P][GB][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2829,7 +2829,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `445364_10_Hibike_21_Euphonium_S2_03_720P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][03][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][03][720P][GB][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2851,7 +2851,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `444957_10_2_Hibike_21_Euphonium_02_720P_GB_MP4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][02][720P][GB][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][02][720P][GB][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2862,7 +2862,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `444791_10_Hibike_21_Euphonium_S2_02_1080P_BIG5_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][02][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][02][1080P][BIG5][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2873,7 +2873,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `444790_10_Hibike_21_Euphonium_S2_02_1080P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][02][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][02][1080P][GB][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2884,7 +2884,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `444764_10_Hibike_21_Euphonium_S2_02_720P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][02][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][02][720P][GB][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2917,7 +2917,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `444487_10_2_Hibike_21_Euphonium_720P_GB_MP4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】【10月新番】[吹响吧!上低音号 第2季/Hibike! Euphonium][01][720P][GB][MP4]")
+ val r = parse("【悠哈璃羽字幕社】【10月新番】[吹響吧!上低音號 第2季/Hibike! Euphonium][01][720P][GB][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2928,7 +2928,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `444238_10_Hibike_21_Euphonium_S2_01_1080P_BIG5_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][01][1080P][BIG5][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][01][1080P][BIG5][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2939,7 +2939,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `444209_10_Hibike_21_Euphonium_S2_01_1080P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][01][1080P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][01][1080P][GB][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2961,7 +2961,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `444127_10_Hibike_21_Euphonium_S2_01_720P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★10月新番[吹响吧!上低音号二期_Hibike! Euphonium S2][01][720P][GB][MP4]")
+ val r = parse("【極影字幕社】★10月新番[吹響吧!上低音號二期_Hibike! Euphonium S2][01][720P][GB][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2974,7 +2974,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
fun `442933_LowPower_Raws_Hibike_21_Euphonium_Kitauji_Koukou_Suisougaku_Bu_e_Youkoso___Movie_BD_1080P_x264_FLAC`() {
kotlin.run {
val r =
- parse("[LowPower-Raws]吹响吧!上低音号~欢迎加入北宇治高中管乐团~ Hibike! Euphonium Kitauji Koukou Suisougaku Bu e Youkoso - Movie (BD 1080P x264 FLAC)")
+ parse("[LowPower-Raws]吹響吧!上低音號~歡迎加入北宇治高中管樂團~ Hibike! Euphonium Kitauji Koukou Suisougaku Bu e Youkoso - Movie (BD 1080P x264 FLAC)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2985,7 +2985,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `442833_BDRip_MKV`() {
kotlin.run {
- val r = parse("【极影字幕社】吹响吧!上低音号 剧场版 [繁体内嵌] [BDRip][MKV]")
+ val r = parse("【極影字幕社】吹響吧!上低音號 劇場版 [繁體內嵌] [BDRip][MKV]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2997,7 +2997,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `442728_ReinForce_Gekijouban_Hibike_21_Euphonium_BDRip_1920x1080_x264_FLAC`() {
kotlin.run {
val r =
- parse("[ReinForce] 劇場版 吹響吧!上低音號~歡迎加入北宇治高中管樂團~Gekijouban Hibike! Euphonium (BDRip 1920x1080 x264 FLAC) [字幕内附]")
+ parse("[ReinForce] 劇場版 吹響吧!上低音號~歡迎加入北宇治高中管樂團~Gekijouban Hibike! Euphonium (BDRip 1920x1080 x264 FLAC) [字幕內附]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3010,7 +3010,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
fun `442727_Ohys_Raws_Gekijouban_Hibike_21_Euphonium___Kitauji_Koukou_Suisougaku_Bu_e_Youkoso_BD_1280x720_x264_AACx3`() {
kotlin.run {
val r =
- parse("[Ohys-Raws]劇場版 吹響吧!上低音號~歡迎加入北宇治高中管樂團~Gekijouban Hibike! Euphonium - Kitauji Koukou Suisougaku Bu e Youkoso (BD 1280x720 x264 AACx3) [字幕内附]")
+ parse("[Ohys-Raws]劇場版 吹響吧!上低音號~歡迎加入北宇治高中管樂團~Gekijouban Hibike! Euphonium - Kitauji Koukou Suisougaku Bu e Youkoso (BD 1280x720 x264 AACx3) [字幕內附]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3021,7 +3021,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `442306_BDRip_MKV`() {
kotlin.run {
- val r = parse("【极影字幕社】吹响吧!上低音号 剧场版 [简体内嵌] [BDRip][MKV]")
+ val r = parse("【極影字幕社】吹響吧!上低音號 劇場版 [簡體內嵌] [BDRip][MKV]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3045,7 +3045,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `433693__Hibike_21_Euphonium___Vol_1__BDRip_1920x1080_x264_AC_3_MP4`() {
kotlin.run {
val r =
- parse("【极影字幕社】吹响吧!上低音号-Hibike! Euphonium - Vol.1-[简体内嵌] [BDRip 1920x1080 x264 AC-3][MP4]")
+ parse("【極影字幕社】吹響吧!上低音號-Hibike! Euphonium - Vol.1-[簡體內嵌] [BDRip 1920x1080 x264 AC-3][MP4]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3056,7 +3056,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `425284_BD720P`() {
kotlin.run {
- val r = parse("【浩天个人发布】吹响吧!上低音号 BD720P内嵌简体字幕")
+ val r = parse("【浩天個人發佈】吹響吧!上低音號 BD720P內嵌簡體字幕")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3067,7 +3067,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `422536_F_SP_01_07_1080P_MP4`() {
kotlin.run {
- val r = parse("【F宅】吹响吧!上低音号 SP特典合集 01-07 简 1080P MP4")
+ val r = parse("【F宅】吹響吧!上低音號 SP特典合集 01-07 簡 1080P MP4")
assertEquals("01..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3078,7 +3078,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `419873__11_Hibike_21_Euphonium_01_14_BDRIP_1080P_X264_FLAC_AAC`() {
kotlin.run {
- val r = parse("[异域-11番小队][吹响吧!上低音号 Hibike! Euphonium][01-14][BDRIP][1080P][X264_FLAC_AAC]")
+ val r = parse("[異域-11番小隊][吹響吧!上低音號 Hibike! Euphonium][01-14][BDRIP][1080P][X264_FLAC_AAC]")
assertEquals("01..14", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3089,7 +3089,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `419515_Hibike_21_Euphonium_720P_BIG5`() {
kotlin.run {
- val r = parse("【极影字幕社】★[吹响吧!上低音号Hibike! Euphonium ][番外篇][720P]BIG5")
+ val r = parse("【極影字幕社】★[吹響吧!上低音號Hibike! Euphonium ][番外篇][720P]BIG5")
assertEquals("番外篇..番外篇", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3111,7 +3111,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `419458_Hibike_21_Euphonium_720P_GB`() {
kotlin.run {
- val r = parse("【极影字幕社】★[吹响吧!上低音号Hibike! Euphonium ][番外篇][720P]GB")
+ val r = parse("【極影字幕社】★[吹響吧!上低音號Hibike! Euphonium ][番外篇][720P]GB")
assertEquals("番外篇..番外篇", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3122,7 +3122,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `419401_VCB_Studio_Hibike_21_Euphonium_10bit_1080p_AVC_BDRip_Fin`() {
kotlin.run {
- val r = parse("[VCB-Studio] Hibike! Euphonium/吹响吧!上低音号 10bit 1080p AVC BDRip [Fin]")
+ val r = parse("[VCB-Studio] Hibike! Euphonium/吹響吧!上低音號 10bit 1080p AVC BDRip [Fin]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3133,7 +3133,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `419400_VCB_Studio_Hibike_21_Euphonium_8bit_1080p_BDRip_MP4_ver`() {
kotlin.run {
- val r = parse("[VCB-Studio] Hibike! Euphonium/吹响吧!上低音号 8bit 1080p BDRip [MP4 ver]")
+ val r = parse("[VCB-Studio] Hibike! Euphonium/吹響吧!上低音號 8bit 1080p BDRip [MP4 ver]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3145,7 +3145,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
public fun `419155__11_Hibike_21_Euphonium_01_14_BDRIP_720P_X264_10bit_AAC`() {
kotlin.run {
val r =
- parse("[异域-11番小队][吹响!悠风号/吹响吧!上低音号 Hibike! Euphonium][01-14][BDRIP][720P][X264_10bit_AAC]")
+ parse("[異域-11番小隊][吹響!悠風號/吹響吧!上低音號 Hibike! Euphonium][01-14][BDRIP][720P][X264_10bit_AAC]")
assertEquals("01..14", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3156,7 +3156,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `418769_F_OVA_1080P_MP4`() {
kotlin.run {
- val r = parse("【F宅】吹响吧!上低音号 番外篇 OVA 中日双语 1080P MP4")
+ val r = parse("【F宅】吹響吧!上低音號 番外篇 OVA 中日雙語 1080P MP4")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3167,7 +3167,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `418264_F_OVA_720P_MP4`() {
kotlin.run {
- val r = parse("【F宅】吹响吧!上低音号 番外篇 OVA 中日双语 720P MP4")
+ val r = parse("【F宅】吹響吧!上低音號 番外篇 OVA 中日雙語 720P MP4")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3178,7 +3178,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `401721_04_Hibike_21_Euphonium_01__13_720P_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第01--13话][合集][720P]GB.MP4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第01--13話][合集][720P]GB.MP4")
assertEquals("01..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3200,7 +3200,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `399320_04_Hibike_21_Euphonium_01__13_1080P_MKV`() {
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第01--13話][合集][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第01--13話][合集][1080P][繁簡內封][附字體].MKV")
assertEquals("01..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3211,7 +3211,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `399295_04_Hibike_21_Euphonium_13_END_1080P_MKV`() {
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第13話]END[1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第13話]END[1080P][繁簡內封][附字體].MKV")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3233,7 +3233,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `399292_04_Hibike_21_Euphonium_13_END_720P_GB_mp4`() {
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第13话]END[720P][GB].mp4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第13話]END[720P][GB].mp4")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3255,7 +3255,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `398494_04_Hibike_21_Euphonium_12_720P_GB_mp4`() {
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第12话][720P][GB].mp4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第12話][720P][GB].mp4")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3266,7 +3266,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `398492_04_Hibike_21_Euphonium_12_1080P_MKV`() {
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第12話][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第12話][1080P][繁簡內封][附字體].MKV")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3277,7 +3277,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `397689_04_Hibike_21_Euphonium_11_1080P_MKV`() {
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第11話][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第11話][1080P][繁簡內封][附字體].MKV")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3299,7 +3299,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `397683_04_Hibike_21_Euphonium_11_720P_GB_mp4`() {
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第11话][720P][GB].mp4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第11話][720P][GB].mp4")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3310,7 +3310,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `396942_04_Hibike_21_Euphonium_10_1080P_MKV`() {
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第10話][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第10話][1080P][繁簡內封][附字體].MKV")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3332,7 +3332,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `396932_04_Hibike_21_Euphonium_10_720P_GB_mp4`() {
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第10话][720P][GB].mp4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第10話][720P][GB].mp4")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3354,7 +3354,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `396160_04_Hibike_21_Euphonium_09_1080P_MKV`() {
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第09話][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第09話][1080P][繁簡內封][附字體].MKV")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3365,7 +3365,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `396156_04_Hibike_21_Euphonium_09_720P_GB_mp4`() {
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第09话][720P][GB].mp4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第09話][720P][GB].mp4")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3376,7 +3376,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `395399_04_Hibike_21_Euphonium_08_1080P_MKV`() {
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第08話][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第08話][1080P][繁簡內封][附字體].MKV")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3398,7 +3398,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `395393_04_Hibike_21_Euphonium_08_720P_GB_mp4`() {
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第08话][720P][GB].mp4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第08話][720P][GB].mp4")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3409,7 +3409,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `394612_04_Hibike_21_Euphonium_07_1080P_MKV`() {
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第07話][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第07話][1080P][繁簡內封][附字體].MKV")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3431,7 +3431,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `394607_04_Hibike_21_Euphonium_07_720P_GB_mp4`() {
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第07话][720P][GB].mp4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第07話][720P][GB].mp4")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3464,7 +3464,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `393785_04_Hibike_21_Euphonium_06_720P_GB_mp4`() {
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第06话][720P][GB].mp4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第06話][720P][GB].mp4")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3475,7 +3475,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `393784_04_Hibike_21_Euphonium_06_1080P_MKV`() {
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第06話][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第06話][1080P][繁簡內封][附字體].MKV")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3486,7 +3486,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `392969_04_Hibike_21_Euphonium_05_1080P_MKV`() {
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第05話][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第05話][1080P][繁簡內封][附字體].MKV")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3508,7 +3508,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `392955_04_Hibike_21_Euphonium_05_720P_GB_mp4`() {
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第05话][720P][GB].mp4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第05話][720P][GB].mp4")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3519,7 +3519,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `392109_04_Hibike_21_Euphonium_04_1080P_MKV`() {
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第04話][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第04話][1080P][繁簡內封][附字體].MKV")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3541,7 +3541,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `392105_04_Hibike_21_Euphonium_04_720P_GB_mp4`() {
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第04话][720P][GB].mp4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第04話][720P][GB].mp4")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3563,7 +3563,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `391273_04_Hibike_21_Euphonium_03_1080P_MKV`() {
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第03話][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第03話][1080P][繁簡內封][附字體].MKV")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3585,7 +3585,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `391267_04_Hibike_21_Euphonium_03_720P_GB_mp4`() {
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第03话][720P][GB].mp4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第03話][720P][GB].mp4")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3618,7 +3618,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `390404_04_Hibike_21_Euphonium_02_720P_GB_mp4`() {
kotlin.run {
- val r = parse("【极影字幕社】★04月新番[吹响吧!上低音号Hibike! Euphonium ][第02话][720P][GB].mp4")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第02話][720P][GB].mp4")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3629,7 +3629,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `390401_04_Hibike_21_Euphonium_02_1080P_MKV`() {
kotlin.run {
- val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第02話][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★04月新番[吹響吧!上低音號Hibike! Euphonium ][第02話][1080P][繁簡內封][附字體].MKV")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3651,7 +3651,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `389588_4_Hibike_21_Euphonium_01_1080P_MKV`() {
kotlin.run {
- val r = parse("【極影字幕社】★4月新番[吹響吧!上低音號Hibike! Euphonium ][第01話][1080P][繁简内封][附字体].MKV")
+ val r = parse("【極影字幕社】★4月新番[吹響吧!上低音號Hibike! Euphonium ][第01話][1080P][繁簡內封][附字體].MKV")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3662,7 +3662,7 @@ public class PatternTitleParserTest吹响吧_上低音号 : PatternBasedTitlePar
@Test
public fun `389581_4_Hibike_21_Euphonium_01_720P_GB_mp4`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番[吹响吧!上低音号Hibike! Euphonium ][第01话][720P][GB].mp4")
+ val r = parse("【極影字幕社】★4月新番[吹響吧!上低音號Hibike! Euphonium ][第01話][720P][GB].mp4")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
diff --git "a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\346\200\252\344\272\272\347\232\204\346\262\231\346\213\211\347\242\227.kt" "b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\346\200\252\344\272\272\347\232\204\346\262\231\346\213\211\347\242\227.kt"
index c9a561570..0219d8fa5 100644
--- "a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\346\200\252\344\272\272\347\232\204\346\262\231\346\213\211\347\242\227.kt"
+++ "b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\346\200\252\344\272\272\347\232\204\346\262\231\346\213\211\347\242\227.kt"
@@ -38,7 +38,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
public fun `671468_LoliHouse_Henjin_no_Salad_Bowl___09_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 09 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 09 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -49,7 +49,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
@Test
public fun `671434_04_Henjin_no_Salad_Bowl_09_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][09][1080p][简体][招募翻译时轴]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][09][1080p][簡體][招募翻譯時軸]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -96,7 +96,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
public fun `670845_LoliHouse_Henjin_no_Salad_Bowl___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -118,7 +118,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
@Test
public fun `670825_04_Henjin_no_Salad_Bowl_08_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][08][1080p][简体][招募翻译时轴]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][08][1080p][簡體][招募翻譯時軸]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -154,7 +154,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
public fun `670251_LoliHouse_Henjin_no_Salad_Bowl___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -176,7 +176,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
@Test
public fun `670246_04_Henjin_no_Salad_Bowl_07_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][07][1080p][简体][招募翻译时轴]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][07][1080p][簡體][招募翻譯時軸]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -224,7 +224,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
public fun `669798_LoliHouse_Henjin_no_Salad_Bowl___06_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -246,7 +246,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
@Test
public fun `669792_04_Henjin_no_Salad_Bowl_06_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][06][1080p][简体][招募翻译时轴]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][06][1080p][簡體][招募翻譯時軸]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -280,7 +280,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
@Test
public fun `668955_04_Henjin_no_Salad_Bowl_05_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][05][1080p][简体][招募翻译时轴]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][05][1080p][簡體][招募翻譯時軸]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -292,7 +292,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
public fun `668954_LoliHouse_Henjin_no_Salad_Bowl___05_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 05 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 05 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -340,7 +340,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
public fun `668468_LoliHouse_Henjin_no_Salad_Bowl___04_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 04 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 04 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -362,7 +362,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
@Test
public fun `668440_04_Henjin_no_Salad_Bowl_04_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][04][1080p][简体][招募翻译时轴]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][04][1080p][簡體][招募翻譯時軸]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -386,7 +386,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
public fun `667889_LoliHouse_Henjin_no_Salad_Bowl___03_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 03 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 03 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -408,7 +408,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
@Test
public fun `667881_04_Henjin_no_Salad_Bowl_03_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][03][1080p][简体][招募翻译时轴]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][03][1080p][簡體][招募翻譯時軸]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -444,7 +444,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
public fun `667371_LoliHouse_Henjin_no_Salad_Bowl___02_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 02 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 02 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -466,7 +466,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
@Test
public fun `667368_04_Henjin_no_Salad_Bowl_02_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][02][1080p][简体][招募翻译时轴]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][02][1080p][簡體][招募翻譯時軸]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -502,7 +502,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
public fun `666569_LoliHouse_Henjin_no_Salad_Bowl___01_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 01 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 怪人的沙拉碗 / Henjin no Salad Bowl - 01 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -524,7 +524,7 @@ public class PatternTitleParserTest怪人的沙拉碗 : PatternBasedTitleParserT
@Test
public fun `666373_04_Henjin_no_Salad_Bowl_01_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][01][1080p][简体][招募翻译时轴]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[怪人的沙拉碗 / Henjin no Salad Bowl][01][1080p][簡體][招募翻譯時軸]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
diff --git "a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\346\200\252\345\205\2758\345\217\267.kt" "b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\346\200\252\345\205\2758\345\217\267.kt"
index 2cba857fb..bea0e1817 100644
--- "a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\346\200\252\345\205\2758\345\217\267.kt"
+++ "b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\346\200\252\345\205\2758\345\217\267.kt"
@@ -25,7 +25,7 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
@Test
public fun `670353_8_Kaijuu_8_Gou_06_1080p_2024_4`() {
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [06] [1080p] [繁日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [06] [1080p] [繁日內嵌] [2024年4月番]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -36,7 +36,7 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
@Test
public fun `670352_8_Kaijuu_8_Gou_06_1080p_2024_4`() {
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [06] [1080p] [简日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [06] [1080p] [簡日內嵌] [2024年4月番]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -80,7 +80,7 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
@Test
public fun `670034_LoliHouse_8_Kaijuu_8_gou___06_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[LoliHouse] 怪兽8号 / Kaijuu 8-gou - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ val r = parse("[LoliHouse] 怪獸8號 / Kaijuu 8-gou - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -102,7 +102,7 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
@Test
public fun `669747_8_Kaijuu_8_Gou_05_1080p_2024_4`() {
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [05] [1080p] [繁日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [05] [1080p] [繁日內嵌] [2024年4月番]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -113,7 +113,7 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
@Test
public fun `669746_8_Kaijuu_8_Gou_05_1080p_2024_4`() {
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [05 [1080p] [简日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [05 [1080p] [簡日內嵌] [2024年4月番]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -124,7 +124,7 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
@Test
public fun `669385_LoliHouse_8_Kaijuu_8_gou___05_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[LoliHouse] 怪兽8号 / Kaijuu 8-gou - 05 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ val r = parse("[LoliHouse] 怪獸8號 / Kaijuu 8-gou - 05 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -146,7 +146,7 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
@Test
public fun `669104_8_Kaijuu_8_Gou_04_1080p_2024_4`() {
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [04] [1080p] [繁日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [04] [1080p] [繁日內嵌] [2024年4月番]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -157,7 +157,7 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
@Test
public fun `669103_8_Kaijuu_8_Gou_04_1080p_2024_4`() {
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [04] [1080p] [简日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [04] [1080p] [簡日內嵌] [2024年4月番]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -168,7 +168,7 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
@Test
public fun `668821_LoliHouse_8_Kaijuu_8_gou___04_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[LoliHouse] 怪兽8号 / Kaijuu 8-gou - 04 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ val r = parse("[LoliHouse] 怪獸8號 / Kaijuu 8-gou - 04 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -201,7 +201,7 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
@Test
public fun `668476_8_Kaijuu_8_Gou_03_1080p_2024_4`() {
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [03] [1080p] [繁日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [03] [1080p] [繁日內嵌] [2024年4月番]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -212,7 +212,7 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
@Test
public fun `668475_8_Kaijuu_8_Gou_03_1080p_2024_4`() {
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [03] [1080p] [简日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [03] [1080p] [簡日內嵌] [2024年4月番]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -223,7 +223,7 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
@Test
public fun `668321_LoliHouse_8_Kaijuu_8_gou___03_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[LoliHouse] 怪兽8号 / Kaijuu 8-gou - 03 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ val r = parse("[LoliHouse] 怪獸8號 / Kaijuu 8-gou - 03 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -256,7 +256,7 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
@Test
public fun `668299_8_Kaijuu_8_gou_02_1080P_WEBrip_MP4`() {
kotlin.run {
- val r = parse("[星空字幕组][怪兽8号 / Kaijuu 8-gou][02][简日双语][1080P][WEBrip][MP4](急招校对、后期)")
+ val r = parse("[星空字幕組][怪獸8號 / Kaijuu 8-gou][02][簡日雙語][1080P][WEBrip][MP4](急招校對、後期)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -278,7 +278,7 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
@Test
public fun `668297_8_Kaijuu_8_gou_01_1080P_WEBrip_MP4`() {
kotlin.run {
- val r = parse("[星空字幕组][怪兽8号 / Kaijuu 8-gou][01][简日双语][1080P][WEBrip][MP4](急招校对、后期)")
+ val r = parse("[星空字幕組][怪獸8號 / Kaijuu 8-gou][01][簡日雙語][1080P][WEBrip][MP4](急招校對、後期)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -289,7 +289,7 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
@Test
public fun `667999_8_Kaijuu_8_Gou_02_1080p_2024_4`() {
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [02] [1080p] [繁日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [02] [1080p] [繁日內嵌] [2024年4月番]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -300,7 +300,7 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
@Test
public fun `667998_8_Kaijuu_8_Gou_02_1080p_2024_4`() {
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [02] [1080p] [简日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [02] [1080p] [簡日內嵌] [2024年4月番]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -322,7 +322,7 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
@Test
public fun `667776_LoliHouse_8_Kaijuu_8_gou___02_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[LoliHouse] 怪兽8号 / Kaijuu 8-gou - 02 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ val r = parse("[LoliHouse] 怪獸8號 / Kaijuu 8-gou - 02 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -344,7 +344,7 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
@Test
public fun `667525_8_Kaijuu_8_Gou_01v2_1080p_2024_4`() {
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [01v2] [1080p] [繁日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [01v2] [1080p] [繁日內嵌] [2024年4月番]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -355,7 +355,7 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
@Test
public fun `667524_8_Kaijuu_8_Gou_01v2_1080p_2024_4`() {
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [01v2] [1080p] [简日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [01v2] [1080p] [簡日內嵌] [2024年4月番]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -366,7 +366,7 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
@Test
public fun `667461_LoliHouse_8_Kaijuu_8_gou___01_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
- val r = parse("[LoliHouse] 怪兽8号 / Kaijuu 8-gou - 01 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ val r = parse("[LoliHouse] 怪獸8號 / Kaijuu 8-gou - 01 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -377,7 +377,7 @@ public class PatternTitleParserTest怪兽8号 : PatternBasedTitleParserTestSuite
@Test
public fun `667370_8_Kaijuu_8_Gou_01_1080p_2024_4`() {
kotlin.run {
- val r = parse("[猎户压制部] 怪兽8号 / Kaijuu 8 Gou [01] [1080p] [简日内嵌] [2024年4月番]")
+ val r = parse("[獵戶壓制部] 怪獸8號 / Kaijuu 8 Gou [01] [1080p] [簡日內嵌] [2024年4月番]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
diff --git "a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\346\234\252\346\235\245\346\227\245\350\256\260.kt" "b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\346\234\252\346\235\245\346\227\245\350\256\260.kt"
index f34c06344..25f7af902 100644
--- "a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\346\234\252\346\235\245\346\227\245\350\256\260.kt"
+++ "b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\346\234\252\346\235\245\346\227\245\350\256\260.kt"
@@ -26,7 +26,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
public fun `668596_V2_DBD_Raws_Mirai_Nikki_01_26TV_OVA_1080P_BDRip_HEVC_10bit_FLACx2_MKV`() {
kotlin.run {
val r =
- parse("[V2][DBD-Raws][未来日记/Mirai Nikki/未来日記/みらいにっき][01-26TV全集+OVA][1080P][BDRip][HEVC-10bit][简繁外挂][FLACx2][MKV]")
+ parse("[V2][DBD-Raws][未來日記/Mirai Nikki/未來日記/みらいにっき][01-26TV全集+OVA][1080P][BDRip][HEVC-10bit][簡繁外掛][FLACx2][MKV]")
assertEquals("01..26+OVA", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -38,7 +38,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
public fun `655726_DBD_Mirai_Nikki_01_26TV_OVA_JPN_Ver_1080P_BDRip_AVC_FLAC_MKV`() {
kotlin.run {
val r =
- parse("[DBD製作組][未來日記/Mirai Nikki/未来日記/みらいにっき][01-26TV全集+OVA][日版/JPN.Ver][1080P][BDRip][AVC][繁體內嵌][FLAC][MKV]")
+ parse("[DBD製作組][未來日記/Mirai Nikki/未來日記/みらいにっき][01-26TV全集+OVA][日版/JPN.Ver][1080P][BDRip][AVC][繁體內嵌][FLAC][MKV]")
assertEquals("01..26+OVA", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -50,7 +50,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
public fun `655723_DBD_Mirai_Nikki_01_26TV_OVA_JPN_Ver_1080P_BDRip_AVC_FLAC_MKV`() {
kotlin.run {
val r =
- parse("[DBD制作组][未来日记/Mirai Nikki/未来日記/みらいにっき][01-26TV全集+OVA][日版/JPN.Ver][1080P][BDRip][AVC][简体内嵌][FLAC][MKV]")
+ parse("[DBD製作組][未來日記/Mirai Nikki/未來日記/みらいにっき][01-26TV全集+OVA][日版/JPN.Ver][1080P][BDRip][AVC][簡體內嵌][FLAC][MKV]")
assertEquals("01..26+OVA", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -62,7 +62,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
public fun `655722_DBD_Mirai_Nikki_01_26TV_OVA_JPN_Ver_1080P_BDRip_HEVC_10bit_FLAC_MKV`() {
kotlin.run {
val r =
- parse("[DBD制作组][未来日记/Mirai Nikki/未来日記/みらいにっき][01-26TV全集+OVA][日版/JPN.Ver][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV]")
+ parse("[DBD製作組][未來日記/Mirai Nikki/未來日記/みらいにっき][01-26TV全集+OVA][日版/JPN.Ver][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV]")
assertEquals("01..26+OVA", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -74,7 +74,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
public fun `655383_DBD_Raws_Mirai_Nikki_01_26TV_OVA_JPN_Ver_1080P_BDRip_HEVC_10bit_FLAC_MKV`() {
kotlin.run {
val r =
- parse("[DBD-Raws][未来日记/Mirai Nikki/未来日記/みらいにっき][01-26TV全集+OVA][日版/JPN.Ver][1080P][BDRip][HEVC-10bit][简繁日双语外挂][FLAC][MKV]")
+ parse("[DBD-Raws][未來日記/Mirai Nikki/未來日記/みらいにっき][01-26TV全集+OVA][日版/JPN.Ver][1080P][BDRip][HEVC-10bit][簡繁日雙語外掛][FLAC][MKV]")
assertEquals("01..26+OVA", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -86,7 +86,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
public fun `646425_Redial_Mirai_Nikki_Redial_OVA_BDRip_AVC_8bit_1080p`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 未來日記 Redial / 未来日記 リダイヤル / Mirai Nikki Redial [OVA][BDRip][AVC-8bit 1080p][繁日内嵌]")
+ parse("[❀撥雪尋春❀] 未來日記 Redial / 未來日記 リダイヤル / Mirai Nikki Redial [OVA][BDRip][AVC-8bit 1080p][繁日內嵌]")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -98,7 +98,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
public fun `646424_Redial_Mirai_Nikki_Redial_OVA_BDRip_HEVC_10bit_1080p`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 未来日记 Redial / 未来日記 リダイヤル / Mirai Nikki Redial [OVA][BDRip][HEVC-10bit 1080p][简繁日内封]")
+ parse("[❀撥雪尋春❀] 未來日記 Redial / 未來日記 リダイヤル / Mirai Nikki Redial [OVA][BDRip][HEVC-10bit 1080p][簡繁日內封]")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -110,7 +110,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
public fun `646423_Redial_Mirai_Nikki_Redial_OVA_BDRip_AVC_8bit_1080p`() {
kotlin.run {
val r =
- parse("[❀拨雪寻春❀] 未来日记 Redial / 未来日記 リダイヤル / Mirai Nikki Redial [OVA][BDRip][AVC-8bit 1080p][简日内嵌]")
+ parse("[❀撥雪尋春❀] 未來日記 Redial / 未來日記 リダイヤル / Mirai Nikki Redial [OVA][BDRip][AVC-8bit 1080p][簡日內嵌]")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -121,7 +121,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `613473_VCB_Studio_Mirai_Nikki_10_bit_1080p_HEVC_BDRip_TV_OVA_Fin`() {
kotlin.run {
- val r = parse("[VCB-Studio] 未来日记 / Mirai Nikki / 未来日記 10-bit 1080p HEVC BDRip [TV + OVA Fin]")
+ val r = parse("[VCB-Studio] 未來日記 / Mirai Nikki / 未來日記 10-bit 1080p HEVC BDRip [TV + OVA Fin]")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -133,7 +133,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
public fun `567796_DBD_Raws_Mirai_Nikki_01_26_OVA_1080P_BDRip_HEVC_10bit_FLAC_MKV`() {
kotlin.run {
val r =
- parse("[DBD-Raws&四魂字幕组][未来日记/Mirai Nikki/みらいにっき][01-26全集+OVA+特典][1080P][BDRip][HEVC-10bit][简繁外挂字幕][FLAC][MKV]")
+ parse("[DBD-Raws&四魂字幕組][未來日記/Mirai Nikki/みらいにっき][01-26全集+OVA+特典][1080P][BDRip][HEVC-10bit][簡繁外掛字幕][FLAC][MKV]")
assertEquals("01..26+OVA", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -144,7 +144,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `539339_Snow_Raws_Mirai_Nikki_2011_2011_BD_1920x1080_HEVC_YUV420P10_FLAC`() {
kotlin.run {
- val r = parse("[Snow-Raws] 未来日记/Mirai Nikki 2011/未来日記 2011 (BD 1920x1080 HEVC-YUV420P10 FLAC)")
+ val r = parse("[Snow-Raws] 未來日記/Mirai Nikki 2011/未來日記 2011 (BD 1920x1080 HEVC-YUV420P10 FLAC)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -155,7 +155,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `532515_Mirai_Nikki_01_BD_1920x1080_HEVC_x265_10bit`() {
kotlin.run {
- val r = parse("未来日记 Mirai Nikki 01 [BD 1920x1080 HEVC x265 10bit][简繁内封字幕]")
+ val r = parse("未來日記 Mirai Nikki 01 [BD 1920x1080 HEVC x265 10bit][簡繁內封字幕]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -166,7 +166,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `532499_Mirai_Nikki_1_26_OVA_BD_1920x1080_HEVC_10bit_2011`() {
kotlin.run {
- val r = parse("未来日记 Mirai Nikki 1-26+OVA [BD 1920x1080 HEVC 10bit][简繁内封字幕][2011年]")
+ val r = parse("未來日記 Mirai Nikki 1-26+OVA [BD 1920x1080 HEVC 10bit][簡繁內封字幕][2011年]")
assertEquals("01..26+OVA", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -188,7 +188,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `531687_Redial_Mirai_Nikki_Redial_OVA_BDrip_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【未来日记Redial Mirai Nikki Redial】【OVA】【BDrip】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【未來日記Redial Mirai Nikki Redial】【OVA】【BDrip】【GB_MP4】【1920X1080】")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -210,7 +210,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `531685_Redial_Mirai_Nikki_Redial_OVA_BDrip_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【未来日记Redial Mirai Nikki Redial】【OVA】【BDrip】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【未來日記Redial Mirai Nikki Redial】【OVA】【BDrip】【GB_MP4】【1280X720】")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -232,7 +232,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `412839__11_Mirai_Nikki_1_26_OVA_BDRIP_720P_X264_10bit_AACx2`() {
kotlin.run {
- val r = parse("[异域-11番小队][未来日记 Mirai Nikki][1-26+OVA][BDRIP][720P][X264-10bit_AACx2]")
+ val r = parse("[異域-11番小隊][未來日記 Mirai Nikki][1-26+OVA][BDRIP][720P][X264-10bit_AACx2]")
assertEquals("01..26+OVA", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -289,7 +289,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `318886_Kuu_Mirai_Nikki_Redial_v2_480p_D15521BB_mkv_OVA`() {
kotlin.run {
- val r = parse("[Kuu]Mirai Nikki Redial v2 [480p][D15521BB] mkv 未来日记 OVA [内封西班牙文字幕]")
+ val r = parse("[Kuu]Mirai Nikki Redial v2 [480p][D15521BB] mkv 未來日記 OVA [內封西班牙文字幕]")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -300,7 +300,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `318885_GotWoot_Mirai_Nikki_Redial_DVD_576p_1F730058_mkv_OVA`() {
kotlin.run {
- val r = parse("[GotWoot] Mirai Nikki Redial [DVD 576p][1F730058] mkv 未来日记 OVA [内封英文]")
+ val r = parse("[GotWoot] Mirai Nikki Redial [DVD 576p][1F730058] mkv 未來日記 OVA [內封英文]")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("ENG, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -311,7 +311,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `318883_Mirai_nikki_Redial___OVA_mkv`() {
kotlin.run {
- val r = parse("Mirai nikki Redial - OVA mkv 未来日记")
+ val r = parse("Mirai nikki Redial - OVA mkv 未來日記")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -322,7 +322,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `318882_Perry_Mirai_Nikki_Redial_OVA`() {
kotlin.run {
- val r = parse("[Perry] Mirai Nikki Redial OVA 未来日记 [内封西班牙文]")
+ val r = parse("[Perry] Mirai Nikki Redial OVA 未來日記 [內封西班牙文]")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -334,7 +334,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
public fun `318873_kjnevicikal_Mirai_nikki_redial_OVA_720x480_AVC_AAC_eng_subs_ASS_OVA`() {
kotlin.run {
val r =
- parse("[kjnevicikal] Mirai nikki redial OVA 720x480 AVC AAC + eng subs ASS 未来日记 OVA [外挂英文]")
+ parse("[kjnevicikal] Mirai nikki redial OVA 720x480 AVC AAC + eng subs ASS 未來日記 OVA [外掛英文]")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("ENG, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -345,7 +345,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `318870_HiNA_Betsuni_Mirai_Nikki_OVA_480p_DVD_A558F62A_mkv_OAD`() {
kotlin.run {
- val r = parse("[HiNA-Betsuni] Mirai Nikki OVA [480p DVD] [A558F62A].mkv 未来日记 OAD 第0集短篇[内封英文]")
+ val r = parse("[HiNA-Betsuni] Mirai Nikki OVA [480p DVD] [A558F62A].mkv 未來日記 OAD 第0集短篇[內封英文]")
assertEquals("OAD..OAD", r.episodeRange.toString())
assertEquals("ENG, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -356,7 +356,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `318867_Final8_Mirai_Nikki___01_26_BD_10_bit_1920x1080_x264_FLAC`() {
kotlin.run {
- val r = parse("[Final8]Mirai Nikki - 01-26 (BD 10-bit 1920x1080 x264 FLAC) 未来日记 [内封英文]")
+ val r = parse("[Final8]Mirai Nikki - 01-26 (BD 10-bit 1920x1080 x264 FLAC) 未來日記 [內封英文]")
assertEquals("01..26", r.episodeRange.toString())
assertEquals("ENG, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -367,7 +367,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `318865_Mirai_Nikki_Future_Diary_Dual_Audio_1080p`() {
kotlin.run {
- val r = parse("Mirai Nikki (Future Diary) Dual-Audio 1080p 未来日记")
+ val r = parse("Mirai Nikki (Future Diary) Dual-Audio 1080p 未來日記")
assertEquals("null", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -379,7 +379,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
public fun `318864_RCOS_Mirai_Nikki_BDRip_1920x1080_x264_Hi10P_FLAC_By_Arab_Bluray_com`() {
kotlin.run {
val r =
- parse("[RCOS] Mirai Nikki BDRip 1920x1080 x264 Hi10P FLAC By Arab Bluray.com 未来日记 [内封阿拉伯文]")
+ parse("[RCOS] Mirai Nikki BDRip 1920x1080 x264 Hi10P FLAC By Arab Bluray.com 未來日記 [內封阿拉伯文]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -390,7 +390,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `318863_Mirai_Nikki_BDRip_1920x1080_x264_FLAC`() {
kotlin.run {
- val r = parse("Mirai Nikki 未来日记 [BDRip 1920x1080 x264 FLAC]")
+ val r = parse("Mirai Nikki 未來日記 [BDRip 1920x1080 x264 FLAC]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -447,7 +447,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `313906_OVA_Redial_Mirai_Nikki_Redial_DVDrip_GB_480P_RV10_MP4`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【OVA】【未来日记Redial Mirai Nikki Redial】【DVDrip】【GB_480P】【RV10&MP4】")
+ val r = parse("【幻櫻字幕組】【OVA】【未來日記Redial Mirai Nikki Redial】【DVDrip】【GB_480P】【RV10&MP4】")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -458,7 +458,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `306714_OVA_Redial_Mirai_Nikki_Redial_GB_MP4_396P_nico`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【OVA】【未来日记Redial Mirai Nikki Redial】【GB_MP4】【396P】【nico先行版】")
+ val r = parse("【幻櫻字幕組】【OVA】【未來日記Redial Mirai Nikki Redial】【GB_MP4】【396P】【nico先行版】")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -469,7 +469,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `306036_Mirai_Nikki_BDRIP_Vol_1_9_BIG5_GB_720P_MKV`() {
kotlin.run {
- val r = parse("【四魂制作组】[Mirai Nikki 未来日记][BDRIP][Vol.1-9][BIG5_GB][720P_MKV][全集](附特典)")
+ val r = parse("【四魂製作組】[Mirai Nikki 未來日記][BDRIP][Vol.1-9][BIG5_GB][720P_MKV][全集](附特典)")
assertEquals("01..09", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -480,7 +480,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `272715_Mirai_Nikki_BDRIP_Vol_1_9_BIG5_GB_1080P_MKV`() {
kotlin.run {
- val r = parse("【四魂制作组】[Mirai Nikki 未来日记][BDRIP][Vol.1-9][BIG5_GB][1080P_MKV][全集](附特典)")
+ val r = parse("【四魂製作組】[Mirai Nikki 未來日記][BDRIP][Vol.1-9][BIG5_GB][1080P_MKV][全集](附特典)")
assertEquals("01..09", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -491,7 +491,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `270064__11_Mirai_nikki_BDRIP_1_26_SP_X264_AAC_720P_10bit`() {
kotlin.run {
- val r = parse("[异域-11番小队][未来日记Mirai_nikki][BDRIP][1-26+SP][X264_AAC][720P][10bit] 更新第10话字幕")
+ val r = parse("[異域-11番小隊][未來日記Mirai_nikki][BDRIP][1-26+SP][X264_AAC][720P][10bit] 更新第10話字幕")
assertEquals("01..26+SP", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -502,7 +502,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `269329__11_Mirai_nikki_BDRIP_1_26_SP_X264_AAC_720P`() {
kotlin.run {
- val r = parse("[异域-11番小队][未来日记Mirai_nikki][BDRIP][1-26+SP][X264_AAC][720P] 更新第10话字幕")
+ val r = parse("[異域-11番小隊][未來日記Mirai_nikki][BDRIP][1-26+SP][X264_AAC][720P] 更新第10話字幕")
assertEquals("01..26+SP", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -524,7 +524,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `267844_10_01_26_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][01-26(全集)][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][01-26(全集)][848X480][簡體][RMVB]")
assertEquals("01..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -546,7 +546,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `262990_Mirai_Nikki_BDRIP_Vol_7_BIG5_GB_1080P_MKV_OST`() {
kotlin.run {
- val r = parse("【四魂制作组】[Mirai Nikki 未来日记][BDRIP][Vol.7][BIG5_GB][1080P_MKV](附OST特典)")
+ val r = parse("【四魂製作組】[Mirai Nikki 未來日記][BDRIP][Vol.7][BIG5_GB][1080P_MKV](附OST特典)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -557,7 +557,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `262989_Mirai_Nikki_BDRIP_Vol_6_BIG5_GB_1080P_MKV_OST`() {
kotlin.run {
- val r = parse("【四魂制作组】[Mirai Nikki 未来日记][BDRIP][Vol.6][BIG5_GB][1080P_MKV](附OST特典)")
+ val r = parse("【四魂製作組】[Mirai Nikki 未來日記][BDRIP][Vol.6][BIG5_GB][1080P_MKV](附OST特典)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -568,7 +568,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `262988_Mirai_Nikki_BDRIP_Vol_5_BIG5_GB_1080P_MKV_OST`() {
kotlin.run {
- val r = parse("【四魂制作组】[Mirai Nikki 未来日记][BDRIP][Vol.5][BIG5_GB][1080P_MKV](附OST特典)")
+ val r = parse("【四魂製作組】[Mirai Nikki 未來日記][BDRIP][Vol.5][BIG5_GB][1080P_MKV](附OST特典)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -579,7 +579,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `262987_Mirai_Nikki_BDRIP_Vol_4_BIG5_GB_1080P_MKV_OST`() {
kotlin.run {
- val r = parse("【四魂制作组】[Mirai Nikki 未来日记][BDRIP][Vol.4][BIG5_GB][1080P_MKV](附OST特典)")
+ val r = parse("【四魂製作組】[Mirai Nikki 未來日記][BDRIP][Vol.4][BIG5_GB][1080P_MKV](附OST特典)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -590,7 +590,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `261984_ReinForce_Mirai_Nikki___Vol_6_BDRip_1920x1080_x264_FLAC`() {
kotlin.run {
- val r = parse("[ReinForce] 未来日记 Mirai Nikki - Vol.6 (BDRip 1920x1080 x264 FLAC)")
+ val r = parse("[ReinForce] 未來日記 Mirai Nikki - Vol.6 (BDRip 1920x1080 x264 FLAC)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -601,7 +601,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `260354_TSDM_Mirai_Nikki_1_24_480P_BIG5_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][1-24][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][1-24][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("01..24", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -612,7 +612,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `260353_TSDM_Mirai_Nikki_1_24_480P_GB_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][1-24][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][1-24][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("01..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -623,7 +623,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `259171_Mirai_Nikki_1_26FIN_720p_MKV`() {
kotlin.run {
- val r = parse("【诸神字幕組】[未来日记][Mirai Nikki][1~26FIN][720p][中日双语字幕][MKV]")
+ val r = parse("【諸神字幕組】[未來日記][Mirai Nikki][1~26FIN][720p][中日雙語字幕][MKV]")
assertEquals("01..26", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -634,7 +634,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `252806_Mirai_Nikki_720P_MKV_ASS`() {
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai Nikki 未来日记][720P][MKV+ASS]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai Nikki 未來日記][720P][MKV+ASS]")
assertEquals("null", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -645,7 +645,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `252310_TSDM_Mirai_Nikki_1_26FIN_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][1~26FIN][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][1~26FIN][720p][簡繁內掛][MKV]")
assertEquals("01..26", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -656,7 +656,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `252305_TSDM_Mirai_Nikki_26_END_480P_GB_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][26_END][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][26_END][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -667,7 +667,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `252304_TSDM_Mirai_Nikki_26_END_480P_BIG5_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][26_END][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][26_END][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -678,7 +678,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `252303_TSDM_Mirai_Nikki_26_END_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][26_END][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][26_END][720p][簡繁內掛][MKV]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -689,7 +689,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `251657_10_Mirai_Nikki_01_26_GB_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][01-26][GB][MP4][全]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][01-26][GB][MP4][全]")
assertEquals("01..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -700,7 +700,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `251656_10_Mirai_Nikki_23_26_GB_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][23-26][GB][MP4][连载完毕]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][23-26][GB][MP4][連載完畢]")
assertEquals("23..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -788,7 +788,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `251328_Mirai_Nikki_01_26_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][01-26][完结合集][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][01-26][完結合集][1024x576][簡體][MP4]")
assertEquals("01..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -843,7 +843,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `251217_Mirai_Nikki_26_END_GB_x264_848X480_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][26 END][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][26 END][GB][x264][848X480][mp4]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -854,7 +854,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `251216_Mirai_Nikki_26_END_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][26 END][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][26 END][GB][x264][1280X720][mp4]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -876,7 +876,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `251178_Mirai_Nikki_26_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][26][完结][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][26][完結][1024x576][簡體][MP4]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -887,7 +887,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `251171_Mirai_Nikki_1_26_720P_MKV`() {
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][1-26][合集][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][1-26][合集][720P][繁簡外掛][MKV]")
assertEquals("01..26", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -898,7 +898,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `251160_Mirai_Nikki_26_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][01-26][完结合集][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][01-26][完結合集][1280x720][簡體][MKV]")
assertEquals("01..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -920,7 +920,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `251136_TSDM_Mirai_Nikki_25_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][25][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][25][720p][簡繁內掛][MKV]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -964,7 +964,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `251094_10_26_END_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][26 END][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][26 END][848X480][簡體][RMVB]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1041,7 +1041,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `251078_10_Mirai_Nikki_26_GB_RV10_848X480_END`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 26【GB_RV10】【848X480】【END】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 26【GB_RV10】【848X480】【END】")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1052,7 +1052,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `251012_Mirai_Nikki_25_720P_MKV`() {
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][25][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][25][720P][繁簡外掛][MKV]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1063,7 +1063,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `250662_Mirai_Nikki_BDRIP_Vol_3_BIG5_GB_1080P_MKV_OST`() {
kotlin.run {
- val r = parse("【四魂制作组】[Mirai Nikki 未来日记][BDRIP][Vol.3][BIG5_GB][1080P_MKV](附OST特典)")
+ val r = parse("【四魂製作組】[Mirai Nikki 未來日記][BDRIP][Vol.3][BIG5_GB][1080P_MKV](附OST特典)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1074,7 +1074,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `250661_Mirai_Nikki_BDRIP_Vol_2_BIG5_GB_1080P_MKV_OST`() {
kotlin.run {
- val r = parse("【四魂制作组】[Mirai Nikki 未来日记][BDRIP][Vol.2][BIG5_GB][1080P_MKV](附OST特典)")
+ val r = parse("【四魂製作組】[Mirai Nikki 未來日記][BDRIP][Vol.2][BIG5_GB][1080P_MKV](附OST特典)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1085,7 +1085,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `250660_Mirai_Nikki_BDRIP_Vol_1_BIG5_GB_1080P_MKV_OST`() {
kotlin.run {
- val r = parse("【四魂制作组】[Mirai Nikki 未来日记][BDRIP][Vol.1][BIG5_GB][1080P_MKV](附OST特典)")
+ val r = parse("【四魂製作組】[Mirai Nikki 未來日記][BDRIP][Vol.1][BIG5_GB][1080P_MKV](附OST特典)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1129,7 +1129,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `250498_Mirai_Nikki_25_GB_x264_848X480_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][25][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][25][GB][x264][848X480][mp4]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1140,7 +1140,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `250497_Mirai_Nikki_25_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][25][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][25][GB][x264][1280X720][mp4]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1151,7 +1151,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `250353_Drei_Raws_Mirai_Nikki_Vol_3_Vol_4_BDRip_1920x1080_AVC_Hi10p_FLACx2`() {
kotlin.run {
- val r = parse("[Drei-Raws][未来日记_Mirai_Nikki][Vol.3-Vol.4][BDRip][1920x1080][AVC_Hi10p_FLACx2]")
+ val r = parse("[Drei-Raws][未來日記_Mirai_Nikki][Vol.3-Vol.4][BDRip][1920x1080][AVC_Hi10p_FLACx2]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1162,7 +1162,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `250344_TSDM_Mirai_Nikki_25_480P_GB_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][25][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][25][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1173,7 +1173,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `250343_TSDM_Mirai_Nikki_25_480P_BIG5_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][25][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][25][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1184,7 +1184,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `250302_Mirai_Nikki_25_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][25][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][25][1280x720][簡體][MKV]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1206,7 +1206,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `250181_Mirai_Nikki_25_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][25][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][25][1024x576][簡體][MP4]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1239,7 +1239,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `250122_10_25_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][25][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][25][848X480][簡體][RMVB]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1294,7 +1294,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `250107_10_Mirai_Nikki_25_GB_RV10_848X480`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 25【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 25【GB_RV10】【848X480】")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1327,7 +1327,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `249408_Mirai_Nikki_20_24_720P_MKV`() {
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][20-24][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][20-24][720P][繁簡外掛][MKV]")
assertEquals("20..24", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1349,7 +1349,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `249374_Mirai_Nikki_24_GB_x264_848X480_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][24][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][24][GB][x264][848X480][mp4]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1360,7 +1360,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `249373_Mirai_Nikki_24_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][24][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][24][GB][x264][1280X720][mp4]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1404,7 +1404,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `249300_Mirai_Nikk_24_720P_mkv`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『24』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『24』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1426,7 +1426,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `249248_Mirai_Nikki_24_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][24][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][24][1024x576][簡體][MP4]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1437,7 +1437,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `249247_Mirai_Nikki_24_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][24][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][24][1280x720][簡體][MKV]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1470,7 +1470,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `249237_TSDM_Mirai_Nikki_23_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][24][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][24][720p][簡繁內掛][MKV]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1514,7 +1514,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `249216_TSDM_Mirai_Nikki_24_480P_GB_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][24][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][24][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1525,7 +1525,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `249214_TSDM_Mirai_Nikki_24_480P_BIG5_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][24][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][24][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1536,7 +1536,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `249213_10_24_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][24][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][24][848X480][簡體][RMVB]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1558,7 +1558,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `249209_10_Mirai_Nikki_24_GB_RV10_848X480`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 24【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 24【GB_RV10】【848X480】")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1591,7 +1591,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `248820_10_Mirai_Nikki_21v2_GB_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][21v2][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][21v2][GB][MP4]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1602,7 +1602,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `248731_10_Mirai_Nikki_21_22_GB_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][21-22][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][21-22][GB][MP4]")
assertEquals("21..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1613,7 +1613,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `248658_Mirai_Nikki_22_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][22][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][22][1280x720][簡體][MKV]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1635,7 +1635,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `248574_TSDM_Mirai_Nikki_23_480P_BIG5_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][23][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][23][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1646,7 +1646,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `248573_TSDM_Mirai_Nikki_23_480P_GB_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][23][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][23][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1690,7 +1690,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `248480_TSDM_Mirai_Nikki_23_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][23][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][23][720p][簡繁內掛][MKV]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1701,7 +1701,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `248340_Mirai_Nikki_23_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][23][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][23][1280x720][簡體][MKV]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1723,7 +1723,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `248337_Mirai_Nikki_23_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][23][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][23][1024x576][簡體][MP4]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1734,7 +1734,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `248322_Mirai_Nikk_23_720P_mkv`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『23』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『23』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1745,7 +1745,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `248319_Mirai_Nikki_23_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][23][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][23][GB][x264][1280X720][mp4]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1756,7 +1756,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `248318_Mirai_Nikki_23_GB_x264_848X480_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][23][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][23][GB][x264][848X480][mp4]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1767,7 +1767,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `248298_10_Mirai_Nikki_23_GB_RV10_848X480`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 23【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 23【GB_RV10】【848X480】")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1778,7 +1778,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `248262_10_23_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][23][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][23][848X480][簡體][RMVB]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1855,7 +1855,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `248061_BBA_18_GB_1024x576_MP4_115`() {
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[18][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[18][GB][1024x576][MP4]附115&招募中")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1866,7 +1866,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `247945_TSDM_Mirai_Nikki_22_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][22][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][22][720p][簡繁內掛][MKV]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1888,7 +1888,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `247776_TSDM_Mirai_Nikki_21_22_480P_GB_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][21-22][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][21-22][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("21..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1899,7 +1899,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `247775_TSDM_Mirai_Nikki_21_22_480P_BIG5_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][21-22][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][21-22][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("21..22", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1932,7 +1932,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `247391_Mirai_Nikki_22_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][22][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][22][GB][x264][1280X720][mp4]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1943,7 +1943,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `247390_Mirai_Nikki_22_GB_x264_848X480_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][22][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][22][GB][x264][848X480][mp4]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -1954,7 +1954,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `247348_Mirai_Nikki_22_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][22][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][22][1024x576][簡體][MP4]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1976,7 +1976,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `247313_Mirai_Nikk_22_720P_mkv`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『22』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『22』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1987,7 +1987,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `247276_10_22_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][22][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][22][848X480][簡體][RMVB]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2064,7 +2064,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `247237_10_Mirai_Nikki_22_GB_RV10_848X480`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 22【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 22【GB_RV10】【848X480】")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2108,7 +2108,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `246771_10_Mirai_Nikki_11_13_GB_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][11-13][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][11-13][GB][MP4]")
assertEquals("11..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2119,7 +2119,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `246647_TSDM_Mirai_Nikki_21_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][21][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][21][720p][簡繁內掛][MKV]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2130,7 +2130,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `246526_Mirai_Nikki_21_GB_x264_848X480_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][21][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][21][GB][x264][848X480][mp4]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2141,7 +2141,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `246525_Mirai_Nikki_21_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][21][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][21][GB][x264][1280X720][mp4]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2152,7 +2152,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `246524_Mirai_Nikki_20_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][20][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][20][GB][x264][1280X720][mp4]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2196,7 +2196,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `246451_Mirai_Nikki_21_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][21][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][21][1024x576][簡體][MP4]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2207,7 +2207,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `246450_Mirai_Nikki_21_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][21][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][21][1280x720][簡體][MKV]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2218,7 +2218,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `246421_Mirai_Nikk_21_720P_mkv`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『21』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『21』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2273,7 +2273,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `246372_10_21_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][21][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][21][848X480][簡體][RMVB]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2306,7 +2306,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `246363_10_Mirai_Nikki_21_GB_RV10_848X480`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 21【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 21【GB_RV10】【848X480】")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2317,7 +2317,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `245315_w_BBA_17_GB_1024x576_MP4_115`() {
kotlin.run {
- val r = parse("内有重要通报=w=【BBA字幕组】【未来日记】[17][GB][1024x576][MP4]附115&招募中")
+ val r = parse("內有重要通報=w=【BBA字幕組】【未來日記】[17][GB][1024x576][MP4]附115&招募中")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2350,7 +2350,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `244908_10_Mirai_Nikki_19_20_GB_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][19-20][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][19-20][GB][MP4]")
assertEquals("19..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2372,7 +2372,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `244720_Mirai_Nikki_20_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][20][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][20][1280x720][簡體][MKV]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2383,7 +2383,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `244598_Mirai_Nikk_20_1280x720_AAC`() {
kotlin.run {
- val r = parse("[萌月字幕组][未来日记][Mirai Nikk][20][1280x720 AAC]")
+ val r = parse("[萌月字幕組][未來日記][Mirai Nikk][20][1280x720 AAC]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2427,7 +2427,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `244557_Mirai_Nikki_20_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][20][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][20][1024x576][簡體][MP4]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2460,7 +2460,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `244502_TSDM_Mirai_Nikki_20_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][20][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][20][720p][簡繁內掛][MKV]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2471,7 +2471,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `244479_TSDM_Mirai_Nikki_20_480P_GB_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][20][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][20][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2482,7 +2482,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `244478_TSDM_Mirai_Nikki_20_480P_BIG5_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][20][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][20][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2515,7 +2515,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `244475_10_20_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][20][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][20][848X480][簡體][RMVB]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2548,7 +2548,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `244467_10_Mirai_Nikki_20_GB_RV10_848X480`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 20【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 20【GB_RV10】【848X480】")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2559,7 +2559,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `244424_Mirai_Nikki_19_720P_MKV`() {
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][19][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][19][720P][繁簡外掛][MKV]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2570,7 +2570,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `244151_BBA_16_GB_1024x576_MP4_115`() {
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[16][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[16][GB][1024x576][MP4]附115&招募中")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2636,7 +2636,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `243727_Mirai_Nikki_19_GB_x264_848X480_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][19][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][19][GB][x264][848X480][mp4]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2647,7 +2647,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `243724_Mirai_Nikki_19_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][19][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][19][GB][x264][1280X720][mp4]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2658,7 +2658,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `243642_Mirai_Nikk_19_1280x720_AAC`() {
kotlin.run {
- val r = parse("[萌月字幕组][未来日记][Mirai Nikk][19][1280x720 AAC]")
+ val r = parse("[萌月字幕組][未來日記][Mirai Nikk][19][1280x720 AAC]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2680,7 +2680,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `243617_Mirai_Nikki_19_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][19][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][19][1280x720][簡體][MKV]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2702,7 +2702,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `243611_Mirai_Nikki_19_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][19][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][19][1024x576][簡體][MP4]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2735,7 +2735,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `243579_TSDM_Mirai_Nikki_19_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][19][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][19][720p][簡繁內掛][MKV]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2746,7 +2746,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `243575_TSDM_Mirai_Nikki_19_480P_BIG5_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][19][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][19][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2779,7 +2779,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `243567_10_19_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][19][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][19][848X480][簡體][RMVB]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2790,7 +2790,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `243566_10_Mirai_Nikki_19_GB_RV10_848X480`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 19【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 19【GB_RV10】【848X480】")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2801,7 +2801,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `243269_10_Mirai_Nikki_15_18_GB_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][15-18][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][15-18][GB][MP4]")
assertEquals("15..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2823,7 +2823,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `243156_Mirai_Nikki_18_720P_MKV`() {
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][18][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][18][720P][繁簡外掛][MKV]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2856,7 +2856,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `243098_Mirai_Nikk_18_720P_mkv`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『18』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『18』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2878,7 +2878,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `242801_Mirai_Nikki_18_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][18][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][18][GB][x264][1280X720][mp4]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2889,7 +2889,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `242800_Mirai_Nikki_18_GB_x264_848X480_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][18][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][18][GB][x264][848X480][mp4]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -2922,7 +2922,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `242750_Mirai_Nikki_18_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][18][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][18][1024x576][簡體][MP4]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2933,7 +2933,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `242744_Mirai_Nikki_18_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][18][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][18][1280x720][簡體][MKV]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2977,7 +2977,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `242697_TSDM_Mirai_Nikki_18_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][18][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][18][720p][簡繁內掛][MKV]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3010,7 +3010,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `242689_10_18_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][18][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][18][848X480][簡體][RMVB]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3032,7 +3032,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `242687_TSDM_Mirai_Nikki_18_480P_GB_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][18][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][18][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3054,7 +3054,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `242683_TSDM_Mirai_Nikki_18_480P_BIG5_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][18][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][18][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3065,7 +3065,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `242675_10_Mirai_Nikki_18_GB_RV10_848X480`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 18【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 18【GB_RV10】【848X480】")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3076,7 +3076,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `242468_BBA_15_GB_1024x576_MP4_115`() {
kotlin.run {
- val r = parse("内详+附特效【BBA字幕组】【未来日记】[15][GB][1024x576][MP4]附115&招募中")
+ val r = parse("內詳+附特效【BBA字幕組】【未來日記】[15][GB][1024x576][MP4]附115&招募中")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3087,7 +3087,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `242348_Mirai_Nikki_17_720P_MKV`() {
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][17][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][17][720P][繁簡外掛][MKV]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3120,7 +3120,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `242233_Drei_Raws_Mirai_Nikki_Vol_1_Vol_2_BDRip_1920x1080_AVC_Hi10p_FLACx2`() {
kotlin.run {
- val r = parse("[Drei-Raws][未来日记_Mirai_Nikki][Vol.1-Vol.2][BDRip][1920x1080][AVC_Hi10p_FLACx2]")
+ val r = parse("[Drei-Raws][未來日記_Mirai_Nikki][Vol.1-Vol.2][BDRip][1920x1080][AVC_Hi10p_FLACx2]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3153,7 +3153,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `241956_Mirai_Nikki_17_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][17][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][17][GB][x264][1280X720][mp4]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3164,7 +3164,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `241955_Mirai_Nikki_17_GB_x264_848X480_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][17][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][17][GB][x264][848X480][mp4]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3186,7 +3186,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `241874_Mirai_Nikk_17_720P_mkv`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『17』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『17』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3208,7 +3208,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `241763_Mirai_Nikki_17_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][17][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][17][1024x576][簡體][MP4]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3230,7 +3230,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `241753_Mirai_Nikki_17_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][17][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][17][1280x720][簡體][MKV]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3241,7 +3241,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `241728_TSDM_Mirai_Nikki_17_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][17][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][17][720p][簡繁內掛][MKV]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3263,7 +3263,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `241726_10_17_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][17][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][17][848X480][簡體][RMVB]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3296,7 +3296,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `241698_TSDM_Mirai_Nikki_17_480P_GB_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][17][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][17][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3318,7 +3318,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `241689_TSDM_Mirai_Nikki_17_480P_BIG5_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][17][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][17][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3351,7 +3351,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `241682_10_Mirai_Nikki_17_GB_RV10_848X480`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 17【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 17【GB_RV10】【848X480】")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3384,7 +3384,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `241235_Mirai_Nikki_16_720P_MKV`() {
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][16][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][16][720P][繁簡外掛][MKV]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3395,7 +3395,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `241219_Mirai_Nikki_15_720P_MKV`() {
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][15][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][15][720P][繁簡外掛][MKV]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3417,7 +3417,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `241042_Mirai_Nikk_16_720P_mkv`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『16』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『16』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3450,7 +3450,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `240868_Mirai_Nikki_16_GB_x264_848X480_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][16][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][16][GB][x264][848X480][mp4]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3461,7 +3461,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `240867_Mirai_Nikki_16_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][16][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][16][GB][x264][1280X720][mp4]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3472,7 +3472,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `240819_TSDM_Mirai_Nikki_16_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][16][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][16][720p][簡繁內掛][MKV]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3483,7 +3483,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `240815_10_16_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][16][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][16][848X480][簡體][RMVB]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3505,7 +3505,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `240799_Mirai_Nikki_16_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][16][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][16][1024x576][簡體][MP4]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3527,7 +3527,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `240792_Mirai_Nikki_16_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][16][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][16][1280x720][簡體][MKV]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3538,7 +3538,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `240776_TSDM_Mirai_Nikki_16_480P_GB_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][16][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][16][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3549,7 +3549,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `240773_TSDM_Mirai_Nikki_16_480P_BIG5_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][16][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][16][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3615,7 +3615,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `240762_10_Mirai_Nikki_16_GB_RV10_848X480`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 16【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 16【GB_RV10】【848X480】")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3670,7 +3670,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `240436_Mirai_Nikki_15_GB_x264_848X480_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][15][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][15][GB][x264][848X480][mp4]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3681,7 +3681,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `240434_Mirai_Nikki_15_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][15][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][15][GB][x264][1280X720][mp4]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3725,7 +3725,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `240176_TSDM_Mirai_Nikki_15_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][15][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][15][720p][簡繁內掛][MKV]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3736,7 +3736,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `240155_TSDM_Mirai_Nikki_15_480P_BIG5_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][15][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][15][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3747,7 +3747,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `240154_TSDM_Mirai_Nikki_15_480P_GB_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][15][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][15][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3758,7 +3758,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `240086_Mirai_Nikk_15_720P_mkv`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『15』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『15』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3769,7 +3769,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `240007_10_Mirai_Nikki_15_GB_RV10_848X480`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 15【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 15【GB_RV10】【848X480】")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3780,7 +3780,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `239975_Mirai_Nikki_15_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][15][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][15][1024x576][簡體][MP4]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3802,7 +3802,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `239972_Mirai_Nikki_15_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][15][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][15][1280x720][簡體][MKV]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3835,7 +3835,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `239938_10_15_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][15][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][15][848X480][簡體][RMVB]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3857,7 +3857,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `239769_Mirai_Nikki_13_720P_MKV`() {
kotlin.run {
- val r = parse("轉[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][13][720P][繁简外挂][MKV]")
+ val r = parse("轉[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][13][720P][繁簡外掛][MKV]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3868,7 +3868,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `239755_Mirai_Nikki_14_720P_MKV`() {
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][14][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][14][720P][繁簡外掛][MKV]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3890,7 +3890,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `239471_BBA_14_GB_1024x576_MP4_115`() {
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[14][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[14][GB][1024x576][MP4]附115&招募中")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3913,7 +3913,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `239299_10_Mirai_Nikki_14_GB_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][14][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][14][GB][MP4]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3924,7 +3924,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `239185_Mirai_Nikk_14_720P_mkv`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『14』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『14』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3935,7 +3935,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `239169_Mirai_Nikki_14_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][14][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][14][GB][x264][1280X720][mp4]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3946,7 +3946,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `239168_Mirai_Nikki_14_GB_x264_848X480_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][14][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][14][GB][x264][848X480][mp4]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -3979,7 +3979,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `239095_10_Mirai_Nikki_14_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][14][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][14][1280x720][簡體][MKV]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3990,7 +3990,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `239091_10_Mirai_Nikki_14_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][14][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][14][1024x576][簡體][MP4]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4012,7 +4012,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `239049_TSDM_Mirai_Nikki_14_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][14][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][14][720p][簡繁內掛][MKV]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4056,7 +4056,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `239005_TSDM_Mirai_Nikki_14_480P_BIG5_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][14][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][14][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4067,7 +4067,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `239004_TSDM_Mirai_Nikki_14_480P_GB_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][14][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][14][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4100,7 +4100,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `238996_10_14_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][14][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][14][848X480][簡體][RMVB]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4122,7 +4122,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `238993_10_Mirai_Nikki_14_GB_RV10_848X480`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 14【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 14【GB_RV10】【848X480】")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4166,7 +4166,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `238633_BBA_13_GB_1024x576_MP4`() {
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[13][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[13][GB][1024x576][MP4]附115&招募中")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4199,7 +4199,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `238385_Mirai_Nikki_13_GB_x264_848X480_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][13][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][13][GB][x264][848X480][mp4]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4210,7 +4210,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `238382_Mirai_Nikki_13_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][13][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][13][GB][x264][1280X720][mp4]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4221,7 +4221,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `238360_Mirai_Nikk_13_720P_mkv`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『13』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『13』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4276,7 +4276,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `238292_10_Mirai_Nikki_13_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][13][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][13][1024x576][簡體][MP4]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4298,7 +4298,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `238283_10_Mirai_Nikki_13_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][13][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][13][1280x720][簡體][MKV]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4309,7 +4309,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `238266_TSDM_Mirai_Nikki_13_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][13][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][13][720p][簡繁內掛][MKV]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4320,7 +4320,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `238238_TSDM_Mirai_Nikki_13_480P_GB_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][13][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][13][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4331,7 +4331,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `238235_TSDM_Mirai_Nikki_13_480P_BIG5_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][13][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][13][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4342,7 +4342,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `238230_10_13_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][13][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][13][848X480][簡體][RMVB]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4386,7 +4386,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `238223_10_Mirai_Nikki_13_GB_RV10_848X480`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 13【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 13【GB_RV10】【848X480】")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4408,7 +4408,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `237593_Mirai_Nikki_01_12_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][01-12][1024x576][简体合集][MP4][招募压制]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][01-12][1024x576][簡體合集][MP4][招募壓制]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4419,7 +4419,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `237591_Mirai_Nikki_01_12_1024x576_RMVB`() {
kotlin.run {
- val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][01-12][1024x576][繁體合集][RMVB][招募压制]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][01-12][1024x576][繁體合集][RMVB][招募壓制]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4430,7 +4430,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `237589_Mirai_Nikki_01_12_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [未来日记][Mirai Nikki][01-12][1280x720][简体][MKV合集][招募压制]")
+ val r = parse("【異域字幕組】★ [未來日記][Mirai Nikki][01-12][1280x720][簡體][MKV合集][招募壓制]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4441,7 +4441,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `237511_BBA_12_GB_1024x576_MP4`() {
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[12][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[12][GB][1024x576][MP4]附115&招募中")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4474,7 +4474,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `237282_Mirai_Nikki_12_720P_MKV`() {
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][12][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][12][720P][繁簡外掛][MKV]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4485,7 +4485,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `237204_Mirai_Nikki_12_GB_x264_848X480_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][12][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][12][GB][x264][848X480][mp4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4496,7 +4496,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `237203_Mirai_Nikki_12_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][12][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][12][GB][x264][1280X720][mp4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4518,7 +4518,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `237089_Mirai_Nikki_11_720P_MKV`() {
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][11][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][11][720P][繁簡外掛][MKV]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4529,7 +4529,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `237058_10_Mirai_Nikki_12_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][12][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][12][1024x576][簡體][MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4540,7 +4540,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `237054_10_Mirai_Nikki_12_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][12][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][12][1280x720][簡體][MKV]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4595,7 +4595,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `237011_TSDM_Mirai_Nikki_12_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][12][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][12][720p][簡繁內掛][MKV]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4617,7 +4617,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `236984_TSDM_Mirai_Nikki_12_480P_GB_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][12][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][12][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4628,7 +4628,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `236983_10_Mirai_Nikki_12_GB_RV10_848X480`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 12【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 12【GB_RV10】【848X480】")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4639,7 +4639,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `236982_TSDM_Mirai_Nikki_12_480P_BIG5_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][12][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][12][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4672,7 +4672,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `236977_10_12_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][12][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][12][848X480][簡體][RMVB]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4716,7 +4716,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `236736_BBA_11_GB_1024x576_MP4`() {
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[11][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[11][GB][1024x576][MP4]附115&招募中")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4749,7 +4749,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `236267_Mirai_Nikk_11_720P_mkv`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『11』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『11』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4760,7 +4760,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `236250_Mirai_Nikki_11_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][11][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][11][GB][x264][1280X720][mp4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4771,7 +4771,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `236249_Mirai_Nikki_11_GB_x264_848X480_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][11][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][11][GB][x264][848X480][mp4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4815,7 +4815,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `236177_TSDM_Mirai_Nikki_11_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][11][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][11][720p][簡繁內掛][MKV]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4826,7 +4826,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `236176_TSDM_Mirai_Nikki_11_480P_GB_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][11][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][11][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4837,7 +4837,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `236175_TSDM_Mirai_Nikki_11_480P_BIG5_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][11][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][11][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4870,7 +4870,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `236162_10_Mirai_Nikki_11_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][11][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][11][1024x576][簡體][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4892,7 +4892,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `236155_10_Mirai_Nikki_11_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][11][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][11][1280x720][簡體][MKV]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4936,7 +4936,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `236138_10_11_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][11][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][11][848X480][簡體][RMVB]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4958,7 +4958,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `236134_10_Mirai_Nikki_11_GB_RV10_848X480`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 11【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 11【GB_RV10】【848X480】")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -4980,7 +4980,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `235856_BBA_10_GB_1024x576_MP4_115`() {
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[10][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[10][GB][1024x576][MP4]附115&招募中")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4991,7 +4991,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `235765_Mirai_Nikki_10_720P_MKV`() {
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][10][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][10][720P][繁簡外掛][MKV]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5013,7 +5013,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `235681_10_Mirai_Nikki_10_GB_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][10][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][10][GB][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5035,7 +5035,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `235450_Mirai_Nikki_10_GB_x264_848X480_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][10][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][10][GB][x264][848X480][mp4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5046,7 +5046,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `235447_Mirai_Nikki_10_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][10][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][10][GB][x264][1280X720][mp4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5080,7 +5080,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `235411_10_Mirai_Nikki_10v2_GB_RV10_848X480`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 10v2【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 10v2【GB_RV10】【848X480】")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5102,7 +5102,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `235407_Mirai_Nikk_10_720P_mkv`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『10』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『10』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5113,7 +5113,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `235361_TSDM_Mirai_Nikki_10_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][10][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][10][720p][簡繁內掛][MKV]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5124,7 +5124,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `235359_TSDM_Mirai_Nikki_10_480P_GB_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][10][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][10][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5168,7 +5168,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `235346_10_Mirai_Nikki_10_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][10][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][10][1024x576][簡體][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5201,7 +5201,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `235341_10_Mirai_Nikki_10_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][10][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][10][1280x720][簡體][MKV]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5223,7 +5223,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `235336_TSDM_Mirai_Nikki_10_480P_BIG5_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][10][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][10][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5234,7 +5234,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `235334_10_10_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][10][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][10][848X480][簡體][RMVB]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5267,7 +5267,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `235063_BBA_09_GB_1024x576_MP4_115`() {
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[09][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[09][GB][1024x576][MP4]附115&招募中")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5322,7 +5322,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `234831_TSDM_Mirai_Nikki_09_480P_GB_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][09][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][09][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5333,7 +5333,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `234825_TSDM_Mirai_Nikki_09_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][09][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][09][720p][簡繁內掛][MKV]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5344,7 +5344,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `234818_TSDM_Mirai_Nikki_09_480P_BIG5_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][09][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][09][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5355,7 +5355,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `234809_Mirai_Nikki_09_720P_MKV`() {
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][09][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][09][720P][繁簡外掛][MKV]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5410,7 +5410,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `234697_10_Mirai_Nikki_08_09_GB_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][08-09][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][08-09][GB][MP4]")
assertEquals("08..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5421,7 +5421,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `234627_Mirai_Nikki_09_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][09][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][09][GB][x264][1280X720][mp4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5432,7 +5432,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `234616_Mirai_Nikk_09_720P_mkv`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『09』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『09』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5443,7 +5443,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `234504_10_Mirai_Nikki_09_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][09][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][09][1024x576][簡體][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5476,7 +5476,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `234500_10_Mirai_Nikki_09_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][09][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][09][1280x720][簡體][MKV]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5542,7 +5542,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `234486_10_09_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][09][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][09][848X480][簡體][RMVB]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5553,7 +5553,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `234484_10_Mirai_Nikki_09_GB_RV10_848X480`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 09【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 09【GB_RV10】【848X480】")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5575,7 +5575,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `234237_BBA_08_GB_1024x576_MP4_115`() {
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[08][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[08][GB][1024x576][MP4]附115&招募中")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5597,7 +5597,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `234129_Mirai_Nikki_08_720P_MKV`() {
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][08][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][08][720P][繁簡外掛][MKV]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5630,7 +5630,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `233760_Mirai_Nikki_08_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][08][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][08][GB][x264][1280X720][mp4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5641,7 +5641,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `233759_Mirai_Nikki_08_GB_x264_848X480_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][08][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][08][GB][x264][848X480][mp4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5652,7 +5652,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `233697_Mirai_Nikk_08_720P_mkv`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『08』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『08』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5663,7 +5663,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `233675_10_Mirai_Nikki_08_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][08][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][08][1024x576][簡體][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5696,7 +5696,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `233669_10_Mirai_Nikki_08_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][08][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][08][1280x720][簡體][MKV]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5707,7 +5707,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `233644_TSDM_Mirai_Nikki_08_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][08][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][08][720p][簡繁內掛][MKV]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5740,7 +5740,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `233601_TSDM_Mirai_Nikki_08_480P_GB_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][08][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][08][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5762,7 +5762,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `233599_TSDM_Mirai_Nikki_08_480P_BIG5_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][08][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][08][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5784,7 +5784,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `233596_10_08_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][08][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][08][848X480][簡體][RMVB]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5795,7 +5795,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `233595_10_Mirai_Nikki_08_GB_RV10_848X480`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 08【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 08【GB_RV10】【848X480】")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5839,7 +5839,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `233346_BBA_07_GB_1024x576_MP4_115`() {
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[07][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[07][GB][1024x576][MP4]附115&招募中")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5850,7 +5850,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `233224_Mirai_Nikki_07_720P_MKV`() {
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][07][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][07][720P][繁簡外掛][MKV]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5883,7 +5883,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `233090_10_Mirai_Nikki_07_GB_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][07][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][07][GB][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5894,7 +5894,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `233027_Mirai_Nikk_07_720P_mkv`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『07』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『07』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5916,7 +5916,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `232874_DHR_Sakura_Cafe_Mirai_nikki_06_Hi10P_1080P`() {
kotlin.run {
- val r = parse("★御宅千夏&DHR動研&Sakura Cafe★ [未來日記][Mirai_nikki][06][Hi10P_1080P][繁體]附网盘链接")
+ val r = parse("★御宅千夏&DHR動研&Sakura Cafe★ [未來日記][Mirai_nikki][06][Hi10P_1080P][繁體]附網盤鏈接")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5927,7 +5927,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `232872_10_Mirai_Nikki_07_GB_RV10_848X480`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 07【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 07【GB_RV10】【848X480】")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5938,7 +5938,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `232850_10_Mirai_Nikki_07v2_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][07v2][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][07v2][1024x576][簡體][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5949,7 +5949,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `232844_Mirai_Nikki_07_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][07][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][07][GB][x264][1280X720][mp4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5960,7 +5960,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `232843_Mirai_Nikki_07_GB_x264_848X480_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][07][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][07][GB][x264][848X480][mp4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -6015,7 +6015,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `232768_10_Mirai_Nikki_07_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][07][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][07][1024x576][簡體][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -6026,7 +6026,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `232763_TSDM_Mirai_Nikki_07_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][07][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][07][720p][簡繁內掛][MKV]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6070,7 +6070,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `232756_TSDM_Mirai_Nikki_07_480P_GB_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][07][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][07][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -6103,7 +6103,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `232752_10_07_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][07][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][07][848X480][簡體][RMVB]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -6114,7 +6114,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `232750_TSDM_Mirai_Nikki_07_480P_BIG5_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][07][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][07][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -6136,7 +6136,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `232432_BBA_06_GB_1024x576_MP4_115`() {
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[06][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[06][GB][1024x576][MP4]附115&招募中")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -6158,7 +6158,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `232178_Mirai_Nikki_06_720P_MKV`() {
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][06][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][06][720P][繁簡外掛][MKV]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6169,7 +6169,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `232147_10_Mirai_Nikki_06_GB_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][06][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][06][GB][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -6191,7 +6191,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `231970_Mirai_Nikki_05_GB_x264_1280X720_MKV`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][05]][GB][x264][1280X720][MKV]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][05]][GB][x264][1280X720][MKV]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6268,7 +6268,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `231927_10_Mirai_Nikki_06_GB_RV10_848X480`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 06【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 06【GB_RV10】【848X480】")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -6279,7 +6279,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `231926_Mirai_Nikki_06_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][06]][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][06]][GB][x264][1280X720][mp4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6290,7 +6290,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `231911_Mirai_Nikk_06_720P_mkv`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『06』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『06』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6301,7 +6301,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `231903_Mirai_Nikki_06_GB_x264_848X480_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][06]][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][06]][GB][x264][848X480][mp4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -6312,7 +6312,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `231850_10_Mirai_Nikki_06_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][06][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][06][1024x576][簡體][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -6323,7 +6323,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `231845_TSDM_Mirai_Nikki_06_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][06][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][06][720p][簡繁內掛][MKV]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6345,7 +6345,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `231838_10_Mirai_Nikki_06_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][06][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][06][1280x720][簡體][MKV]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6378,7 +6378,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `231808_TSDM_Mirai_Nikki_06_480P_GB_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][06][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][06][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -6389,7 +6389,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `231807_TSDM_Mirai_Nikki_06_480P_BIG5_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][06][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][06][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -6411,7 +6411,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `231802_10_06_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][06][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][06][848X480][簡體][RMVB]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -6422,7 +6422,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `231500_BBA_05_GB_1024x576_MP4_115`() {
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[05][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[05][GB][1024x576][MP4]附115&招募中")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -6433,7 +6433,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `231499_BBA_04_v2_GB_1024x576_MP4_115`() {
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[04][v2][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[04][v2][GB][1024x576][MP4]附115&招募中")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -6444,7 +6444,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `231497_BBA_03_v2_GB_1024x576_MP4_115`() {
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[03][v2][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[03][v2][GB][1024x576][MP4]附115&招募中")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -6455,7 +6455,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `231496_BBA_02_v2_GB_1024x576_MP4_115`() {
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[02][v2][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[02][v2][GB][1024x576][MP4]附115&招募中")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -6466,7 +6466,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `231495_BBA_01_v2_GB_1024x576_MP4_115`() {
kotlin.run {
- val r = parse("【BBA字幕组】【未来日记】[01][v2][GB][1024x576][MP4]附115&招募中")
+ val r = parse("【BBA字幕組】【未來日記】[01][v2][GB][1024x576][MP4]附115&招募中")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -6510,7 +6510,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `231148_Mirai_Nikki_05_720P_MKV`() {
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][05][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][05][720P][繁簡外掛][MKV]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6532,7 +6532,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `230957_Mirai_Nikk_05_720P_mkv`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『05』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『05』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6543,7 +6543,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `230932_10_Mirai_Nikki_05_GB_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][05][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][05][GB][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -6554,7 +6554,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `230917_Mirai_Nikki_05_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][05]][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][05]][GB][x264][1280X720][mp4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6576,7 +6576,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `230888_Mirai_Nikki_05_GB_x264_848X480_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][05]][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][05]][GB][x264][848X480][mp4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -6587,7 +6587,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `230881_Mirai_Nikki_04_720P_MKV`() {
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][04][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][04][720P][繁簡外掛][MKV]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6609,7 +6609,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `230867_10_Mirai_Nikki_05_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][05][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][05][1024x576][簡體][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -6631,7 +6631,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `230859_10_Mirai_Nikki_05_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][05][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][05][1280x720][簡體][MKV]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6642,7 +6642,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `230853_TSDM_Mirai_Nikki_05_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][05][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][05][720p][簡繁內掛][MKV]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6686,7 +6686,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `230819_TSDM_Mirai_Nikki_05_480P_GB_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][05][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][05][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -6697,7 +6697,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `230818_TSDM_Mirai_Nikki_05_480P_BIG5_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][05][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][05][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -6719,7 +6719,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `230814_10_Mirai_Nikki_05_GB_RV10_848X480`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 05【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 05【GB_RV10】【848X480】")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -6730,7 +6730,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `230813_10_05_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][05][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][05][848X480][簡體][RMVB]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -6786,7 +6786,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `230368_Mirai_Nikki_04_GB_x264_1280X720_MKV`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][04]][GB][x264][1280X720][MKV]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][04]][GB][x264][1280X720][MKV]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6830,7 +6830,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `230046_TSDM_Mirai_Nikki_04v2_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][04v2][720p][简繁内挂][MKV][修正字體]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][04v2][720p][簡繁內掛][MKV][修正字體]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6841,7 +6841,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `229989_10_Mirai_Nikki_04_GB_RV10_848X480_V2`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 04【GB_RV10】【848X480】V2(修正16'10\"错误)")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 04【GB_RV10】【848X480】V2(修正16'10\"错误)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -6852,7 +6852,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `229949_Mirai_Nikki_04_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][04]][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][04]][GB][x264][1280X720][mp4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6863,7 +6863,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `229948_Mirai_Nikki_04_GB_x264_848X480_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][04]][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][04]][GB][x264][848X480][mp4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -6874,7 +6874,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `229944_Mirai_Nikk_04_720P_mkv`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『04』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『04』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6885,7 +6885,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `229918_10_Mirai_Nikki_04_GB_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][04][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][04][GB][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -6896,7 +6896,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `229874_TSDM_Mirai_Nikki_04_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][04][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][04][720p][簡繁內掛][MKV]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6940,7 +6940,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `229828_10_Mirai_Nikki_04_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][04][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][04][1024x576][簡體][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -6962,7 +6962,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `229824_10_Mirai_Nikki_04_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][04][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][04][1280x720][簡體][MKV]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6984,7 +6984,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `229809_10_04_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][04][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][04][848X480][簡體][RMVB]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -7028,7 +7028,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `229790_TSDM_Mirai_Nikki_04_480P_GB_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][04][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][04][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -7050,7 +7050,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `229788_TSDM_Mirai_Nikki_04_480P_BIG5_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][04][480P][BIG5繁體][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][04][480P][BIG5繁體][PC&PSP兼容MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -7072,7 +7072,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `229519_Mirai_Nikki_03_720P_MKV`() {
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][03][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][03][720P][繁簡外掛][MKV]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7083,7 +7083,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `229509_Mirai_Nikki_03_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][03]][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][03]][GB][x264][1280X720][mp4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7138,7 +7138,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `228912_10_Mirai_Nikki_03_GB_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][03][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][03][GB][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -7182,7 +7182,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `228889_Mirai_Nikk_03_720P_mkv`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『03』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『03』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7193,7 +7193,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `228877_Mirai_Nikki_03_GB_x264_848X480_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][03]][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][03]][GB][x264][848X480][mp4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -7204,7 +7204,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `228876_Mirai_Nikki_02_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][02]][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][02]][GB][x264][1280X720][mp4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7226,7 +7226,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `228834_TSDM_Mirai_Nikki_03_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][03][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][03][720p][簡繁內掛][MKV]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7237,7 +7237,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `228827_10_Mirai_Nikki_03_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][03][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][03][1024x576][簡體][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -7259,7 +7259,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `228823_10_Mirai_Nikki_03_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][03][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][03][1280x720][簡體][MKV]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7303,7 +7303,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `228800_10_Mirai_Nikki_03_GB_RV10_848X480`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 03【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 03【GB_RV10】【848X480】")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -7325,7 +7325,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `228797_10_03_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][03][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][03][848X480][簡體][RMVB]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -7402,7 +7402,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `228241_Mirai_Nikki_02_720P_MKV`() {
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][02][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][02][720P][繁簡外掛][MKV]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7413,7 +7413,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `228028_10_Mirai_Nikki_02_GB_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][02][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][02][GB][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -7435,7 +7435,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `228006_Mirai_Nikki_02_GB_x264_848X480_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][02]][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][02]][GB][x264][848X480][mp4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -7446,7 +7446,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `228005_Mirai_Nikki_01_GB_x264_1280X720_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][01]][GB][x264][1280X720][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][01]][GB][x264][1280X720][mp4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7457,7 +7457,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `227968_Mirai_Nikk_02V2_720P_mkv`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『02V2』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『02V2』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7479,7 +7479,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `227923_Mirai_Nikk_02_720P_mkv`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『02』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『02』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7501,7 +7501,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `227831_TSDM_Mirai_Nikki_01v2_02_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][01v2~02][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][01v2~02][720p][簡繁內掛][MKV]")
assertEquals("01..02", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7545,7 +7545,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `227817_10_Mirai_Nikki_02_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][02][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][02][1280x720][簡體][MKV]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7567,7 +7567,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `227815_10_Mirai_Nikki_02_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][02][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][02][1024x576][簡體][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -7611,7 +7611,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `227788_TSDM_Mirai_Nikki_02_480P_GB_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][02][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][02][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -7633,7 +7633,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `227783_10_02_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][02][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][02][848X480][簡體][RMVB]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -7655,7 +7655,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `227780_10_Mirai_Nikki_02_GB_RV10_848X480`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 02【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 02【GB_RV10】【848X480】")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -7666,7 +7666,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `227362_BBA_OVA_GB_720x480_MP4`() {
kotlin.run {
- val r = parse("[BBA字幕组][未来日记][OVA][GB][720x480][MP4]")
+ val r = parse("[BBA字幕組][未來日記][OVA][GB][720x480][MP4]")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -7710,7 +7710,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `227128_Mirai_Nikki_01_720P_MKV`() {
kotlin.run {
- val r = parse("[雪酷字幕组&曙光社][Mirai_Nikki 未来日记][01][720P][繁简外挂][MKV]")
+ val r = parse("[雪酷字幕組&曙光社][Mirai_Nikki 未來日記][01][720P][繁簡外掛][MKV]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7721,7 +7721,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `227014_10_Mirai_Nikki_01_GB_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[10月新番][Mirai_Nikki][未来日记][01][GB][MP4]")
+ val r = parse("【華盟字幕社】[10月新番][Mirai_Nikki][未來日記][01][GB][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -7732,7 +7732,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `226971_Mirai_Nikki_01_GB_x264_848X480_mp4`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未来日记][01]][GB][x264][848X480][mp4]")
+ val r = parse("【悠哈璃羽字幕社】[Mirai Nikki\\未來日記][01]][GB][x264][848X480][mp4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -7743,7 +7743,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `226956_Mirai_Nikk_01_720P_mkv`() {
kotlin.run {
- val r = parse("【萌月字幕组】[未来日记][Mirai Nikk]『01』[十月新番]★[720P]☆[简体][mkv]")
+ val r = parse("【萌月字幕組】[未來日記][Mirai Nikk]『01』[十月新番]★[720P]☆[簡體][mkv]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7765,7 +7765,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `226918_01_Mirai_Nikki___01_CTC_1280x720_x264_AAC_mp4_RAW`() {
kotlin.run {
- val r = parse("未来日记01 Mirai Nikki - 01 (CTC 1280x720 x264 AAC)mp4 无字幕 RAW")
+ val r = parse("未來日記01 Mirai Nikki - 01 (CTC 1280x720 x264 AAC)mp4 無字幕 RAW")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7787,7 +7787,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `226825_TSDM_Mirai_Nikki_01_480P_GB_PC_PSP_MP4`() {
kotlin.run {
- val r = parse("【TSDM字幕组】[未来日记][Mirai Nikki][01][480P][GB简体][PC&PSP兼容MP4]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][01][480P][GB簡體][PC&PSP兼容MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -7809,7 +7809,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `226821_10_Mirai_Nikki_01_1024x576_MP4`() {
kotlin.run {
- val r = parse("【异域字幕組】★【10月新番】[未来日记][Mirai Nikki][01][1024x576][简体][MP4]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][01][1024x576][簡體][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -7820,7 +7820,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `226820_10_Mirai_Nikki_01_1280x720_MKV`() {
kotlin.run {
- val r = parse("【异域字幕组】★【10月新番】[未来日记][Mirai Nikki][01][1280x720][简体][MKV]")
+ val r = parse("【異域字幕組】★【10月新番】[未來日記][Mirai Nikki][01][1280x720][簡體][MKV]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7842,7 +7842,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `226814_TSDM_Mirai_Nikki_01_720p_MKV`() {
kotlin.run {
- val r = parse("【TSDM字幕組】[未来日记][Mirai Nikki][01][720p][简繁内挂][MKV]")
+ val r = parse("【TSDM字幕組】[未來日記][Mirai Nikki][01][720p][簡繁內掛][MKV]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7864,7 +7864,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `226790_Mirai_Nikki_01_GB_RV10_848X480`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】未来日记 Mirai Nikki 01【GB_RV10】【848X480】")
+ val r = parse("【幻櫻字幕組】【10月新番】未來日記 Mirai Nikki 01【GB_RV10】【848X480】")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -7908,7 +7908,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `226777_10_01_848X480_RMVB`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[未来日记][01][848X480][简体][RMVB]")
+ val r = parse("【動漫國字幕組】★10月新番[未來日記][01][848X480][簡體][RMVB]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -7930,7 +7930,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `226766_01_H264_MP4`() {
kotlin.run {
- val r = parse("未来日记【第01话】无字幕 H264【MP4】(無字幕+片源)")
+ val r = parse("未來日記【第01話】無字幕 H264【MP4】(無字幕+片源)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -7941,7 +7941,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `226235_Mirai_Nikki_OAD_MKV`() {
kotlin.run {
- val r = parse("【华盟字幕社】[Mirai_Nikki][未来日记][OAD][MKV][简繁外挂]")
+ val r = parse("【華盟字幕社】[Mirai_Nikki][未來日記][OAD][MKV][簡繁外掛]")
assertEquals("OAD..OAD", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -7952,7 +7952,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `226220_10_Mirai_Nikki_OAD_GB_480p_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[Mirai_Nikki][未来日记][OAD][GB][480p_MP4]")
+ val r = parse("【華盟字幕社】[Mirai_Nikki][未來日記][OAD][GB][480p_MP4]")
assertEquals("OAD..OAD", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -7963,7 +7963,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `200485_Mirai_Nikki_OAD_DVDRIP_GB_BIG5_MKV`() {
kotlin.run {
- val r = parse("[四魂制作组][Mirai Nikki 未来日记][OAD][DVDRIP][GB_BIG5][MKV]")
+ val r = parse("[四魂製作組][Mirai Nikki 未來日記][OAD][DVDRIP][GB_BIG5][MKV]")
assertEquals("OAD..OAD", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -7985,7 +7985,7 @@ public class PatternTitleParserTest未来日记 : PatternBasedTitleParserTestSui
@Test
public fun `191983_Mirai_Nikki_OAD_BIG5_RMVB`() {
kotlin.run {
- val r = parse("[四魂制作组][Mirai Nikki 未来日记][OAD][BIG5繁體][RMVB]")
+ val r = parse("[四魂製作組][Mirai Nikki 未來日記][OAD][BIG5繁體][RMVB]")
assertEquals("OAD..OAD", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
diff --git "a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\346\250\261Trick.kt" "b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\346\250\261Trick.kt"
index f97f2dc92..441059eaf 100644
--- "a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\346\250\261Trick.kt"
+++ "b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\346\250\261Trick.kt"
@@ -25,7 +25,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `656570_Trick_Sakura_Trick_01_12_avc_flac_mkv`() {
kotlin.run {
- val r = parse("[愛戀&漫猫字幕社]櫻Trick Sakura Trick 01-12 avc_ flac mkv繁體內嵌合集(急招時軸)")
+ val r = parse("[愛戀&漫貓字幕社]櫻Trick Sakura Trick 01-12 avc_ flac mkv繁體內嵌合集(急招時軸)")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -36,7 +36,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `656569_Trick_Sakura_Trick_01_12_avc_flac_mkv`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕社]樱Trick Sakura Trick 01-12 avc_flac mkv 简体内嵌合集(急招时轴)")
+ val r = parse("[愛戀&漫貓字幕社]櫻Trick Sakura Trick 01-12 avc_flac mkv 簡體內嵌合集(急招時軸)")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -47,7 +47,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `521448_Snow_Raws_Trick_Sakura_Trick_Trick_BD_1920x1080_HEVC_YUV420P10_FLAC`() {
kotlin.run {
- val r = parse("[Snow-Raws] 樱Trick/Sakura Trick/桜Trick(BD 1920x1080 HEVC-YUV420P10 FLAC)")
+ val r = parse("[Snow-Raws] 櫻Trick/Sakura Trick/桜Trick(BD 1920x1080 HEVC-YUV420P10 FLAC)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -59,7 +59,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
public fun `451596_DMG_Hakugetsu_VCB_Studio_Sakura_Trick_Trick_10_bit_1080p_BDRip_Reseed_Fin`() {
kotlin.run {
val r =
- parse("[DMG&Hakugetsu&VCB-Studio] Sakura Trick / 樱Trick 10-bit 1080p BDRip [Reseed Fin]")
+ parse("[DMG&Hakugetsu&VCB-Studio] Sakura Trick / 櫻Trick 10-bit 1080p BDRip [Reseed Fin]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -70,7 +70,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `367159_Sakura_Trick_Trick_BDRip`() {
kotlin.run {
- val r = parse("【华盟字幕社】[Sakura_Trick][樱Trick][BDRip][简繁日外挂][庆祝华盟字幕社成立十周年]")
+ val r = parse("【華盟字幕社】[Sakura_Trick][櫻Trick][BDRip][簡繁日外掛][慶祝華盟字幕社成立十週年]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -81,7 +81,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `363710_Trick_Sakura_Trick_rip_720P`() {
kotlin.run {
- val r = parse("《樱Trick》(Sakura_Trick)[漏勺rip 720P]")
+ val r = parse("《櫻Trick》(Sakura_Trick)[漏勺rip 720P]")
assertEquals("null", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -92,7 +92,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `363209_VCB_S_Sakura_Trick_trick_10bit_1080p_BDRip_Fin`() {
kotlin.run {
- val r = parse("[动漫国 & 白月 & VCB-S] Sakura Trick/樱trick 10bit 1080p BDRip Fin 繁简外挂")
+ val r = parse("[動漫國 & 白月 & VCB-S] Sakura Trick/櫻trick 10bit 1080p BDRip Fin 繁簡外掛")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -103,7 +103,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `363207_VCB_S_Sakura_Trick_trick_8bit_720p_BDRip_Fin`() {
kotlin.run {
- val r = parse("[动漫国 & 白月 & VCB-S] Sakura Trick/樱trick 8bit 720p BDRip Fin 繁简外挂")
+ val r = parse("[動漫國 & 白月 & VCB-S] Sakura Trick/櫻trick 8bit 720p BDRip Fin 繁簡外掛")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -114,7 +114,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `362481__11_Trick_Sakura_Trick_BDRIP_1_12_SP_720P_X264_10bit_AAC`() {
kotlin.run {
- val r = parse("[异域-11番小队][樱Trick Sakura Trick][BDRIP][1-12+SP][720P][X264-10bit_AAC]")
+ val r = parse("[異域-11番小隊][櫻Trick Sakura Trick][BDRIP][1-12+SP][720P][X264-10bit_AAC]")
assertEquals("01..12+SP", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -125,7 +125,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `352064_Sakura_Trick_Trick_01_12_Fin_720pHQ_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[Sakura_Trick][樱Trick][01-12_Fin][720pHQ_MP4][简繁外挂字幕]")
+ val r = parse("【華盟字幕社】[Sakura_Trick][櫻Trick][01-12_Fin][720pHQ_MP4][簡繁外掛字幕]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -136,7 +136,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `350616_01_Trick_01_12_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick/樱谋诡计][01-12(全集)][720P][简体][MP4](内详)")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick/櫻謀詭計][01-12(全集)][720P][簡體][MP4](內詳)")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -158,7 +158,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `345137_01_Trick_01_12_1280x720_MKV`() {
kotlin.run {
- val r = parse("【白月字幕組&動漫國字幕組】★01月新番[樱Trick][01-12][1280x720][簡繁外掛][MKV]")
+ val r = parse("【白月字幕組&動漫國字幕組】★01月新番[櫻Trick][01-12][1280x720][簡繁外掛][MKV]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -169,7 +169,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `345108_1_Trick_Sakura_Trick_01_12_720p_MP4`() {
kotlin.run {
- val r = parse("【动漫先锋字幕组】◆1月新番【樱Trick _Sakura Trick_樱之恋】第01-12话[全][720p][MP4][繁体]")
+ val r = parse("【動漫先鋒字幕組】◆1月新番【櫻Trick _Sakura Trick_櫻之戀】第01-12話[全][720p][MP4][繁體]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -180,7 +180,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `344785_01_Trick_11_1280x720_MKV`() {
kotlin.run {
- val r = parse("【白月字幕組&動漫國字幕組】★01月新番[樱Trick][11][1280x720][簡繁外掛][MKV]")
+ val r = parse("【白月字幕組&動漫國字幕組】★01月新番[櫻Trick][11][1280x720][簡繁外掛][MKV]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -191,7 +191,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `344380_Trick_Sakura_Trick_01_12_GB_720P_MP4`() {
kotlin.run {
- val r = parse("[雪漫影字幕组&丸子家族][樱Trick(Sakura Trick)][01-12][合集][GB][720P][MP4]")
+ val r = parse("[雪漫影字幕組&丸子家族][櫻Trick(Sakura Trick)][01-12][合集][GB][720P][MP4]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -202,7 +202,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `344324_Sakura_Trick_Trick_01_12_Fin_GB_720p_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[Sakura_Trick][樱Trick][01-12_Fin][GB][720p_MP4]")
+ val r = parse("【華盟字幕社】[Sakura_Trick][櫻Trick][01-12_Fin][GB][720p_MP4]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -213,7 +213,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `344292_Sakura_Trick_Trick_12_GB_720p_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[Sakura_Trick][樱Trick][12][GB][720p_MP4]")
+ val r = parse("【華盟字幕社】[Sakura_Trick][櫻Trick][12][GB][720p_MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -224,7 +224,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `343869_Trick_Sakura_Trick_12END_1280x720_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][12END][1280x720][简体][MP4]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][12END][1280x720][簡體][MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -246,7 +246,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `343843_1_Sakura_Trick_Trick_01_12_GB_MP4_720p`() {
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第01-12话 GB MP4 720p 合集")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第01-12話 GB MP4 720p 合集")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -268,7 +268,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `343793_01_Trick_12END_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick][12END][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][12END][720P][簡體][MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -279,7 +279,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `343792_trick_sakura_trick_12_1280x720_MP4`() {
kotlin.run {
- val r = parse("【千夏字幕组现充爆破分队】【樱trick_sakura_trick】[第12话完][1280x720][MP4][简体]")
+ val r = parse("【千夏字幕組現充爆破分隊】【櫻trick_sakura_trick】[第12話完][1280x720][MP4][簡體]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -290,7 +290,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `343779_1_Sakura_Trick_Trick_12_GB_MP4_720p`() {
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第12话 GB MP4 720p 完")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第12話 GB MP4 720p 完")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -312,7 +312,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `343698_Sakura_Trick_Trick_11_GB_720p_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[Sakura_Trick][樱Trick][11][GB][720p_MP4]")
+ val r = parse("【華盟字幕社】[Sakura_Trick][櫻Trick][11][GB][720p_MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -334,7 +334,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `343070_Trick_Sakura_Trick_11_1280x720_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][11][1280x720][简体][MP4]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][11][1280x720][簡體][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -356,7 +356,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `342865_1_Sakura_Trick_Trick_11_GB_MP4_720p_Rev`() {
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第11话 GB MP4 720p Rev")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第11話 GB MP4 720p Rev")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -367,7 +367,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `342864_trick_sakura_trick_11_1280x720_MP4`() {
kotlin.run {
- val r = parse("【千夏字幕组现充爆破分队】【樱trick_sakura_trick】[第11话][1280x720][MP4][简体]")
+ val r = parse("【千夏字幕組現充爆破分隊】【櫻trick_sakura_trick】[第11話][1280x720][MP4][簡體]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -378,7 +378,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `342857_01_Trick_11_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick][11][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][11][720P][簡體][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -400,7 +400,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `342821_01_Trick_10_1280x720_MKV`() {
kotlin.run {
- val r = parse("【白月字幕組&動漫國字幕組】★01月新番[樱Trick][10][1280x720][簡繁外掛][MKV]")
+ val r = parse("【白月字幕組&動漫國字幕組】★01月新番[櫻Trick][10][1280x720][簡繁外掛][MKV]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -411,7 +411,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `342683_Sakura_Trick_Trick_10_GB_720p_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[Sakura_Trick][樱Trick][10][GB][720p_MP4]")
+ val r = parse("【華盟字幕社】[Sakura_Trick][櫻Trick][10][GB][720p_MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -422,7 +422,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `342554_01_Trick_09_1280x720_MKV`() {
kotlin.run {
- val r = parse("【白月字幕組&動漫國字幕組】★01月新番[樱Trick][09][1280x720][簡繁外掛][MKV]")
+ val r = parse("【白月字幕組&動漫國字幕組】★01月新番[櫻Trick][09][1280x720][簡繁外掛][MKV]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -433,7 +433,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `342064_Trick_Sakura_Trick_10_1280x720_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][10][1280x720][简体][MP4]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][10][1280x720][簡體][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -444,7 +444,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `341956_01_Trick_10_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick][10][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][10][720P][簡體][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -455,7 +455,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `341955_1_Sakura_Trick_Trick_10_GB_MP4_720p`() {
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第10话 GB MP4 720p")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第10話 GB MP4 720p")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -477,7 +477,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `341945_trick_sakura_trick_10_1280x720_MP4`() {
kotlin.run {
- val r = parse("【千夏字幕组现充爆破分队】【樱trick_sakura_trick】[第10话][1280x720][MP4][简体]")
+ val r = parse("【千夏字幕組現充爆破分隊】【櫻trick_sakura_trick】[第10話][1280x720][MP4][簡體]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -510,7 +510,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `341942_1_Trick_Sakura_Trick_10_1280x720_GB_MP4`() {
kotlin.run {
- val r = parse("【东京不够热】【1月新番】樱Trick Sakura Trick【10】【1280x720】【简体】【GB_MP4】")
+ val r = parse("【東京不夠熱】【1月新番】櫻Trick Sakura Trick【10】【1280x720】【簡體】【GB_MP4】")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -521,7 +521,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `341654_01_Trick_08_1280x720_MKV`() {
kotlin.run {
- val r = parse("【白月字幕組&動漫國字幕組】★01月新番[樱Trick][08][1280x720][簡繁外掛][MKV]")
+ val r = parse("【白月字幕組&動漫國字幕組】★01月新番[櫻Trick][08][1280x720][簡繁外掛][MKV]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -532,7 +532,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `341626_Sakura_Trick_Trick_08_09_GB_720p_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[Sakura_Trick][樱Trick][08-09][GB][720p_MP4]")
+ val r = parse("【華盟字幕社】[Sakura_Trick][櫻Trick][08-09][GB][720p_MP4]")
assertEquals("08..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -554,7 +554,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `341125_Trick_Sakura_Trick_09_1280x720_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][09][1280x720][简体][MP4]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][09][1280x720][簡體][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -576,7 +576,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `341013_01_Trick_09_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick][09][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][09][720P][簡體][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -598,7 +598,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `341002_1_Sakura_Trick_Trick_09_GB_MP4_720p`() {
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第09话 GB MP4 720p")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第09話 GB MP4 720p")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -609,7 +609,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `340995_trick_sakura_trick_08_1280x720_MP4`() {
kotlin.run {
- val r = parse("【千夏字幕组现充爆破分队】【樱trick_sakura_trick】[第09话][1280x720][MP4][简体]")
+ val r = parse("【千夏字幕組現充爆破分隊】【櫻trick_sakura_trick】[第09話][1280x720][MP4][簡體]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -620,7 +620,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `340527_01_Trick_07_1280x720_MKV`() {
kotlin.run {
- val r = parse("【白月字幕組&動漫國字幕組】★01月新番[樱Trick][07][1280x720][簡繁外掛][MKV]")
+ val r = parse("【白月字幕組&動漫國字幕組】★01月新番[櫻Trick][07][1280x720][簡繁外掛][MKV]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -631,7 +631,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `340162_trick_sakura_trick_08_1280x720_MP4`() {
kotlin.run {
- val r = parse("【千夏字幕组现充爆破分队】【樱trick_sakura_trick】[第08话][1280x720][MP4][简体]")
+ val r = parse("【千夏字幕組現充爆破分隊】【櫻trick_sakura_trick】[第08話][1280x720][MP4][簡體]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -642,7 +642,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `340161_trick_sakura_trick_07_1280x720_MP4`() {
kotlin.run {
- val r = parse("【千夏字幕组现充爆破分队】【樱trick_sakura_trick】[第07话][1280x720][MP4][简体]")
+ val r = parse("【千夏字幕組現充爆破分隊】【櫻trick_sakura_trick】[第07話][1280x720][MP4][簡體]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -653,7 +653,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `340160_trick_sakura_trick_06_1280x720_MP4`() {
kotlin.run {
- val r = parse("【千夏字幕组现充爆破分队】【樱trick_sakura_trick】[第06话][1280x720][MP4][简体]")
+ val r = parse("【千夏字幕組現充爆破分隊】【櫻trick_sakura_trick】[第06話][1280x720][MP4][簡體]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -664,7 +664,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `340159_trick_sakura_trick_05_1280x720_MP4`() {
kotlin.run {
- val r = parse("【千夏字幕组现充爆破分队】【樱trick_sakura_trick】[第05话][1280x720][MP4][简体]")
+ val r = parse("【千夏字幕組現充爆破分隊】【櫻trick_sakura_trick】[第05話][1280x720][MP4][簡體]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -675,7 +675,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `340158_trick_sakura_trick_04_1280x720_MP4`() {
kotlin.run {
- val r = parse("【千夏字幕组现充爆破分队】【樱trick_sakura_trick】[第04话][1280x720][MP4][简体]")
+ val r = parse("【千夏字幕組現充爆破分隊】【櫻trick_sakura_trick】[第04話][1280x720][MP4][簡體]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -697,7 +697,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `340136_Trick_Sakura_Trick_08_1280x720_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][08][1280x720][简体][MP4]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][08][1280x720][簡體][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -708,7 +708,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `340017_01_Trick_08_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick][08][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][08][720P][簡體][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -719,7 +719,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `340014_1_Sakura_Trick_Trick_08_GB_MP4_720p`() {
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第08话 GB MP4 720p")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第08話 GB MP4 720p")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -763,7 +763,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `339989_1_Trick_Sakura_Trick_08_1280x720_GB_MP4`() {
kotlin.run {
- val r = parse("【东京不够热】【1月新番】樱Trick Sakura Trick【08】【1280x720】【简体】【GB_MP4】")
+ val r = parse("【東京不夠熱】【1月新番】櫻Trick Sakura Trick【08】【1280x720】【簡體】【GB_MP4】")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -774,7 +774,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `339734_Sakura_Trick_Trick_07_GB_720p_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[Sakura_Trick][樱Trick][07][GB][720p_MP4]")
+ val r = parse("【華盟字幕社】[Sakura_Trick][櫻Trick][07][GB][720p_MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -796,7 +796,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `339172_Trick_Sakura_Trick_07v2_1280x720_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][07v2][1280x720][简体][MP4][修正不同步]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][07v2][1280x720][簡體][MP4][修正不同步]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -818,7 +818,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `339117_Trick_Sakura_Trick_07_1280x720_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][07][1280x720][简体][MP4]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][07][1280x720][簡體][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -829,7 +829,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `339080_01_Trick_06_1280x720_MKV`() {
kotlin.run {
- val r = parse("【白月字幕組&動漫國字幕組】★01月新番[樱Trick][06][1280x720][簡繁外掛][MKV]")
+ val r = parse("【白月字幕組&動漫國字幕組】★01月新番[櫻Trick][06][1280x720][簡繁外掛][MKV]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -840,7 +840,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `339029_01_Trick_07_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick][07][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][07][720P][簡體][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -851,7 +851,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `339027_1_Sakura_Trick_Trick_07_GB_MP4_720p`() {
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第07话 GB MP4 720p")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第07話 GB MP4 720p")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -928,7 +928,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `339006_1_Trick_Sakura_Trick_07_1280x720_GB_MP4`() {
kotlin.run {
- val r = parse("【东京不够热】【1月新番】樱Trick Sakura Trick【07】【1280x720】【简体】【GB_MP4】")
+ val r = parse("【東京不夠熱】【1月新番】櫻Trick Sakura Trick【07】【1280x720】【簡體】【GB_MP4】")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -939,7 +939,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `338884_Sakura_Trick_Trick_04_06_GB_720p_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[Sakura_Trick][樱Trick][04-06][GB][720p_MP4]")
+ val r = parse("【華盟字幕社】[Sakura_Trick][櫻Trick][04-06][GB][720p_MP4]")
assertEquals("04..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -950,7 +950,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `338697_01_Trick_05_1280x720_MKV`() {
kotlin.run {
- val r = parse("【白月字幕組&動漫國字幕組】★01月新番[樱Trick][05][1280x720][簡繁外掛][MKV]")
+ val r = parse("【白月字幕組&動漫國字幕組】★01月新番[櫻Trick][05][1280x720][簡繁外掛][MKV]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -961,7 +961,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `338575_1_Trick_Sakura_Trick_06_720p_MP4`() {
kotlin.run {
- val r = parse("【动漫先锋字幕组】◆1月新番【樱Trick _Sakura Trick】第06话[720p][MP4][繁体]")
+ val r = parse("【動漫先鋒字幕組】◆1月新番【櫻Trick _Sakura Trick】第06話[720p][MP4][繁體]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -972,7 +972,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `338574_1_Trick_Sakura_Trick_05_720p_MP4`() {
kotlin.run {
- val r = parse("【动漫先锋字幕组】◆1月新番【樱Trick _Sakura Trick】第05话[720p][MP4][繁体]")
+ val r = parse("【動漫先鋒字幕組】◆1月新番【櫻Trick _Sakura Trick】第05話[720p][MP4][繁體]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -994,7 +994,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `338244_Trick_Sakura_Trick_06_1280x720_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][06][1280x720][简体][MP4]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][06][1280x720][簡體][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1005,7 +1005,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `338137_01_Trick_06_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick][06][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][06][720P][簡體][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1016,7 +1016,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `338135_1_Sakura_Trick_Trick_06_GB_MP4_720p`() {
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第06话 GB MP4 720p")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第06話 GB MP4 720p")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1049,7 +1049,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `338108_1_Trick_Sakura_Trick_06_1280x720_GB_MP4`() {
kotlin.run {
- val r = parse("【东京不够热】【1月新番】樱Trick Sakura Trick【06】【1280x720】【简体】【GB_MP4】")
+ val r = parse("【東京不夠熱】【1月新番】櫻Trick Sakura Trick【06】【1280x720】【簡體】【GB_MP4】")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1071,7 +1071,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `337293_Trick_Sakura_Trick_05_1280x720_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][05][1280x720][简体][MP4]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][05][1280x720][簡體][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1082,7 +1082,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `337243_01_Trick_04_1280x720_MKV`() {
kotlin.run {
- val r = parse("【白月字幕組&動漫國字幕組】★01月新番[樱Trick][04][1280x720][簡繁外掛][MKV]")
+ val r = parse("【白月字幕組&動漫國字幕組】★01月新番[櫻Trick][04][1280x720][簡繁外掛][MKV]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1093,7 +1093,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `337201_01_Trick_05_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick][05][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][05][720P][簡體][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1115,7 +1115,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `337182_1_Sakura_Trick_Trick_05_GB_MP4_720p`() {
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第05话 GB MP4 720p")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第05話 GB MP4 720p")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1137,7 +1137,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `337172_1_Trick_Sakura_Trick_05_1280x720_GB_MP4`() {
kotlin.run {
- val r = parse("【东京不够热】【1月新番】樱Trick Sakura Trick【05】【1280x720】【简体】【GB_MP4】")
+ val r = parse("【東京不夠熱】【1月新番】櫻Trick Sakura Trick【05】【1280x720】【簡體】【GB_MP4】")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1148,7 +1148,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `337124_1_Trick_Sakura_Trick_04_720p_MP4`() {
kotlin.run {
- val r = parse("【动漫先锋字幕组】◆1月新番【樱Trick _Sakura Trick】第04话[720p][MP4][繁体]")
+ val r = parse("【動漫先鋒字幕組】◆1月新番【櫻Trick _Sakura Trick】第04話[720p][MP4][繁體]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1170,7 +1170,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `336411_Trick_Sakura_Trick_04_1280x720_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][04][1280x720][简体][MP4]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][04][1280x720][簡體][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1181,7 +1181,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `336272_01_Trick_04_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick][04][720P][简体][MP4] 大家新年快乐~")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][04][720P][簡體][MP4] 大家新年快樂~")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1192,7 +1192,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `336267_01_Trick_04_720P_MP4`() {
kotlin.run {
- val r = parse("【動漫國字幕組&白月字幕組】★01月新番[樱Trick][04][720P][繁體][MP4]大家新年快樂~")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][04][720P][繁體][MP4]大家新年快樂~")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1203,7 +1203,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `336264_1_Sakura_Trick_Trick_04_GB_MP4_720p`() {
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第04话 GB MP4 720p 祝大家春节快乐")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第04話 GB MP4 720p 祝大家春節快樂")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1225,7 +1225,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `336255_1_Trick_Sakura_Trick_04_1280x720_GB_MP4`() {
kotlin.run {
- val r = parse("【东京不够热】【1月新番】樱Trick Sakura Trick【04】【1280x720】【简体】【GB_MP4】[春节快乐]")
+ val r = parse("【東京不夠熱】【1月新番】櫻Trick Sakura Trick【04】【1280x720】【簡體】【GB_MP4】[春節快樂]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1236,7 +1236,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `336216_01_Trick_03_1280x720_MKV`() {
kotlin.run {
- val r = parse("【白月字幕組&動漫國字幕組】★01月新番[樱Trick][03][1280x720][簡繁外掛][MKV](新年快樂)")
+ val r = parse("【白月字幕組&動漫國字幕組】★01月新番[櫻Trick][03][1280x720][簡繁外掛][MKV](新年快樂)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1247,7 +1247,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `335938_Trick_Sakura_Trick_03_1280x720_MP4_PC_PSV`() {
kotlin.run {
- val r = parse("【千夏字幕组现充爆破分队】【樱Trick_Sakura_Trick】[第03话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組現充爆破分隊】【櫻Trick_Sakura_Trick】[第03話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1269,7 +1269,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `335631_Sakura_Trick_Trick_03_GB_720p_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[Sakura_Trick][樱Trick][03][GB][720p_MP4]")
+ val r = parse("【華盟字幕社】[Sakura_Trick][櫻Trick][03][GB][720p_MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1291,7 +1291,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `335467_Trick_Sakura_Trick_03_1280x720_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][03][1280x720][简体][MP4]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][03][1280x720][簡體][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1302,7 +1302,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `335398_1_Trick_Sakura_Trick_03_720p_MP4`() {
kotlin.run {
- val r = parse("【动漫先锋字幕组】◆1月新番【樱Trick _Sakura Trick】第03话[720p][MP4][繁体]")
+ val r = parse("【動漫先鋒字幕組】◆1月新番【櫻Trick _Sakura Trick】第03話[720p][MP4][繁體]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1313,7 +1313,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `335372_01_Trick_02_1280x720_MKV`() {
kotlin.run {
- val r = parse("【白月字幕組&動漫國字幕組】★01月新番[樱Trick][02][1280x720][簡繁外掛][MKV]")
+ val r = parse("【白月字幕組&動漫國字幕組】★01月新番[櫻Trick][02][1280x720][簡繁外掛][MKV]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1335,7 +1335,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `335295_1_Sakura_Trick_Trick_03_GB_MP4_720p`() {
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第03话 GB MP4 720p (附重要通知)")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第03話 GB MP4 720p (附重要通知)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1346,7 +1346,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `335291_01_Trick_03_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick][03][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][03][720P][簡體][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1357,7 +1357,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `335288_01_Trick_03_720P_MP4`() {
kotlin.run {
- val r = parse("【動漫國字幕組&白月字幕組】★01月新番[樱Trick][03][720P][繁體][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][03][720P][繁體][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1379,7 +1379,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `335271_1_Trick_Sakura_Trick_03_1280x720_GB_MP4`() {
kotlin.run {
- val r = parse("【东京不够热】【1月新番】樱Trick Sakura Trick【03】【1280x720】【简体】【GB_MP4】")
+ val r = parse("【東京不夠熱】【1月新番】櫻Trick Sakura Trick【03】【1280x720】【簡體】【GB_MP4】")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1401,7 +1401,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `334600_1_Trick_Sakura_Trick_02_720p_x264_BIG5`() {
kotlin.run {
- val r = parse("【动漫先锋字幕组】◆1月新番【樱Trick _Sakura Trick】第02话[720p][x264][BIG5]")
+ val r = parse("【動漫先鋒字幕組】◆1月新番【櫻Trick _Sakura Trick】第02話[720p][x264][BIG5]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1423,7 +1423,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `334517_Trick_Sakura_Trick_02_1280x720_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][02][1280x720][简体][MP4]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][02][1280x720][簡體][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1434,7 +1434,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `334406_Sakura_Trick_Trick_02_GB_720p_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[Sakura_Trick][樱Trick][02][GB][720p_MP4]")
+ val r = parse("【華盟字幕社】[Sakura_Trick][櫻Trick][02][GB][720p_MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1445,7 +1445,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `334262_01_Trick_02_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick][02][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][02][720P][簡體][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1456,7 +1456,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `334260_1_Sakura_Trick_Trick_02_GB_MP4_720p`() {
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第02话 GB MP4 720p")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第02話 GB MP4 720p")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1467,7 +1467,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `334253_01_Trick_02_720P_MP4`() {
kotlin.run {
- val r = parse("【動漫國字幕組&白月字幕組】★01月新番[樱Trick][02][720P][繁體][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][02][720P][繁體][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1478,7 +1478,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `334247_trick_sakura_trick_02_1280x720_MP4`() {
kotlin.run {
- val r = parse("【千夏字幕组现充爆破分队】【樱Trick_Sakura_Trick】[第02话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組現充爆破分隊】【櫻Trick_Sakura_Trick】[第02話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1511,7 +1511,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `334239_1_Trick_Sakura_Trick_02_1280x720_GB_MP4`() {
kotlin.run {
- val r = parse("【东京不够热】【1月新番】樱Trick Sakura Trick【02】【1280x720】【简体】【GB_MP4】")
+ val r = parse("【東京不夠熱】【1月新番】櫻Trick Sakura Trick【02】【1280x720】【簡體】【GB_MP4】")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1522,7 +1522,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `334055_01_Trick_01_1280x720_MKV`() {
kotlin.run {
- val r = parse("【白月字幕組&動漫國字幕組】★01月新番[樱Trick][01][1280x720][簡繁外掛][MKV]")
+ val r = parse("【白月字幕組&動漫國字幕組】★01月新番[櫻Trick][01][1280x720][簡繁外掛][MKV]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1555,7 +1555,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `333573_Trick_Sakura_Trick_01_1280x720_MP4`() {
kotlin.run {
- val r = parse("【异域字幕组】★ [樱Trick][Sakura Trick][01][1280x720][简体][MP4]")
+ val r = parse("【異域字幕組】★ [櫻Trick][Sakura Trick][01][1280x720][簡體][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1566,7 +1566,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `333359_10_Trick_Sakura_Trick_01_720p_x264_BIG5`() {
kotlin.run {
- val r = parse("【动漫先锋字幕组】◆1月新番【樱Trick _Sakura Trick】第01话[720p][x264][BIG5]")
+ val r = parse("【動漫先鋒字幕組】◆1月新番【櫻Trick _Sakura Trick】第01話[720p][x264][BIG5]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1577,7 +1577,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `333336_Sakura_Trick_Trick_01_GB_720p_MP4`() {
kotlin.run {
- val r = parse("【华盟字幕社】[Sakura_Trick][樱Trick][01][GB][720p_MP4]")
+ val r = parse("【華盟字幕社】[Sakura_Trick][櫻Trick][01][GB][720p_MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1599,7 +1599,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `333249_01_Trick_01_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&白月字幕组】★01月新番[樱Trick][01][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][01][720P][簡體][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1610,7 +1610,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `333246_1_Sakura_Trick_Trick_01_GB_MP4_720p`() {
kotlin.run {
- val r = parse("【极影字幕社】★1月新番 Sakura Trick / 樱Trick 第01话 GB MP4 720p")
+ val r = parse("【極影字幕社】★1月新番 Sakura Trick / 櫻Trick 第01話 GB MP4 720p")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1621,7 +1621,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `333245_01_Trick_01_720P_MP4`() {
kotlin.run {
- val r = parse("【動漫國字幕組&白月字幕組】★01月新番[樱Trick][01][720P][繁體][MP4]")
+ val r = parse("【動漫國字幕組&白月字幕組】★01月新番[櫻Trick][01][720P][繁體][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1632,7 +1632,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `333240_trick_sakura_trick_01_1280x720_MP4`() {
kotlin.run {
- val r = parse("【千夏字幕组现充爆破分队】【樱trick_sakura_trick】[第01話][1280x720][MP4][简体]")
+ val r = parse("【千夏字幕組現充爆破分隊】【櫻trick_sakura_trick】[第01話][1280x720][MP4][簡體]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1643,7 +1643,7 @@ public class PatternTitleParserTest樱Trick : PatternBasedTitleParserTestSuite()
@Test
public fun `333233_Trick_Sakura_Trick_01_1280x720_GB_MP4`() {
kotlin.run {
- val r = parse("【东京不够热】【1月新番】樱Trick Sakura Trick【01】【1280x720】【简体】【GB_MP4】")
+ val r = parse("【東京不夠熱】【1月新番】櫻Trick Sakura Trick【01】【1280x720】【簡體】【GB_MP4】")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
diff --git "a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\347\204\241\350\201\267\350\275\211\347\224\237_\345\210\260\344\272\206\347\225\260\344\270\226\347\225\214\345\260\261\346\213\277\345\207\272\347\234\237\346\234\254\344\272\213_.kt" "b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\347\204\241\350\201\267\350\275\211\347\224\237_\345\210\260\344\272\206\347\225\260\344\270\226\347\225\214\345\260\261\346\213\277\345\207\272\347\234\237\346\234\254\344\272\213_.kt"
index 043eae50a..f45346cbd 100644
--- "a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\347\204\241\350\201\267\350\275\211\347\224\237_\345\210\260\344\272\206\347\225\260\344\270\226\347\225\214\345\260\261\346\213\277\345\207\272\347\234\237\346\234\254\344\272\213_.kt"
+++ "b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\347\204\241\350\201\267\350\275\211\347\224\237_\345\210\260\344\272\206\347\225\260\344\270\226\347\225\214\345\260\261\346\213\277\345\207\272\347\234\237\346\234\254\344\272\213_.kt"
@@ -25,7 +25,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `669857_4_Mushoku_Tensei_II_18_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][4月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][18][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][4月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][18][1080p][MP4][簡中]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -47,7 +47,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `669850_S2_Mushoku_Tensei_S2_18_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [18][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [18][1080p][簡繁內封]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -80,7 +80,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `669847_S2_Mushoku_Tensei_S2_18_1080p_60FPS`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [18][1080p@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [18][1080p@60FPS][簡體內嵌]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -91,7 +91,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `669846_S2_Mushoku_Tensei_S2_18_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [18][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [18][1080p][簡體內嵌]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -103,7 +103,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `669757_Mushoku_Tensei___Season_2_18_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [18][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [18][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -115,7 +115,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `669756_Mushoku_Tensei___Season_2_18_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [18][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [18][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -127,7 +127,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `669755_Mushoku_Tensei___Season_2_18_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [18][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [18][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -138,7 +138,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `669263_4_Mushoku_Tensei_II_17_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][4月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][17][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][4月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][17][1080p][MP4][簡中]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -161,7 +161,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `669227_Mushoku_Tensei___Season_2_17_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [17][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [17][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -173,7 +173,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `669226_Mushoku_Tensei___Season_2_17_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [17][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [17][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -185,7 +185,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `669225_Mushoku_Tensei___Season_2_17_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [17][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [17][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -197,7 +197,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `669139_Mushoku_Tensei___Season_2_16_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [16][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [16][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -209,7 +209,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `669138_Mushoku_Tensei___Season_3_15_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [16][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [16][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -221,7 +221,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `669134_Mushoku_Tensei___Season_2_16_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [16][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [16][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -232,7 +232,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `669132_S2_Mushoku_Tensei_S2_17_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [17][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [17][1080p][簡繁內封]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -265,7 +265,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `669129_S2_Mushoku_Tensei_S2_17_1080p_60FPS`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [17][1080p@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [17][1080p@60FPS][簡體內嵌]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -276,7 +276,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `669128_S2_Mushoku_Tensei_S2_17_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [17][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [17][1080p][簡體內嵌]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -287,7 +287,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `668753_4_Mushoku_Tensei_II_16_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][4月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][16][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][4月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][16][1080p][MP4][簡中]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -309,7 +309,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `668580_S2_Mushoku_Tensei_S2_16_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [16][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [16][1080p][簡繁內封]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -331,7 +331,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `668578_S2_Mushoku_Tensei_S2_16_1080p_60FPS`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [16][1080p@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [16][1080p@60FPS][簡體內嵌]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -353,7 +353,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `668576_S2_Mushoku_Tensei_S2_16_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [16][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [16][1080p][簡體內嵌]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -364,7 +364,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `668175_4_Mushoku_Tensei_II_15_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][4月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][15][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][4月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][15][1080p][MP4][簡中]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -386,7 +386,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `668075_S2_Mushoku_Tensei_S2_15_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [15][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [15][1080p][簡繁內封]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -408,7 +408,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `668073_S2_Mushoku_Tensei_S2_15_1080p_60FPS`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [15][1080p@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [15][1080p@60FPS][簡體內嵌]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -430,7 +430,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `668071_S2_Mushoku_Tensei_S2_15_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [15][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [15][1080p][簡體內嵌]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -442,7 +442,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `668051_Mushoku_Tensei___Season_2_15_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [15][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [15][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -454,7 +454,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `668050_Mushoku_Tensei___Season_2_15_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [15][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [15][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -466,7 +466,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `668049_Mushoku_Tensei___Season_2_15_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [15][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [15][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -477,7 +477,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `667600_S2_Mushoku_Tensei_S2_14_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [14][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [14][1080p][簡繁內封]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -499,7 +499,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `667598_S2_Mushoku_Tensei_S2_14_1080p_60FPS`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [14][1080p@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [14][1080p@60FPS][簡體內嵌]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -521,7 +521,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `667594_S2_Mushoku_Tensei_S2_14_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [14][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [14][1080p][簡體內嵌]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -532,7 +532,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `667477_4_Mushoku_Tensei_II_14_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][4月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][14][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][4月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][14][1080p][MP4][簡中]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -555,7 +555,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `667448_Mushoku_Tensei___Season_2_14_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [14][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [14][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -567,7 +567,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `667442_Mushoku_Tensei___Season_2_14_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [14][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [14][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -579,7 +579,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `667441_Mushoku_Tensei___Season_2_14_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [14][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [14][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -612,7 +612,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `666956_S2_Mushoku_Tensei_S2_13_1080p_60FPS`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [13][1080p@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [13][1080p@60FPS][簡體內嵌]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -623,7 +623,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `666954_S2_Mushoku_Tensei_S2_13_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [13][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [13][1080p][簡繁內封]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -634,7 +634,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `666952_S2_Mushoku_Tensei_S2_13_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [13][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [13][1080p][簡體內嵌]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -645,7 +645,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `666610_4_Mushoku_Tensei_II_13_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][4月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][13][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][4月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][13][1080p][MP4][簡中]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -668,7 +668,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `666604_Mushoku_Tensei___Season_2_13_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [13][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [13][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -680,7 +680,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `666603_Mushoku_Tensei___Season_2_13_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [13][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [13][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -692,7 +692,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `666602_Mushoku_Tensei___Season_2_13_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [13][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [13][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -704,7 +704,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `653838_Mushoku_Tensei_II_00_12Fin_WEBRIP_1080p_AVC_AAC_MP4_2023_7`() {
kotlin.run {
val r =
- parse("[爱恋字幕社&漫猫字幕社] 无职转生Ⅱ ~到了异世界就拿出真本事~/Mushoku Tensei II (00-12Fin WEBRIP 1080p AVC AAC MP4 2023年7月 简中)")
+ parse("[愛戀字幕社&漫貓字幕社] 無職轉生Ⅱ ~到了異世界就拿出真本事~/Mushoku Tensei II (00-12Fin WEBRIP 1080p AVC AAC MP4 2023年7月 簡中)")
assertEquals("00..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -727,7 +727,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `652097_S2_Mushoku_Tensei_S2_12_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [12][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [12][1080p][簡繁內封]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -749,7 +749,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `652095_S2_Mushoku_Tensei_S2_12_1080p_60FPS`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [12][1080p@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [12][1080p@60FPS][簡體內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -771,7 +771,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `652093_S2_Mushoku_Tensei_S2_12_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [12][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [12][1080p][簡體內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -783,7 +783,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `652077_Mushoku_Tensei___Season_2_12_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [12][WebRip][1080p][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [12][WebRip][1080p][HEVC_AAC][繁體內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -795,7 +795,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `652076_Mushoku_Tensei___Season_2_12_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [12][WebRip][1080p][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [12][WebRip][1080p][HEVC_AAC][簡體內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -807,7 +807,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `652075_Mushoku_Tensei___Season_2_12_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [12][WebRip][1080p][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [12][WebRip][1080p][HEVC_AAC][簡繁內封]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -831,7 +831,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `652044_Mushoku_Tensei_S2_08_1080P_WEBrip_MP4`() {
kotlin.run {
val r =
- parse("[星空字幕组][无职转生Ⅱ~到了异世界就拿出真本事~ / Mushoku Tensei S2][08][简日双语][1080P][WEBrip][MP4](急招校对、后期)")
+ parse("[星空字幕組][無職轉生Ⅱ~到了異世界就拿出真本事~ / Mushoku Tensei S2][08][簡日雙語][1080P][WEBrip][MP4](急招校對、後期)")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -842,7 +842,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `651837_7_Mushoku_Tensei_II_11_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][7月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][11][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][7月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][11][1080p][MP4][簡中]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -864,7 +864,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `651835_7_Mushoku_Tensei_II_10_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][7月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][10][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][7月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][10][1080p][MP4][簡中]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -899,7 +899,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `651699_Mushoku_Tensei_S2_07_1080P_WEBrip_MP4`() {
kotlin.run {
val r =
- parse("[星空字幕组][无职转生Ⅱ~到了异世界就拿出真本事~ / Mushoku Tensei S2][07][简日双语][1080P][WEBrip][MP4](急招校对、后期)")
+ parse("[星空字幕組][無職轉生Ⅱ~到了異世界就拿出真本事~ / Mushoku Tensei S2][07][簡日雙語][1080P][WEBrip][MP4](急招校對、後期)")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -910,7 +910,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `651553_S2_Mushoku_Tensei_S2_11_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [11][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [11][1080p][簡繁內封]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -932,7 +932,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `651551_S2_Mushoku_Tensei_S2_11_1080P_60FPS`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [11][1080P@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [11][1080P@60FPS][簡體內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -954,7 +954,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `651548_S2_Mushoku_Tensei_S2_11_1080P`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [11][1080P][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [11][1080P][簡體內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -966,7 +966,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `651519_Mushoku_Tensei___Season_2_11_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [11][WebRip][1080p][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [11][WebRip][1080p][HEVC_AAC][簡繁內封]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -978,7 +978,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `651518_Mushoku_Tensei___Season_2_11_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [11][WebRip][1080p][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [11][WebRip][1080p][HEVC_AAC][繁體內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -990,7 +990,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `651516_Mushoku_Tensei___Season_2_11_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [11][WebRip][1080p][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [11][WebRip][1080p][HEVC_AAC][簡體內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1002,7 +1002,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `651007_Mushoku_Tensei___Season_2_10_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [10][WebRip][1080p][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [10][WebRip][1080p][HEVC_AAC][繁體內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1014,7 +1014,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `651006_Mushoku_Tensei___Season_2_10_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [10][WebRip][1080p][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [10][WebRip][1080p][HEVC_AAC][簡體內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1026,7 +1026,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `651005_Mushoku_Tensei___Season_2_10_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [10][WebRip][1080p][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [10][WebRip][1080p][HEVC_AAC][簡繁內封]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1037,7 +1037,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `650947_S2_Mushoku_Tensei_S2_10_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [10][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [10][1080p][簡繁內封]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1059,7 +1059,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `650945_S2_Mushoku_Tensei_S2_10_1080P_60FPS`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [10][1080P@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [10][1080P@60FPS][簡體內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1081,7 +1081,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `650943_S2_Mushoku_Tensei_S2_10_1080P`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [10][1080P][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [10][1080P][簡體內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1092,7 +1092,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `650775_7_Mushoku_Tensei_II_09_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][7月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][09][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][7月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][09][1080p][MP4][簡中]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1114,7 +1114,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `650451_S2_Mushoku_Tensei_S2_09_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [09][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [09][1080p][簡繁內封]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1136,7 +1136,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `650449_S2_Mushoku_Tensei_S2_09_1080P_60FPS`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [09][1080P@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [09][1080P@60FPS][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1158,7 +1158,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `650447_S2_Mushoku_Tensei_S2_09_1080P`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [09][1080P][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [09][1080P][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1170,7 +1170,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `650310_Mushoku_Tensei___Season_2_09_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [09][WebRip][1080p][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [09][WebRip][1080p][HEVC_AAC][簡繁內封]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1182,7 +1182,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `650309_Mushoku_Tensei___Season_2_09_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [09][WebRip][1080p][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [09][WebRip][1080p][HEVC_AAC][繁體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1194,7 +1194,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `650308_Mushoku_Tensei___Season_2_09_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [09][WebRip][1080p][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [09][WebRip][1080p][HEVC_AAC][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1205,7 +1205,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `649892_7_Mushoku_Tensei_II_08_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][7月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][08][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][7月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][08][1080p][MP4][簡中]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1227,7 +1227,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `649763_S2_Mushoku_Tensei_S2_08_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [08][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [08][1080p][簡繁內封]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1249,7 +1249,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `649761_S2_Mushoku_Tensei_S2_08_1080P_60FPS`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [08][1080P@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [08][1080P@60FPS][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1271,7 +1271,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `649759_S2_Mushoku_Tensei_S2_08_1080P`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [08][1080P][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [08][1080P][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1283,7 +1283,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `649717_Mushoku_Tensei___Season_2_08_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [08][WebRip][1080p][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [08][WebRip][1080p][HEVC_AAC][繁體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1295,7 +1295,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `649716_Mushoku_Tensei___Season_2_08_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [08][WebRip][1080p][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [08][WebRip][1080p][HEVC_AAC][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1307,7 +1307,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `649715_Mushoku_Tensei___Season_2_08_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [08][WebRip][1080p][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [08][WebRip][1080p][HEVC_AAC][簡繁內封]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1318,7 +1318,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `649363_7_Mushoku_Tensei_II_07_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][7月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][07][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][7月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][07][1080p][MP4][簡中]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1353,7 +1353,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `649233_Mushoku_Tensei_S2_06_1080P_WEBrip_MP4`() {
kotlin.run {
val r =
- parse("[星空字幕组][无职转生Ⅱ~到了异世界就拿出真本事~ / Mushoku Tensei S2][06][简日双语][1080P][WEBrip][MP4](急招校对、后期)")
+ parse("[星空字幕組][無職轉生Ⅱ~到了異世界就拿出真本事~ / Mushoku Tensei S2][06][簡日雙語][1080P][WEBrip][MP4](急招校對、後期)")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1364,7 +1364,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `649162_S2_Mushoku_Tensei_S2_07_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [07][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [07][1080p][簡繁內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1386,7 +1386,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `649160_S2_Mushoku_Tensei_S2_07_1080P_60FPS`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [07][1080P@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [07][1080P@60FPS][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1408,7 +1408,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `649158_S2_Mushoku_Tensei_S2_07_1080P`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [07][1080P][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [07][1080P][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1420,7 +1420,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `649085_Mushoku_Tensei___Season_2_07_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [07][WebRip][1080p][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [07][WebRip][1080p][HEVC_AAC][繁體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1432,7 +1432,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `649084_Mushoku_Tensei___Season_2_07_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [07][WebRip][1080p][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [07][WebRip][1080p][HEVC_AAC][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1444,7 +1444,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `649083_Mushoku_Tensei___Season_2_07_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [07][WebRip][1080p][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [07][WebRip][1080p][HEVC_AAC][簡繁內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1455,7 +1455,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `648630_7_Mushoku_Tensei_II_06_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][7月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][06][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][7月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][06][1080p][MP4][簡中]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1477,7 +1477,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `648522_S2_Mushoku_Tensei_S2_06_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [06][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [06][1080p][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1499,7 +1499,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `648520_S2_Mushoku_Tensei_S2_06_1080P_60FPS`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [06][1080P@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [06][1080P@60FPS][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1521,7 +1521,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `648518_S2_Mushoku_Tensei_S2_06_1080P`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [06][1080P][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [06][1080P][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1533,7 +1533,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `648457_Mushoku_Tensei___Season_2_06_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [06][WebRip][1080p][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [06][WebRip][1080p][HEVC_AAC][繁體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1545,7 +1545,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `648456_Mushoku_Tensei___Season_2_06_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [06][WebRip][1080p][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [06][WebRip][1080p][HEVC_AAC][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1557,7 +1557,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `648455_Mushoku_Tensei___Season_2_06_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [06][WebRip][1080p][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [06][WebRip][1080p][HEVC_AAC][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1581,7 +1581,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `648328_Mushoku_Tensei_S2_05_1080P_WEBrip_MP4`() {
kotlin.run {
val r =
- parse("[星空字幕组][无职转生Ⅱ~到了异世界就拿出真本事~ / Mushoku Tensei S2][05][简日双语][1080P][WEBrip][MP4](急招校对、后期)")
+ parse("[星空字幕組][無職轉生Ⅱ~到了異世界就拿出真本事~ / Mushoku Tensei S2][05][簡日雙語][1080P][WEBrip][MP4](急招校對、後期)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1592,7 +1592,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `647999_7_Mushoku_Tensei_II_05_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][7月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][05][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][7月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][05][1080p][MP4][簡中]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1614,7 +1614,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `647908_7_Mushoku_Tensei_II_04_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][7月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][04][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][7月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][04][1080p][MP4][簡中]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1636,7 +1636,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `647902_S2_Mushoku_Tensei_S2_05_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [05][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [05][1080p][簡繁內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1658,7 +1658,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `647900_S2_Mushoku_Tensei_S2_05_1080P_60FPS`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [05][1080P@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [05][1080P@60FPS][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1680,7 +1680,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `647898_S2_Mushoku_Tensei_S2_05_1080P`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [05][1080P][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [05][1080P][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1692,7 +1692,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `647872_Mushoku_Tensei___Season_2_05_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [05][WebRip][1080p][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [05][WebRip][1080p][HEVC_AAC][簡繁內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1704,7 +1704,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `647871_Mushoku_Tensei___Season_2_05_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [05][WebRip][1080p][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [05][WebRip][1080p][HEVC_AAC][繁體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1716,7 +1716,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `647870_Mushoku_Tensei___Season_2_05_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [05][WebRip][1080p][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [05][WebRip][1080p][HEVC_AAC][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1727,7 +1727,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `647405_S2_Mushoku_Tensei_S2_04_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [04][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [04][1080p][簡繁內封]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1749,7 +1749,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `647403_S2_Mushoku_Tensei_S2_04_1080P_60FPS`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [04][1080P@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [04][1080P@60FPS][簡體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1771,7 +1771,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `647401_S2_Mushoku_Tensei_S2_04_1080P`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [04][1080P][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [04][1080P][簡體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1795,7 +1795,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `647311_Mushoku_Tensei_S2_04_1080P_WEBrip_MP4`() {
kotlin.run {
val r =
- parse("[星空字幕组][无职转生Ⅱ~到了异世界就拿出真本事~ / Mushoku Tensei S2][04][简日双语][1080P][WEBrip][MP4](急招校对、后期)")
+ parse("[星空字幕組][無職轉生Ⅱ~到了異世界就拿出真本事~ / Mushoku Tensei S2][04][簡日雙語][1080P][WEBrip][MP4](急招校對、後期)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1807,7 +1807,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `647278_Mushoku_Tensei___Season_2_04_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [04][WebRip][1080p][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [04][WebRip][1080p][HEVC_AAC][繁體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1819,7 +1819,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `647277_Mushoku_Tensei___Season_2_04_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [04][WebRip][1080p][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [04][WebRip][1080p][HEVC_AAC][簡體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1831,7 +1831,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `647276_Mushoku_Tensei___Season_2_04_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [04][WebRip][1080p][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [04][WebRip][1080p][HEVC_AAC][簡繁內封]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1842,7 +1842,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `647012_7_Mushoku_Tensei_II_03_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][7月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][03][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][7月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][03][1080p][MP4][簡中]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1877,7 +1877,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `646824_Mushoku_Tensei_S2_03_1080P_WEBrip_MP4`() {
kotlin.run {
val r =
- parse("[星空字幕组][无职转生Ⅱ~到了异世界就拿出真本事~ / Mushoku Tensei S2][03][简日双语][1080P][WEBrip][MP4](急招校对、后期)")
+ parse("[星空字幕組][無職轉生Ⅱ~到了異世界就拿出真本事~ / Mushoku Tensei S2][03][簡日雙語][1080P][WEBrip][MP4](急招校對、後期)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1888,7 +1888,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `646795_S2_Mushoku_Tensei_S2_03_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [03][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [03][1080p][簡繁內封]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1910,7 +1910,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `646793_S2_Mushoku_Tensei_S2_03_1080P_60FPS`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [03][1080P@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [03][1080P@60FPS][簡體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1932,7 +1932,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `646788_S2_Mushoku_Tensei_S2_03_1080P`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [03][1080P][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [03][1080P][簡體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1944,7 +1944,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `646647_Mushoku_Tensei___Season_2_03_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [03][WebRip][1080p][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [03][WebRip][1080p][HEVC_AAC][繁體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1956,7 +1956,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `646646_Mushoku_Tensei___Season_2_03_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [03][WebRip][1080p][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [03][WebRip][1080p][HEVC_AAC][簡體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1968,7 +1968,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `646645_Mushoku_Tensei___Season_3_02_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [03][WebRip][1080p][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [03][WebRip][1080p][HEVC_AAC][簡繁內封]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1992,7 +1992,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `646167_Mushoku_Tensei_S2_02_1080P_WEBrip_MP4`() {
kotlin.run {
val r =
- parse("[星空字幕组][无职转生Ⅱ~到了异世界就拿出真本事~ / Mushoku Tensei S2][02][简日双语][1080P][WEBrip][MP4](急招校对、后期)")
+ parse("[星空字幕組][無職轉生Ⅱ~到了異世界就拿出真本事~ / Mushoku Tensei S2][02][簡日雙語][1080P][WEBrip][MP4](急招校對、後期)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2003,7 +2003,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `646115_S2_Mushoku_Tensei_S2_02_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [02][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [02][1080p][簡繁內封]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2025,7 +2025,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `646113_S2_Mushoku_Tensei_S2_02_1080P_60FPS`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [02][1080P@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [02][1080P@60FPS][簡體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2047,7 +2047,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `646111_S2_Mushoku_Tensei_S2_02_1080P`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [02][1080P][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [02][1080P][簡體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2058,7 +2058,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `645984_7_Mushoku_Tensei_II_02_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][7月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][02][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][7月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][02][1080p][MP4][簡中]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2081,7 +2081,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `645923_Mushoku_Tensei___Season_2_02_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [02][WebRip][1080p][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [02][WebRip][1080p][HEVC_AAC][繁體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2093,7 +2093,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `645922_Mushoku_Tensei___Season_2_02_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [02][WebRip][1080p][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [02][WebRip][1080p][HEVC_AAC][簡繁內封]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2105,7 +2105,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `645921_Mushoku_Tensei___Season_2_02_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [02][WebRip][1080p][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [02][WebRip][1080p][HEVC_AAC][簡體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2116,7 +2116,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `645365_S2_Mushoku_Tensei_S2_01_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [01][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [01][1080p][簡繁內封]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2138,7 +2138,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `645363_S2_Mushoku_Tensei_S2_01_1080P_60FPS`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [01][1080P@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [01][1080P@60FPS][簡體內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2160,7 +2160,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `645361_S2_Mushoku_Tensei_S2_01_1080P`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [01][1080P][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [01][1080P][簡體內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2184,7 +2184,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `645337_Mushoku_Tensei_S2_01_1080P_WEBrip_MP4`() {
kotlin.run {
val r =
- parse("[星空字幕组][无职转生Ⅱ~到了异世界就拿出真本事~ / Mushoku Tensei S2][01][简日双语][1080P][WEBrip][MP4](急招校对、后期)")
+ parse("[星空字幕組][無職轉生Ⅱ~到了異世界就拿出真本事~ / Mushoku Tensei S2][01][簡日雙語][1080P][WEBrip][MP4](急招校對、後期)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2195,7 +2195,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `645334_7_Mushoku_Tensei_II_01_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋字幕社&漫猫字幕社][7月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][01][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&漫貓字幕社][7月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][01][1080p][MP4][簡中]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2218,7 +2218,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `645185_Mushoku_Tensei___Season_2_01_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [01][WebRip][1080p][HEVC_AAC][繁體內嵌][無修正]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [01][WebRip][1080p][HEVC_AAC][繁體內嵌][無修正]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2230,7 +2230,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `645184_Mushoku_Tensei___Season_2_01_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [01][WebRip][1080p][HEVC_AAC][简体内嵌][无修正]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [01][WebRip][1080p][HEVC_AAC][簡體內嵌][無修正]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2242,7 +2242,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `645169_Mushoku_Tensei___Season_2_01_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [01][WebRip][1080p][HEVC_AAC][简繁内封][无修正]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [01][WebRip][1080p][HEVC_AAC][簡繁內封][無修正]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2254,7 +2254,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `644823_7_Mushoku_Tensei_II_00v2_1080p_MP4`() {
kotlin.run {
val r =
- parse("[爱恋字幕社&猫恋汉化组][7月新番][无职转生Ⅱ ~到了异世界就拿出真本事~][Mushoku Tensei II][00v2][1080p][MP4][简中]")
+ parse("[愛戀字幕社&貓戀漢化組][7月新番][無職轉生Ⅱ ~到了異世界就拿出真本事~][Mushoku Tensei II][00v2][1080p][MP4][簡中]")
assertEquals("00..00", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2277,7 +2277,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `644772_S2_Mushoku_Tensei_S2_00_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [00][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [00][1080p][簡繁內封]")
assertEquals("00..00", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2299,7 +2299,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `644769_S2_Mushoku_Tensei_S2_00_1080P_60FPS`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [00][1080P@60FPS][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [00][1080P@60FPS][簡體內嵌]")
assertEquals("00..00", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2321,7 +2321,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `644767_S2_Mushoku_Tensei_S2_00_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ S2 / Mushoku Tensei S2 [00][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ S2 / Mushoku Tensei S2 [00][1080p][簡體內嵌]")
assertEquals("00..00", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2345,7 +2345,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `644661_Mushoku_Tensei_S2_00_1080P_WEBrip_MP4`() {
kotlin.run {
val r =
- parse("[星空字幕组][无职转生Ⅱ~到了异世界就拿出真本事~ / Mushoku Tensei S2][00][简日双语][1080P][WEBrip][MP4](急招校对、后期)")
+ parse("[星空字幕組][無職轉生Ⅱ~到了異世界就拿出真本事~ / Mushoku Tensei S2][00][簡日雙語][1080P][WEBrip][MP4](急招校對、後期)")
assertEquals("00..00", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2357,7 +2357,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `644595_Mushoku_Tensei___Season_2_00_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [00][WebRip][1080p][HEVC_AAC][简繁内封][无修正]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [00][WebRip][1080p][HEVC_AAC][簡繁內封][無修正]")
assertEquals("00..00", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2369,7 +2369,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `644594_Mushoku_Tensei___Season_2_00_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [00][WebRip][1080p][HEVC_AAC][繁體內嵌][無修正]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [00][WebRip][1080p][HEVC_AAC][繁體內嵌][無修正]")
assertEquals("00..00", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2381,7 +2381,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `644593_Mushoku_Tensei___Season_2_00_WebRip_1080p_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 无职转生Ⅱ ~到了异世界就拿出真本事~/ Mushoku Tensei - Season 2 [00][WebRip][1080p][HEVC_AAC][简体内嵌][无修正]")
+ parse("[北宇治字幕組] 無職轉生Ⅱ ~到了異世界就拿出真本事~/ Mushoku Tensei - Season 2 [00][WebRip][1080p][HEVC_AAC][簡體內嵌][無修正]")
assertEquals("00..00", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2394,7 +2394,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
fun `602366_VCB_Studio_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_10_bit_1080p_HEVC_BDRip_S1_Fin`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&VCB-Studio] Mushoku Tensei: Isekai Ittara Honki Dasu / 无职转生~到了异世界就拿出真本事~ 10-bit 1080p HEVC BDRip [S1 Fin]")
+ parse("[喵萌奶茶屋&VCB-Studio] Mushoku Tensei: Isekai Ittara Honki Dasu / 無職轉生~到了異世界就拿出真本事~ 10-bit 1080p HEVC BDRip [S1 Fin]")
assertEquals("S1", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2406,7 +2406,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `595150_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_24_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [24][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [24][1080p][簡繁內封]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2442,7 +2442,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `595146_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_24_1080p_60FPS`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [24][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [24][1080p@60FPS][簡體內嵌]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2454,7 +2454,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `595145_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_24_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [24][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [24][1080p][簡體內嵌]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2477,7 +2477,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `588508_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_23_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [23][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [23][1080p][簡繁內封]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2501,7 +2501,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `588505_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_23_1080p_60FPS`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [23][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [23][1080p@60FPS][簡體內嵌]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2525,7 +2525,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `588503_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_23_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [23][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [23][1080p][簡體內嵌]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2548,7 +2548,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `587952_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_22_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [22][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [22][1080p][簡繁內封]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2572,7 +2572,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `587950_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_22_1080p_60FPS`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [22][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [22][1080p@60FPS][簡體內嵌]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2596,7 +2596,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `587948_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_22_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [22][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [22][1080p][簡體內嵌]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2619,7 +2619,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `587465_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_21_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [21][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [21][1080p][簡繁內封]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2643,7 +2643,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `587463_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_21_1080p_60FPS`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [21][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [21][1080p@60FPS][簡體內嵌]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2667,7 +2667,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `587461_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_21_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [21][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [21][1080p][簡體內嵌]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2679,7 +2679,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `586263_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_19_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [19][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [19][1080p][簡繁內封]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2703,7 +2703,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `586261_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_19_1080p_60FPS`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [19][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [19][1080p@60FPS][簡體內嵌]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2727,7 +2727,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `586259_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_19_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [19][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [19][1080p][簡體內嵌]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2739,7 +2739,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `585476_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_18_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [18][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [18][1080p][簡繁內封]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2763,7 +2763,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `585474_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_18_1080p_60FPS`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [18][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [18][1080p@60FPS][簡體內嵌]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2775,7 +2775,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `585473_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_18_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [18][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [18][1080p][簡體內嵌]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2799,7 +2799,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `584925_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_17v2_1080p_60FPS`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [17v2][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [17v2][1080p@60FPS][簡體內嵌]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2811,7 +2811,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `584923_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_17_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [17][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [17][1080p][簡繁內封]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2847,7 +2847,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `584919_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_17_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [17][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [17][1080p][簡體內嵌]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2859,7 +2859,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `584174_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_16_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [16][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [16][1080p][簡繁內封]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2883,7 +2883,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `584172_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_16_1080p_60FPS`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [16][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [16][1080p@60FPS][簡體內嵌]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2907,7 +2907,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `584168_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_16_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [16][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [16][1080p][簡體內嵌]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2931,7 +2931,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `583559_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_15_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [15][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [15][1080p][簡體內嵌]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2943,7 +2943,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `583556_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_15_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [15][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [15][1080p][簡繁內封]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2955,7 +2955,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `583555_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_15_1080p_60FPS`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [15][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [15][1080p@60FPS][簡體內嵌]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2990,7 +2990,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `582773_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_14_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [14][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [14][1080p][簡繁內封]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3014,7 +3014,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `582771_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_14_1080p_60FPS`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [14][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [14][1080p@60FPS][簡體內嵌]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3038,7 +3038,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `582768_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_14_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [14][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [14][1080p][簡體內嵌]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3072,7 +3072,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `582051_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_13v2_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [13v2][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [13v2][1080p][簡繁內封]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3084,7 +3084,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `582036_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_13_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [13][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [13][1080p][簡體內嵌]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3120,7 +3120,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `582031_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_13_1080p_60FPS`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [13][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [13][1080p@60FPS][簡體內嵌]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3132,7 +3132,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `581220_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_12_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [12][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [12][1080p][簡繁內封]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3156,7 +3156,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `581180_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_12_1080p_60FPS`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [12][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [12][1080p@60FPS][簡體內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3180,7 +3180,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `581178_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_12_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [12][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [12][1080p][簡體內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3203,7 +3203,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `577124_Mushoku_Tensei_01_11_BDRIP_1920x1080_HEVC_YUV420P10_FLAC`() {
kotlin.run {
val r =
- parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][01-11][BDRIP 1920x1080 HEVC-YUV420P10 FLAC][简繁外挂]")
+ parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][01-11][BDRIP 1920x1080 HEVC-YUV420P10 FLAC][簡繁外掛]")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3215,7 +3215,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `572626__Raws_11th_anniversary_BDRip_1080P_x265_10bit__FLAC_ALL`() {
kotlin.run {
val r =
- parse("【肥羊-Raws 11th anniversary】[无职转生~到了异世界就拿出真本事~][無職転生 〜異世界行ったら本気だす〜][BDRip][1080P_x265(10bit)-FLAC][ALL]")
+ parse("【肥羊-Raws 11th anniversary】[無職轉生~到了異世界就拿出真本事~][無職転生 〜異世界行ったら本気だす〜][BDRip][1080P_x265(10bit)-FLAC][ALL]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3237,7 +3237,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `566681_Mushoku_Tensei_01_11_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][01-11][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][01-11][x264 1080p][CHS]")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3259,7 +3259,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `564841_Mushoku_Tensei_11_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][11][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][11][x264 1080p][CHS]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3283,7 +3283,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `564511_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_01_11_Fin_1080p_60FPS`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01-11 Fin][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01-11 Fin][1080p@60FPS][簡體內嵌]")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3307,7 +3307,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `564509_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_01_11_Fin_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01-11 Fin][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01-11 Fin][1080p][簡體內嵌]")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3331,7 +3331,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `564507_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_01_11_Fin_720p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01-11 Fin][720p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01-11 Fin][720p][簡體內嵌]")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3343,7 +3343,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `564506_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_01_11_Fin_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01-11 Fin][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01-11 Fin][1080p][簡繁內封]")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3365,7 +3365,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `564157_Mushoku_Tensei_10_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][10][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][10][x264 1080p][CHS]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3388,7 +3388,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `563632_1_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_11_1080p_MP4_GB`() {
kotlin.run {
val r =
- parse("[爱恋&漫猫字幕组][1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][11][1080p][MP4][GB][简中]")
+ parse("[愛戀&漫貓字幕組][1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][11][1080p][MP4][GB][簡中]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3448,7 +3448,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `563429_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_11_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [11][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [11][1080p][簡繁內封]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3460,7 +3460,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `563428_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_11_1080p_60FPS`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [11][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [11][1080p@60FPS][簡體內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3472,7 +3472,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `563427_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_11_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [11][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [11][1080p][簡體內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3484,7 +3484,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `563423_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_11_720p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [11][720p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [11][720p][簡體內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3496,7 +3496,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `563336_NC_Raws_Mushoku_Tensei___11_WEB_DL_1080p_AVC_AAC_CHS_CHT_SRT_MKV`() {
kotlin.run {
val r =
- parse("[NC-Raws] 無職轉生~到了異世界就拿出真本事~(僅限港澳台地區) / Mushoku Tensei - 11 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
+ parse("[NC-Raws] 無職轉生~到了異世界就拿出真本事~(僅限港澳臺地區) / Mushoku Tensei - 11 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3508,7 +3508,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `563334_NC_Raws_Mushoku_Tensei___11_WEB_DL_1080p_AVC_AAC_CHS_CHT_TH_SRT_MKV`() {
kotlin.run {
val r =
- parse("[NC-Raws] 无职转生 ~到了异世界就拿出真本事~ / Mushoku Tensei - 11 [WEB-DL][1080p][AVC AAC][CHS_CHT_TH_SRT][MKV]")
+ parse("[NC-Raws] 無職轉生 ~到了異世界就拿出真本事~ / Mushoku Tensei - 11 [WEB-DL][1080p][AVC AAC][CHS_CHT_TH_SRT][MKV]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3520,7 +3520,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `563048_1_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_10_1080p_MP4_GB`() {
kotlin.run {
val r =
- parse("[爱恋&漫猫字幕组][1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][10][1080p][MP4][GB][简中]")
+ parse("[愛戀&漫貓字幕組][1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][10][1080p][MP4][GB][簡中]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3554,7 +3554,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `562844_Mushoku_Tensei_09_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][09][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][09][x264 1080p][CHS]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3578,7 +3578,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `562830_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_10_1080p_60FPS`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [10][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [10][1080p@60FPS][簡體內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3602,7 +3602,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `562826_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_10_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [10][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [10][1080p][簡體內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3636,7 +3636,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `562781_Mushoku_Tensei_08_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][08][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][08][x264 1080p][CHS]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3648,7 +3648,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `562768_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_10_720p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [10][720p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [10][720p][簡體內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3660,7 +3660,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `562760_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_10_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [10][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [10][1080p][簡繁內封]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3683,7 +3683,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `562694_NC_Raws_Mushoku_Tensei___10_WEB_DL_1080p_AVC_AAC_CHS_CHT_SRT_MKV`() {
kotlin.run {
val r =
- parse("[NC-Raws] 無職轉生~到了異世界就拿出真本事~(僅限港澳台地區) / Mushoku Tensei - 10 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
+ parse("[NC-Raws] 無職轉生~到了異世界就拿出真本事~(僅限港澳臺地區) / Mushoku Tensei - 10 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3695,7 +3695,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `562693_NC_Raws_Mushoku_Tensei___10_WEB_DL_1080p_AVC_AAC_CHS_CHT_TH_SRT_MKV`() {
kotlin.run {
val r =
- parse("[NC-Raws] 无职转生 ~到了异世界就拿出真本事~ / Mushoku Tensei - 10 [WEB-DL][1080p][AVC AAC][CHS_CHT_TH_SRT][MKV]")
+ parse("[NC-Raws] 無職轉生 ~到了異世界就拿出真本事~ / Mushoku Tensei - 10 [WEB-DL][1080p][AVC AAC][CHS_CHT_TH_SRT][MKV]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3729,7 +3729,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `562326_1_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_09_1080p_MP4_GB`() {
kotlin.run {
val r =
- parse("[爱恋&漫猫字幕组][1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][09][1080p][MP4][GB][简中]")
+ parse("[愛戀&漫貓字幕組][1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][09][1080p][MP4][GB][簡中]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3765,7 +3765,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `562168_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_09_1080p_60FPS`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [09][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [09][1080p@60FPS][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3789,7 +3789,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `562160_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_09_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [09][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [09][1080p][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3813,7 +3813,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `562154_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_09_720p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [09][720p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [09][720p][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3825,7 +3825,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `562144_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_09_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [09][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [09][1080p][簡繁內封]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3837,7 +3837,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `562056_NC_Raws_Mushoku_Tensei___09_WEB_DL_1080p_AVC_AAC_CHS_CHT_SRT_MKV`() {
kotlin.run {
val r =
- parse("[NC-Raws] 無職轉生~到了異世界就拿出真本事~(僅限港澳台地區) / Mushoku Tensei - 09 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
+ parse("[NC-Raws] 無職轉生~到了異世界就拿出真本事~(僅限港澳臺地區) / Mushoku Tensei - 09 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3849,7 +3849,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `562055_NC_Raws_Mushoku_Tensei___09_WEB_DL_1080p_AVC_AAC_CHS_CHT_TH_SRT_MKV`() {
kotlin.run {
val r =
- parse("[NC-Raws] 无职转生 ~到了异世界就拿出真本事~ / Mushoku Tensei - 09 [WEB-DL][1080p][AVC AAC][CHS_CHT_TH_SRT][MKV]")
+ parse("[NC-Raws] 無職轉生 ~到了異世界就拿出真本事~ / Mushoku Tensei - 09 [WEB-DL][1080p][AVC AAC][CHS_CHT_TH_SRT][MKV]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3861,7 +3861,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `561772_1_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_08_1080p_MP4_GB`() {
kotlin.run {
val r =
- parse("[爱恋&漫猫字幕组][1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][08][1080p][MP4][GB][简中]")
+ parse("[愛戀&漫貓字幕組][1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][08][1080p][MP4][GB][簡中]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3885,7 +3885,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `561704_NC_Raws_Mushoku_Tensei___08_WEB_DL_1080p_AVC_AAC_CHS_CHT_SRT_MKV`() {
kotlin.run {
val r =
- parse("[NC-Raws] 无职转生 ~到了异世界就拿出真本事~ / Mushoku Tensei - 08 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
+ parse("[NC-Raws] 無職轉生 ~到了異世界就拿出真本事~ / Mushoku Tensei - 08 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3909,7 +3909,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `561491_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_08_1080p_60FPS`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [08][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [08][1080p@60FPS][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3933,7 +3933,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `561484_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_08_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [08][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [08][1080p][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3957,7 +3957,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `561475_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_08_720p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [08][720p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [08][720p][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3969,7 +3969,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `561472_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_08_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [08][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [08][1080p][簡繁內封]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3981,7 +3981,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `561350_NC_Raws_Mushoku_Tensei___08_WEB_DL_1080p_AVC_AAC_CHS_CHT_SRT_MKV`() {
kotlin.run {
val r =
- parse("[NC-Raws] 無職轉生~到了異世界就拿出真本事~(僅限港澳台地區) / Mushoku Tensei - 08 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
+ parse("[NC-Raws] 無職轉生~到了異世界就拿出真本事~(僅限港澳臺地區) / Mushoku Tensei - 08 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4003,7 +4003,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `561237_Mushoku_Tensei_07_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][07][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][07][x264 1080p][CHS]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4015,7 +4015,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `560944_1_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_07_1080p_MP4_GB`() {
kotlin.run {
val r =
- parse("[爱恋&漫猫字幕组][1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][07][1080p][MP4][GB][简中]")
+ parse("[愛戀&漫貓字幕組][1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][07][1080p][MP4][GB][簡中]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4062,7 +4062,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `560711_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_07_1080p_60FPS`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [07][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [07][1080p@60FPS][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4086,7 +4086,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `560698_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_07_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [07][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [07][1080p][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4110,7 +4110,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `560695_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_07_720p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [07][720p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [07][720p][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4122,7 +4122,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `560690_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_07_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [07][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [07][1080p][簡繁內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4134,7 +4134,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `560618_NC_Raws_Mushoku_Tensei___07_WEB_DL_1080p_AVC_AAC_CHS_CHT_SRT_MKV`() {
kotlin.run {
val r =
- parse("[NC-Raws] 無職轉生~到了異世界就拿出真本事~(僅限港澳台地區) / Mushoku Tensei - 07 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
+ parse("[NC-Raws] 無職轉生~到了異世界就拿出真本事~(僅限港澳臺地區) / Mushoku Tensei - 07 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4146,7 +4146,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `560210_1_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_06_1080p_MP4_GB`() {
kotlin.run {
val r =
- parse("[爱恋&漫猫字幕组][1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][06][1080p][MP4][GB][简中]")
+ parse("[愛戀&漫貓字幕組][1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][06][1080p][MP4][GB][簡中]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4180,7 +4180,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `560179_Mushoku_Tensei_06_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][06][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][06][x264 1080p][CHS]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4204,7 +4204,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `560024_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_06_1080p_60FPS`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [06][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [06][1080p@60FPS][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4228,7 +4228,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `560018_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_06_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [06][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [06][1080p][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4252,7 +4252,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `560015_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_06_720p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [06][720p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [06][720p][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4264,7 +4264,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `560013_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_06_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [06][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [06][1080p][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4287,7 +4287,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `559913_NC_Raws_Mushoku_Tensei___06_WEB_DL_1080p_AVC_AAC_CHS_CHT_SRT_MKV`() {
kotlin.run {
val r =
- parse("[NC-Raws] 無職轉生~到了異世界就拿出真本事~(僅限港澳台地區) / Mushoku Tensei - 06 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
+ parse("[NC-Raws] 無職轉生~到了異世界就拿出真本事~(僅限港澳臺地區) / Mushoku Tensei - 06 [WEB-DL][1080p][AVC AAC][CHS_CHT_SRT][MKV]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4309,7 +4309,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `559513_Mushoku_Tensei_05_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][05][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][05][x264 1080p][CHS]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4321,7 +4321,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `559451_1_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_05_1080p_MP4_GB`() {
kotlin.run {
val r =
- parse("[爱恋&漫猫字幕组][1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][05][1080p][MP4][GB][简中]")
+ parse("[愛戀&漫貓字幕組][1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][05][1080p][MP4][GB][簡中]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4357,7 +4357,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `559394_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_05_1080p_60FPS`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [05][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [05][1080p@60FPS][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4381,7 +4381,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `559390_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_05_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [05][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [05][1080p][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4405,7 +4405,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `559357_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_05_720p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [05][720p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [05][720p][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4417,7 +4417,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `559349_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_05_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [05][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [05][1080p][簡繁內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4428,7 +4428,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `559346_Mushoku_Tensei_04_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][04][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][04][x264 1080p][CHS]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4462,7 +4462,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `559077_1_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_04_1080p_MP4_GB`() {
kotlin.run {
val r =
- parse("[爱恋&漫猫字幕组][1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][04][1080p][MP4][GB][简中]")
+ parse("[愛戀&漫貓字幕組][1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][04][1080p][MP4][GB][簡中]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4496,7 +4496,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `558798_Mushoku_Tensei_03_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][03][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][03][x264 1080p][CHS]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4518,7 +4518,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `558796_Mushoku_Tensei_02_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][02][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][02][x264 1080p][CHS]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4542,7 +4542,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `558731_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_04_1080p_60FPS`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [04][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [04][1080p@60FPS][簡體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4566,7 +4566,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `558729_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_04_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [04][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [04][1080p][簡體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4590,7 +4590,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `558725_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_04_720p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [04][720p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [04][720p][簡體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4602,7 +4602,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `558724_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_04_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [04][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [04][1080p][簡繁內封]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4625,7 +4625,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `558421_1_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_03_1080p_MP4_GB`() {
kotlin.run {
val r =
- parse("[爱恋&漫猫字幕组][1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][03][1080p][MP4][GB][简中]")
+ parse("[愛戀&漫貓字幕組][1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][03][1080p][MP4][GB][簡中]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4659,7 +4659,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
@Test
public fun `558394_Mushoku_Tensei_01_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[无职转生~到了异世界就拿出真本事~_Mushoku Tensei][01][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[無職轉生~到了異世界就拿出真本事~_Mushoku Tensei][01][x264 1080p][CHS]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4671,7 +4671,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `558071_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_03_1080p_60FPS`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [03][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [03][1080p@60FPS][簡體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4707,7 +4707,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `558045_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_03_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [03][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [03][1080p][簡體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4731,7 +4731,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `558043_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_03_720p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [03][720p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [03][720p][簡體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4743,7 +4743,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `558041_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_03_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [03][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [03][1080p][簡繁內封]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4766,7 +4766,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `557642_1_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_02_1080p_MP4_GB`() {
kotlin.run {
val r =
- parse("[神枫字幕组] [1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][02][1080p][MP4][GB][简体中文]")
+ parse("[神楓字幕組] [1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][02][1080p][MP4][GB][簡體中文]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4778,7 +4778,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `557640_1_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_02_720p_MP4_GB`() {
kotlin.run {
val r =
- parse("[神枫字幕组] [1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][02][720p][MP4][GB][简体中文]")
+ parse("[神楓字幕組] [1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][02][720p][MP4][GB][簡體中文]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4790,7 +4790,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `557592_1_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_02_1080p_MP4_GB`() {
kotlin.run {
val r =
- parse("[爱恋&漫猫字幕组][1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][02][1080p][MP4][GB][简中]")
+ parse("[愛戀&漫貓字幕組][1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][02][1080p][MP4][GB][簡中]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4814,7 +4814,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `557384_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_02_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [02][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [02][1080p][簡繁內封]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4838,7 +4838,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `557382_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_02_1080p_60FPS`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [02][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [02][1080p@60FPS][簡體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4862,7 +4862,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `557380_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_02_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [02][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [02][1080p][簡體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4886,7 +4886,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `557378_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_02_720p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [02][720p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [02][720p][簡體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4909,7 +4909,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `557073_1_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_01_1080p_AVC`() {
kotlin.run {
val r =
- parse("[爱恋&漫猫字幕组][1月新番][无职转生~到了异世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][01][1080p][AVC][简中]")
+ parse("[愛戀&漫貓字幕組][1月新番][無職轉生~到了異世界就拿出真本事~][Mushoku Tensei Isekai Ittara Honki Dasu][01][1080p][AVC][簡中]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4933,7 +4933,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `556703_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_01_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01][1080p][简繁内封]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01][1080p][簡繁內封]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4957,7 +4957,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `556701_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_01_1080p_60FPS`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01][1080p@60FPS][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01][1080p@60FPS][簡體內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4981,7 +4981,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `556699_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_01_1080p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01][1080p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01][1080p][簡體內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5005,7 +5005,7 @@ public class PatternTitleParserTest無職轉生_到了異世界就拿出真本
public fun `556697_Mushoku_Tensei_Isekai_Ittara_Honki_Dasu_01_720p`() {
kotlin.run {
val r =
- parse("[桜都字幕组] 无职转生~到了异世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01][720p][简体内嵌]")
+ parse("[桜都字幕組] 無職轉生~到了異世界就拿出真本事~ / Mushoku Tensei Isekai Ittara Honki Dasu [01][720p][簡體內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
diff --git "a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\347\237\263\347\272\252\345\205\203.kt" "b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\347\237\263\347\272\252\345\205\203.kt"
index 0745fb335..dfca16df5 100644
--- "a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\347\237\263\347\272\252\345\205\203.kt"
+++ "b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\347\237\263\347\272\252\345\205\203.kt"
@@ -25,7 +25,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `690822_Dr_STONE_Science_Future_05_1080p_2025_1`() {
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第四季 科学与未来 / Dr.STONE:Science Future [05] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第四季 科學與未來 / Dr.STONE:Science Future [05] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -36,7 +36,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `690627_Dr_STONE_Science_Future_04_1080p_2025_1`() {
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第四季 科学与未来 / Dr.STONE:Science Future [04] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第四季 科學與未來 / Dr.STONE:Science Future [04] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -48,7 +48,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `690565_Dr_STONE_SCIENCE_FUTURE_03_CR_WebRip_1080p_HEVC_AAC_S4`() {
kotlin.run {
val r =
- parse("[芝士动物朋友] 石纪元 科学与未来 / Dr.STONE SCIENCE FUTURE [03][CR-WebRip][1080p][HEVC+AAC][简繁内封](新石纪 第四季 S4)")
+ parse("[芝士動物朋友] 石紀元 科學與未來 / Dr.STONE SCIENCE FUTURE [03][CR-WebRip][1080p][HEVC+AAC][簡繁內封](新石紀 第四季 S4)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -59,7 +59,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `690253_Dr_STONE_Science_Future_03_1080p_2025_1`() {
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第四季 科学与未来 / Dr.STONE:Science Future [03] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第四季 科學與未來 / Dr.STONE:Science Future [03] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -70,7 +70,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `690163_Dr_STONE_Science_Future_02_1080p_2025_1`() {
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第四季 科学与未来 / Dr.STONE:Science Future [02] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第四季 科學與未來 / Dr.STONE:Science Future [02] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -81,7 +81,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `690007_Dr_STONE_Science_Future_01_1080p_2025_1`() {
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第四季 科学与未来 / Dr.STONE:Science Future [01] [1080p] [简日内嵌] [2025年1月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第四季 科學與未來 / Dr.STONE:Science Future [01] [1080p] [簡日內嵌] [2025年1月番]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -93,7 +93,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `689898_Dr_STONE_SCIENCE_FUTURE_02_CR_WebRip_1080p_HEVC_AAC_S4`() {
kotlin.run {
val r =
- parse("[芝士动物朋友] 石纪元 科学与未来 / Dr.STONE SCIENCE FUTURE [02][CR-WebRip][1080p][HEVC+AAC][简繁内封](新石纪 第四季 S4)")
+ parse("[芝士動物朋友] 石紀元 科學與未來 / Dr.STONE SCIENCE FUTURE [02][CR-WebRip][1080p][HEVC+AAC][簡繁內封](新石紀 第四季 S4)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -106,7 +106,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
fun `689075_DBD_Raws_Stone_Wars_Dr_Stone_Stone_Wars_01_11TV_1080P_BDRip_HEVC_10bit_FLAC_MKV_Dr_Stone_S2_Stone_Wars`() {
kotlin.run {
val r =
- parse("[DBD-Raws][新石纪 Stone Wars/Dr. Stone Stone Wars][01-11TV全集][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV](石纪元 第二季/Dr. Stone S2/ドクターストーン Stone Wars)")
+ parse("[DBD-Raws][新石紀 Stone Wars/Dr. Stone Stone Wars][01-11TV全集][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV](石紀元 第二季/Dr. Stone S2/ドクターストーン Stone Wars)")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -119,7 +119,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
fun `688856_DBD_Raws_New_World_Dr_Stone_New_World_01_22TV_SP_1080P_BDRip_HEVC_10bit_FLAC_MKV_Dr_Stone_S3_New_World`() {
kotlin.run {
val r =
- parse("[DBD-Raws][新石纪 New World/Dr. Stone New World][01-22TV全集+SP][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV](石纪元 第三季/Dr. Stone S3/ドクターストーン New World)")
+ parse("[DBD-Raws][新石紀 New World/Dr. Stone New World][01-22TV全集+SP][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV](石紀元 第三季/Dr. Stone S3/ドクターストーン New World)")
assertEquals("01..22+SP", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -131,7 +131,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `688817_Dr_STONE_SCIENCE_FUTURE_01_CR_WebRip_1080p_HEVC_AAC_S4`() {
kotlin.run {
val r =
- parse("[芝士动物朋友] 石纪元 科学与未来 / Dr.STONE SCIENCE FUTURE [01][CR-WebRip][1080p][HEVC+AAC][简繁内封](新石纪 第四季 S4)")
+ parse("[芝士動物朋友] 石紀元 科學與未來 / Dr.STONE SCIENCE FUTURE [01][CR-WebRip][1080p][HEVC+AAC][簡繁內封](新石紀 第四季 S4)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -144,7 +144,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
fun `679339_jibaketa_Dr_Stone_New_World___22_END_WEB_1920x1080_AVC_AACx2_PGS_SRT_Ani_One_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 22 END [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 22 END [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -157,7 +157,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
fun `678927_jibaketa_Dr_Stone_New_World___21_WEB_1920x1080_AVC_AACx2_PGS_SRT_Ani_One_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 21 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 21 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -170,7 +170,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
fun `678485_jibaketa_Dr_Stone_New_World___20_WEB_1920x1080_AVC_AACx2_PGS_SRT_Ani_One_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 20 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 20 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -183,7 +183,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
fun `678132_jibaketa_Dr_Stone_New_World___19_WEB_1920x1080_AVC_AACx2_PGS_SRT_Ani_One_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 19 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 19 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -196,7 +196,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
fun `677722_jibaketa_Dr_Stone_New_World___18_WEB_1920x1080_AVC_AACx2_PGS_SRT_Ani_One_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 18 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 18 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -209,7 +209,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
fun `677229_jibaketa_Dr_Stone_New_World___17_WEB_1920x1080_AVC_AACx2_PGS_SRT_Ani_One_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 17 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 17 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -222,7 +222,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
fun `674728_jibaketa_Dr_Stone_New_World___16_WEB_1920x1080_AVC_AACx2_PGS_SRT_Ani_One_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 16 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 16 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -235,7 +235,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
fun `674226_jibaketa_Dr_Stone_New_World___15_WEB_1920x1080_AVC_AACx2_PGS_SRT_Ani_One_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 15 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 15 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -248,7 +248,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
fun `673771_jibaketa_Dr_Stone_New_World___14_WEB_1920x1080_AVC_AACx2_PGS_SRT_Ani_One_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 14 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 14 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -261,7 +261,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
fun `673207_jibaketa_Dr_Stone_New_World___13_WEB_1920x1080_AVC_AACx2_PGS_SRT_Ani_One_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 13 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 13 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -274,7 +274,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
fun `672727_jibaketa_Dr_Stone_New_World___12_WEB_1920x1080_AVC_AACx2_PGS_SRT_Ani_One_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 12 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&音頻壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 12 [粵日雙語+內封繁體中文雙字幕] (WEB 1920x1080 AVC AACx2 PGS+SRT Ani-One CHT)")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -287,7 +287,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
fun `672230_jibaketa_Dr_Stone_New_World___11_BD_1920x1080_x264_AACx2_PGS_SRT_Ani_One_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 11 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 11 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -300,7 +300,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
fun `671268_jibaketa_Dr_Stone_New_World___10_BD_1920x1080_x264_AACx2_PGS_SRT_Ani_One_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 10 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 10 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -313,7 +313,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
fun `670745_jibaketa_Dr_Stone_New_World___09_BD_1920x1080_x264_AACx2_PGS_SRT_Ani_One_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 09 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 09 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -326,7 +326,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
fun `670200_jibaketa_Dr_Stone_New_World___08_BD_1920x1080_x264_AACx2_PGS_SRT_Ani_One_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 08 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 08 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -339,7 +339,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
fun `669435_jibaketa_Dr_Stone_New_World___07_BD_1920x1080_x264_AACx2_PGS_SRT_Ani_One_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 07 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 07 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -352,7 +352,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
fun `668935_jibaketa_Dr_Stone_New_World___06_BD_1920x1080_x264_AACx2_PGS_SRT_Ani_One_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 06 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 06 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -365,7 +365,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
fun `668405_jibaketa_Dr_Stone_New_World___05_BD_1920x1080_x264_AACx2_PGS_SRT_Ani_One_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 05 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 05 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -378,7 +378,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
fun `667821_jibaketa_Dr_Stone_New_World___04_BD_1920x1080_x264_AACx2_PGS_SRT_Ani_One_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 04 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 04 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -391,7 +391,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
fun `667820_jibaketa_Dr_Stone_New_World___03_BD_1920x1080_x264_AACx2_PGS_SRT_Ani_One_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 03 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 03 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -404,7 +404,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
fun `666366_jibaketa_Dr_Stone_New_World___02_BD_1920x1080_x264_AACx2_PGS_SRT_Ani_One_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 02 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 02 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -417,7 +417,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
fun `665820_jibaketa_Dr_Stone_New_World___01_BD_1920x1080_x264_AACx2_PGS_SRT_Ani_One_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石纪元 第三季 新世界 - 01 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone New World 新石紀 / 石紀元 第三季 新世界 - 01 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -429,7 +429,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `665454_jibaketa_Dr_Stone_Ryuusui_BD_1920x1080_x264_AACx2_PGS_SRT_Ani_One_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone Ryuusui 新石紀 / 石纪元 龍水 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]Dr.Stone Ryuusui 新石紀 / 石紀元 龍水 [粵日雙語+內封繁體中文雙字幕] (BD 1920x1080 x264 AACx2 PGS+SRT Ani-One CHT)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -441,7 +441,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `659517_Dr_STONE_New_World_12_22_WebRip_1080p_2023_10`() {
kotlin.run {
val r =
- parse("[猎户压制部] 石纪元 第三季 下半 / Dr.STONE:New World [12-22] [WebRip] [1080p] [简日内嵌] [2023年10月番]")
+ parse("[獵戶壓制部] 石紀元 第三季 下半 / Dr.STONE:New World [12-22] [WebRip] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("12..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -452,7 +452,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `659248_Dr_STONE_New_World_22_END_1080p_2023_10`() {
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第三季 下半 / Dr.STONE:New World [22] [END] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第三季 下半 / Dr.STONE:New World [22] [END] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -463,7 +463,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `658708_Dr_STONE_New_World_21_1080p_2023_10`() {
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第三季 下半 / Dr.STONE:New World [21] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第三季 下半 / Dr.STONE:New World [21] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -474,7 +474,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `658151_Dr_STONE_New_World_20_1080p_2023_10`() {
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第三季 下半 / Dr.STONE:New World [20] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第三季 下半 / Dr.STONE:New World [20] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -485,7 +485,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `657480_Dr_STONE_New_World_19_1080p_2023_10`() {
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第三季 下半 / Dr.STONE:New World [19] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第三季 下半 / Dr.STONE:New World [19] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -496,7 +496,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `657082_Dr_STONE_New_World_18_1080p_2023_10`() {
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第三季 下半 / Dr.STONE:New World [18] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第三季 下半 / Dr.STONE:New World [18] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -507,7 +507,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `656749_Dr_STONE_New_World_17_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第三季 下半 / Dr.STONE:New World [17] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第三季 下半 / Dr.STONE:New World [17] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -518,7 +518,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `656416_Dr_STONE_New_World_16_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第三季 下半 / Dr.STONE:New World [16] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第三季 下半 / Dr.STONE:New World [16] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -529,7 +529,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `655803_Dr_STONE_New_World_15_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第三季 下半 / Dr.STONE:New World [15] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第三季 下半 / Dr.STONE:New World [15] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -540,7 +540,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `655282_Dr_STONE_New_World_14_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第三季 下半 / Dr.STONE:New World [14] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第三季 下半 / Dr.STONE:New World [14] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -551,7 +551,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `654897_Dr_STONE_New_World_13_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第三季 下半 / Dr.STONE:New World [13] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第三季 下半 / Dr.STONE:New World [13] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -562,7 +562,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `654713_Dr_STONE_New_World_12_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户压制部] 石纪元 第三季 下半 / Dr.STONE:New World [12] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶壓制部] 石紀元 第三季 下半 / Dr.STONE:New World [12] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -573,7 +573,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `644072_Dr_STONE_New_World_01_11_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [01-11] [合集] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [01-11] [合集] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -585,7 +585,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `643782_LoliHouse_Dr_STONE_S3_01_11_WebRip_1080p_HEVC_10bit_AAC_Fin`() {
kotlin.run {
val r =
- parse("[豌豆字幕组&风之圣殿字幕组&LoliHouse] 新石纪 第三季 / 石纪元 第三季 / Dr.STONE S3 [01-11 合集][WebRip 1080p HEVC-10bit AAC][简繁外挂字幕][Fin]")
+ parse("[豌豆字幕組&風之聖殿字幕組&LoliHouse] 新石紀 第三季 / 石紀元 第三季 / Dr.STONE S3 [01-11 合集][WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕][Fin]")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -596,7 +596,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `643763_04_Dr_STONE_01_11_1080P_MP4`() {
kotlin.run {
- val r = parse("【豌豆字幕组&风之圣殿字幕组】★04月新番[Dr.STONE 新石纪 / 石纪元 第三季][01-11][合集][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組&風之聖殿字幕組】★04月新番[Dr.STONE 新石紀 / 石紀元 第三季][01-11][合集][簡體][1080P][MP4]")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -618,7 +618,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `643158_Dr_STONE_New_World_11_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [11] [1080p] [简繁日内封] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [11] [1080p] [簡繁日內封] [2023年4月番]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -629,7 +629,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `643157_Dr_STONE_New_World_11_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [11] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [11] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -641,7 +641,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `643093_LoliHouse_Dr_STONE_S3___11_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[豌豆字幕组&风之圣殿字幕组&LoliHouse] 新石纪 第三季 / 石纪元 第三季 / Dr.STONE S3 - 11 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&風之聖殿字幕組&LoliHouse] 新石紀 第三季 / 石紀元 第三季 / Dr.STONE S3 - 11 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -652,7 +652,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `643048_04_Dr_STONE_11_1080P_MP4`() {
kotlin.run {
- val r = parse("【豌豆字幕组&风之圣殿字幕组】★04月新番[Dr.STONE 新石纪 / 石纪元 第三季][11][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組&風之聖殿字幕組】★04月新番[Dr.STONE 新石紀 / 石紀元 第三季][11][簡體][1080P][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -674,7 +674,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `642575_Dr_STONE_New_World_10_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [10] [1080p] [简繁日内封] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [10] [1080p] [簡繁日內封] [2023年4月番]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -685,7 +685,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `642574_Dr_STONE_New_World_10_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [10] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [10] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -697,7 +697,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `642509_LoliHouse_Dr_STONE_S3___10_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[豌豆字幕组&风之圣殿字幕组&LoliHouse] 新石纪 第三季 / 石纪元 第三季 / Dr.STONE S3 - 10 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&風之聖殿字幕組&LoliHouse] 新石紀 第三季 / 石紀元 第三季 / Dr.STONE S3 - 10 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -708,7 +708,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `642463_04_Dr_STONE_10_1080P_MP4`() {
kotlin.run {
- val r = parse("【豌豆字幕组&风之圣殿字幕组】★04月新番[Dr.STONE 新石纪 / 石纪元 第三季][10][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組&風之聖殿字幕組】★04月新番[Dr.STONE 新石紀 / 石紀元 第三季][10][簡體][1080P][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -730,7 +730,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `642014_Dr_STONE_New_World_09_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [09] [1080p] [简繁日内封] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [09] [1080p] [簡繁日內封] [2023年4月番]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -741,7 +741,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `642013_Dr_STONE_New_World_09_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [09] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [09] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -753,7 +753,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `641868_LoliHouse_Dr_STONE_S3___09_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[豌豆字幕组&风之圣殿字幕组&LoliHouse] 新石纪 第三季 / 石纪元 第三季 / Dr.STONE S3 - 09 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&風之聖殿字幕組&LoliHouse] 新石紀 第三季 / 石紀元 第三季 / Dr.STONE S3 - 09 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -764,7 +764,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `641865_04_Dr_STONE_09_1080P_MP4`() {
kotlin.run {
- val r = parse("【豌豆字幕组&风之圣殿字幕组】★04月新番[Dr.STONE 新石纪 / 石纪元 第三季][09][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組&風之聖殿字幕組】★04月新番[Dr.STONE 新石紀 / 石紀元 第三季][09][簡體][1080P][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -786,7 +786,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `641499_Dr_STONE_New_World_08_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [08] [1080p] [简繁日内封] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [08] [1080p] [簡繁日內封] [2023年4月番]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -797,7 +797,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `641500_Dr_STONE_New_World_08_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [08] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [08] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -809,7 +809,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `641365_LoliHouse_Dr_STONE_S3___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[豌豆字幕组&风之圣殿字幕组&LoliHouse] 新石纪 第三季 / 石纪元 第三季 / Dr.STONE S3 - 08 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&風之聖殿字幕組&LoliHouse] 新石紀 第三季 / 石紀元 第三季 / Dr.STONE S3 - 08 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -820,7 +820,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `641286_04_Dr_STONE_08_1080P_MP4`() {
kotlin.run {
- val r = parse("【豌豆字幕组&风之圣殿字幕组】★04月新番[Dr.STONE 新石纪 / 石纪元 第三季][08][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組&風之聖殿字幕組】★04月新番[Dr.STONE 新石紀 / 石紀元 第三季][08][簡體][1080P][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -842,7 +842,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `640857_Dr_STONE_New_World_07_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [07] [1080p] [简繁日内封] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [07] [1080p] [簡繁日內封] [2023年4月番]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -853,7 +853,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `640856_Dr_STONE_New_World_07_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [07] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [07] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -865,7 +865,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `640661_LoliHouse_Dr_STONE_S3___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[豌豆字幕组&风之圣殿字幕组&LoliHouse] 新石纪 第三季 / 石纪元 第三季 / Dr.STONE S3 - 07 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&風之聖殿字幕組&LoliHouse] 新石紀 第三季 / 石紀元 第三季 / Dr.STONE S3 - 07 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -876,7 +876,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `640615_04_Dr_STONE_07_1080P_MP4`() {
kotlin.run {
- val r = parse("【豌豆字幕组&风之圣殿字幕组】★04月新番[Dr.STONE 新石纪 / 石纪元 第三季][07][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組&風之聖殿字幕組】★04月新番[Dr.STONE 新石紀 / 石紀元 第三季][07][簡體][1080P][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -898,7 +898,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `640411_Dr_STONE_New_World_06_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [06] [1080p] [简繁日内封] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [06] [1080p] [簡繁日內封] [2023年4月番]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -909,7 +909,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `640410_Dr_STONE_New_World_06_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [06] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [06] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -921,7 +921,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `640034_LoliHouse_Dr_STONE_S3___06_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[豌豆字幕组&风之圣殿字幕组&LoliHouse] 新石纪 第三季 / 石纪元 第三季 / Dr.STONE S3 - 06 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&風之聖殿字幕組&LoliHouse] 新石紀 第三季 / 石紀元 第三季 / Dr.STONE S3 - 06 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -932,7 +932,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `640007_04_Dr_STONE_06_1080P_MP4`() {
kotlin.run {
- val r = parse("【豌豆字幕组&风之圣殿字幕组】★04月新番[Dr.STONE 新石纪 / 石纪元 第三季][06][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組&風之聖殿字幕組】★04月新番[Dr.STONE 新石紀 / 石紀元 第三季][06][簡體][1080P][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -954,7 +954,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `639600_Dr_STONE_New_World_05_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [05] [1080p] [简繁日内封] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [05] [1080p] [簡繁日內封] [2023年4月番]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -965,7 +965,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `639599_Dr_STONE_New_World_05_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [05] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [05] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -976,7 +976,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `639590_Dr_STONE_New_World_04_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [04] [1080p] [简繁日内封] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [04] [1080p] [簡繁日內封] [2023年4月番]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -987,7 +987,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `639589_Dr_STONE_New_World_04_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [04] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [04] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -999,7 +999,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `639296_LoliHouse_Dr_STONE_S3___05_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[豌豆字幕组&风之圣殿字幕组&LoliHouse] 新石纪 第三季 / 石纪元 第三季 / Dr.STONE S3 - 05 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&風之聖殿字幕組&LoliHouse] 新石紀 第三季 / 石紀元 第三季 / Dr.STONE S3 - 05 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1010,7 +1010,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `639285_04_Dr_STONE_05_1080P_MP4`() {
kotlin.run {
- val r = parse("【豌豆字幕组&风之圣殿字幕组】★04月新番[Dr.STONE 新石纪 / 石纪元 第三季][05][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組&風之聖殿字幕組】★04月新番[Dr.STONE 新石紀 / 石紀元 第三季][05][簡體][1080P][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1033,7 +1033,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `638641_LoliHouse_Dr_STONE_S3___04_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[豌豆字幕组&风之圣殿字幕组&LoliHouse] 新石纪 第三季 / 石纪元 第三季 / Dr.STONE S3 - 04 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&風之聖殿字幕組&LoliHouse] 新石紀 第三季 / 石紀元 第三季 / Dr.STONE S3 - 04 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1044,7 +1044,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `638637_04_Dr_STONE_04_1080P_MP4`() {
kotlin.run {
- val r = parse("【豌豆字幕组&风之圣殿字幕组】★04月新番[Dr.STONE 新石纪 / 石纪元 第三季][04][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組&風之聖殿字幕組】★04月新番[Dr.STONE 新石紀 / 石紀元 第三季][04][簡體][1080P][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1066,7 +1066,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `638317_Dr_STONE_New_World_03_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [03] [1080p] [简繁日内封] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [03] [1080p] [簡繁日內封] [2023年4月番]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1077,7 +1077,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `638303_Dr_STONE_New_World_03_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [03] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [03] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1089,7 +1089,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `638032_LoliHouse_Dr_STONE_S3___03_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[豌豆字幕组&风之圣殿字幕组&LoliHouse] 新石纪 第三季 / 石纪元 第三季 / Dr.STONE S3 - 03 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&風之聖殿字幕組&LoliHouse] 新石紀 第三季 / 石紀元 第三季 / Dr.STONE S3 - 03 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1100,7 +1100,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `637942_04_Dr_STONE_03_1080P_MP4`() {
kotlin.run {
- val r = parse("【豌豆字幕组&风之圣殿字幕组】★04月新番[Dr.STONE 新石纪 / 石纪元 第三季][03][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組&風之聖殿字幕組】★04月新番[Dr.STONE 新石紀 / 石紀元 第三季][03][簡體][1080P][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1122,7 +1122,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `637505_Dr_STONE_New_World_02_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [02] [1080p] [简繁日内封] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [02] [1080p] [簡繁日內封] [2023年4月番]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1133,7 +1133,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `637504_Dr_STONE_New_World_02_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [02] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [02] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1145,7 +1145,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `637234_LoliHouse_Dr_STONE_S3___02_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[豌豆字幕组&风之圣殿字幕组&LoliHouse] 新石纪 第三季 / 石纪元 第三季 / Dr.STONE S3 - 02 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&風之聖殿字幕組&LoliHouse] 新石紀 第三季 / 石紀元 第三季 / Dr.STONE S3 - 02 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1156,7 +1156,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `637208_04_Dr_STONE_02_1080P_MP4`() {
kotlin.run {
- val r = parse("【豌豆字幕组&风之圣殿字幕组】★04月新番[Dr.STONE 新石纪 / 石纪元 第三季][02][简体][1080P][MP4]")
+ val r = parse("【豌豆字幕組&風之聖殿字幕組】★04月新番[Dr.STONE 新石紀 / 石紀元 第三季][02][簡體][1080P][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1178,7 +1178,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `636740_Dr_STONE`() {
kotlin.run {
- val r = parse("石纪元 新石纪 Dr.STONE S02")
+ val r = parse("石紀元 新石紀 Dr.STONE S02")
assertEquals("S2", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1189,7 +1189,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `636739_Dr_STONE_S01`() {
kotlin.run {
- val r = parse("石纪元 新石纪 Dr.STONE S01")
+ val r = parse("石紀元 新石紀 Dr.STONE S01")
assertEquals("S1", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1200,7 +1200,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `636738_Dr_STONE`() {
kotlin.run {
- val r = parse("石纪元 新石纪 Dr.STONE S01+S02")
+ val r = parse("石紀元 新石紀 Dr.STONE S01+S02")
assertEquals("S1+S2", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -1211,7 +1211,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `636671_Dr_STONE_New_World_01_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [01] [1080p] [简繁日内封] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [01] [1080p] [簡繁日內封] [2023年4月番]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1222,7 +1222,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `636670_Dr_STONE_New_World_01_1080p_2023_4`() {
kotlin.run {
- val r = parse("[猎户手抄部] 石纪元 第三季 Dr.STONE:New World [01] [1080p] [简日内嵌] [2023年4月番]")
+ val r = parse("[獵戶手抄部] 石紀元 第三季 Dr.STONE:New World [01] [1080p] [簡日內嵌] [2023年4月番]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1234,7 +1234,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `636638_LoliHouse_Dr_STONE_S3___01_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[豌豆字幕组&风之圣殿字幕组&LoliHouse] 新石纪 第三季 / 石纪元 第三季 / Dr.STONE S3 - 01 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[豌豆字幕組&風之聖殿字幕組&LoliHouse] 新石紀 第三季 / 石紀元 第三季 / Dr.STONE S3 - 01 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1246,7 +1246,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `605298_NC_Raws_Dr_Stone_Ryuusui___02_B_Global_1920x1080_HEVC_AAC_MKV`() {
kotlin.run {
val r =
- parse("[NC-Raws] Dr.STONE 石纪元 特别篇(龙水) / Dr. Stone: Ryuusui - 02 (B-Global 1920x1080 HEVC AAC MKV)")
+ parse("[NC-Raws] Dr.STONE 石紀元 特別篇(龍水) / Dr. Stone: Ryuusui - 02 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1258,7 +1258,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `605294_NC_Raws_Dr_Stone_Ryuusui___01_B_Global_1920x1080_HEVC_AAC_MKV`() {
kotlin.run {
val r =
- parse("[NC-Raws] Dr.STONE 石纪元 特别篇(龙水) / Dr. Stone: Ryuusui - 01 (B-Global 1920x1080 HEVC AAC MKV)")
+ parse("[NC-Raws] Dr.STONE 石紀元 特別篇(龍水) / Dr. Stone: Ryuusui - 01 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1412,7 +1412,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `595218_DBD_Raws_Dr_STONE_01_24TV_1080P_BDRip_HEVC_10bit_FLAC_MKV`() {
kotlin.run {
val r =
- parse("[DBD-Raws][石纪元/Dr.STONE][01-24TV全集+特典映像][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV]")
+ parse("[DBD-Raws][石紀元/Dr.STONE][01-24TV全集+特典映像][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV]")
assertEquals("01..24", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1785,7 +1785,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `565116_01_Stone_Wars_Dr_Stone_S2_Stone_Wars_01_11_GB_1080P_HEVC_MP4`() {
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第01-11话 GB 1080P HEVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第01-11話 GB 1080P HEVC MP4(字幕社招人內詳)")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1797,7 +1797,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `565115_01_Stone_Wars_Dr_Stone_S2_Stone_Wars_01_11_GB_1080P_AVC_MP4`() {
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第01-11话 GB 1080P AVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第01-11話 GB 1080P AVC MP4(字幕社招人內詳)")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1809,7 +1809,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `565114_01_Stone_Wars_Dr_Stone_S2_Stone_Wars_01_11_GB_720P_AVC_MP4`() {
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第01-11话 GB 720P AVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第01-11話 GB 720P AVC MP4(字幕社招人內詳)")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1844,7 +1844,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `564547_01_Stone_Wars_Dr_Stone_S2_Stone_Wars_11_GB_1080P_HEVC_MP4`() {
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第11话 GB 1080P HEVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第11話 GB 1080P HEVC MP4(字幕社招人內詳)")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1868,7 +1868,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `563921_01_Stone_Wars_Dr_Stone_S2_Stone_Wars_10_GB_1080P_HEVC_MP4`() {
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第10话 GB 1080P HEVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第10話 GB 1080P HEVC MP4(字幕社招人內詳)")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1879,7 +1879,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `563737_c_c_1_11_GB_HEVC_1080P_MP4_END`() {
kotlin.run {
- val r = parse("[c.c动漫][1月新番][新石纪 / 石纪元 第二季][11][GB][HEVC][1080P][MP4][END]")
+ val r = parse("[c.c動漫][1月新番][新石紀 / 石紀元 第二季][11][GB][HEVC][1080P][MP4][END]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1903,7 +1903,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `563163_01_Stone_Wars_Dr_Stone_S2_Stone_Wars_09_GB_1080P_HEVC_MP4`() {
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第09话 GB 1080P HEVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第09話 GB 1080P HEVC MP4(字幕社招人內詳)")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1914,7 +1914,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `563035_c_c_1_10_GB_HEVC_1080P_MP4`() {
kotlin.run {
- val r = parse("[c.c动漫][1月新番][新石纪 / 石纪元 第二季][10][GB][HEVC][1080P][MP4]")
+ val r = parse("[c.c動漫][1月新番][新石紀 / 石紀元 第二季][10][GB][HEVC][1080P][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1938,7 +1938,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `562886_01_Stone_Wars_Dr_Stone_S2_Stone_Wars_08_GB_1080P_HEVC_MP4`() {
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第08话 GB 1080P HEVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第08話 GB 1080P HEVC MP4(字幕社招人內詳)")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1949,7 +1949,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `562753_c_c_1_08_09_GB_HEVC_1080P_MP4`() {
kotlin.run {
- val r = parse("[c.c动漫][1月新番][新石纪 / 石纪元 第二季][08-09][GB][HEVC][1080P][MP4]")
+ val r = parse("[c.c動漫][1月新番][新石紀 / 石紀元 第二季][08-09][GB][HEVC][1080P][MP4]")
assertEquals("08..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1973,7 +1973,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `561997_01_Stone_Wars_Dr_Stone_S2_Stone_Wars_07_GB_1080P_HEVC_MP4`() {
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第07话 GB 1080P HEVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第07話 GB 1080P HEVC MP4(字幕社招人內詳)")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1997,7 +1997,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `561615_01_Stone_Wars_Dr_Stone_S2_Stone_Wars_06_GB_1080P_HEVC_MP4`() {
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第06话 GB 1080P HEVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第06話 GB 1080P HEVC MP4(字幕社招人內詳)")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2008,7 +2008,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `561083_c_c_1_07_GB_HEVC_1080P_MP4`() {
kotlin.run {
- val r = parse("[c.c动漫][1月新番][新石纪 / 石纪元 第二季][07][GB][HEVC][1080P][MP4][暫停更新公告]")
+ val r = parse("[c.c動漫][1月新番][新石紀 / 石紀元 第二季][07][GB][HEVC][1080P][MP4][暫停更新公告]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2019,7 +2019,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `560294_c_c_1_06_GB_HEVC_1080P_MP4`() {
kotlin.run {
- val r = parse("[c.c动漫][1月新番][新石纪 / 石纪元 第二季][06][GB][HEVC][1080P][MP4]")
+ val r = parse("[c.c動漫][1月新番][新石紀 / 石紀元 第二季][06][GB][HEVC][1080P][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2043,7 +2043,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `560084_01_Stone_Wars_Dr_Stone_S2_Stone_Wars_05_GB_1080P_HEVC_MP4`() {
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第05话 GB 1080P HEVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第05話 GB 1080P HEVC MP4(字幕社招人內詳)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2054,7 +2054,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `559707_c_c_1_05_GB_HEVC_1080P_MP4`() {
kotlin.run {
- val r = parse("[c.c动漫][1月新番][新石纪 / 石纪元 第二季][05][GB][HEVC][1080P][MP4]")
+ val r = parse("[c.c動漫][1月新番][新石紀 / 石紀元 第二季][05][GB][HEVC][1080P][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2078,7 +2078,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `559673_01_Stone_Wars_Dr_Stone_S2_Stone_Wars_04_GB_1080P_HEVC_MP4`() {
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第04话 GB 1080P HEVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第04話 GB 1080P HEVC MP4(字幕社招人內詳)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2089,7 +2089,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `559009_c_c_1_04_GB_HEVC_1080P_MP4`() {
kotlin.run {
- val r = parse("[c.c动漫][1月新番][新石纪 / 石纪元 第二季][04][GB][HEVC][1080P][MP4]")
+ val r = parse("[c.c動漫][1月新番][新石紀 / 石紀元 第二季][04][GB][HEVC][1080P][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2113,7 +2113,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `558950_01_Stone_Wars_Dr_Stone_S2_Stone_Wars_03_GB_1080P_HEVC_MP4`() {
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第03话 GB 1080P HEVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第03話 GB 1080P HEVC MP4(字幕社招人內詳)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2124,7 +2124,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `558358_c_c_1_03_GB_HEVC_1080P_MP4`() {
kotlin.run {
- val r = parse("[c.c动漫][1月新番][新石纪 / 石纪元 第二季][03][GB][HEVC][1080P][MP4]")
+ val r = parse("[c.c動漫][1月新番][新石紀 / 石紀元 第二季][03][GB][HEVC][1080P][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2148,7 +2148,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `558029_01_Stone_Wars_Dr_Stone_S2_Stone_Wars_02_GB_1080P_HEVC_MP4`() {
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第02话 GB 1080P HEVC MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第02話 GB 1080P HEVC MP4(字幕社招人內詳)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2159,7 +2159,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `557644_c_c_1_02_GB_HEVC_1080P_MP4`() {
kotlin.run {
- val r = parse("[c.c动漫][1月新番][新石纪 / 石纪元 第二季][02][GB][HEVC][1080P][MP4]")
+ val r = parse("[c.c動漫][1月新番][新石紀 / 石紀元 第二季][02][GB][HEVC][1080P][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2183,7 +2183,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
public fun `557505_01_Stone_Wars_Dr_Stone_S2_Stone_Wars_01_GB_1080P_MP4`() {
kotlin.run {
val r =
- parse("【极影字幕社】 ★01月新番 石纪元第二季 Stone Wars Dr.Stone S2 Stone Wars 第01话 GB 1080P MP4(字幕社招人内详)")
+ parse("【極影字幕社】 ★01月新番 石紀元第二季 Stone Wars Dr.Stone S2 Stone Wars 第01話 GB 1080P MP4(字幕社招人內詳)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2194,7 +2194,7 @@ public class PatternTitleParserTest石纪元 : PatternBasedTitleParserTestSuite(
@Test
public fun `557001_c_c_1_01_GB_HEVC_1080P_MP4`() {
kotlin.run {
- val r = parse("[c.c动漫][1月新番][新石纪 / 石纪元 第二季][01][GB][HEVC][1080P][MP4]")
+ val r = parse("[c.c動漫][1月新番][新石紀 / 石紀元 第二季][01][GB][HEVC][1080P][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
diff --git "a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\347\272\246\344\274\232\345\244\247\344\275\234\346\210\230.kt" "b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\347\272\246\344\274\232\345\244\247\344\275\234\346\210\230.kt"
index 0639db546..d8e9e53f6 100644
--- "a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\347\272\246\344\274\232\345\244\247\344\275\234\346\210\230.kt"
+++ "b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\347\272\246\344\274\232\345\244\247\344\275\234\346\210\230.kt"
@@ -26,7 +26,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `685031_Fatum_Fatalis_V_Date_a_Live_V_BD_REENCODE_EP01_12_SP_Fin`() {
kotlin.run {
val r =
- parse("[Fatum Fatalis] 约会大作战 第五季 / デート・ア・ライブV / Date a Live V (BD REENCODE EP01-12+SP Fin)")
+ parse("[Fatum Fatalis] 約會大作戰 第五季 / デート・ア・ライブV / Date a Live V (BD REENCODE EP01-12+SP Fin)")
assertEquals("01..12+SP", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -38,7 +38,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `679848_7_ACG_5_Date_A_Live_S05_01_12_BDrip_1080p_x265_FLAC_2_0`() {
kotlin.run {
val r =
- parse("[7³ACG] 约会大作战5/ デート・ア・ライブ Ⅴ/Date A Live S05 | 01-12 [简繁字幕] BDrip 1080p x265 FLAC 2.0")
+ parse("[7³ACG] 約會大作戰5/ デート・ア・ライブ Ⅴ/Date A Live S05 | 01-12 [簡繁字幕] BDrip 1080p x265 FLAC 2.0")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -50,7 +50,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `675404_DBD_Raws_Date_a_Live_IV_IV_01_12TV_1080P_BDRip_HEVC_10bit_FLAC_MKV`() {
kotlin.run {
val r =
- parse("[DBD-Raws][约会大作战 第四季/Date a Live IV/デート・ア・ライブIV][01-12TV全集][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV]")
+ parse("[DBD-Raws][約會大作戰 第四季/Date a Live IV/デート・ア・ライブIV][01-12TV全集][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -62,7 +62,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `675383_DBD_Raws_Date_a_Live_III_III_01_12TV_1080P_BDRip_HEVC_10bit_FLAC_MKV`() {
kotlin.run {
val r =
- parse("[DBD-Raws][约会大作战 第三季/Date a Live III/デート・ア・ライブIII][01-12TV全集][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV]")
+ parse("[DBD-Raws][約會大作戰 第三季/Date a Live III/デート・ア・ライブIII][01-12TV全集][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -74,7 +74,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `675368_DBD_Raws_Date_a_Live_II_II_01_10TV_OAD_1080P_BDRip_HEVC_10bit_FLAC_MKV`() {
kotlin.run {
val r =
- parse("[DBD-Raws][约会大作战 第二季/Date a Live II/デート・ア・ライブ II][01-10TV全集+OAD+特典映像][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV]")
+ parse("[DBD-Raws][約會大作戰 第二季/Date a Live II/デート・ア・ライブ II][01-10TV全集+OAD+特典映像][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV]")
assertEquals("01..10+OAD", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -87,7 +87,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
fun `675285_DBD_Raws_Date_a_Live_S1_Director_s_Cut_01_12TV_OAD_1080P_BDRip_HEVC_10bit_FLAC_MKV`() {
kotlin.run {
val r =
- parse("[DBD-Raws][约会大作战 第一季/Date a Live S1/デート・ア・ライブ][导演剪辑版/Director's Cut/ディレクターズカット版][01-12TV全集+OAD][1080P][BDRip][HEVC-10bit][简繁外挂][FLAC][MKV]")
+ parse("[DBD-Raws][約會大作戰 第一季/Date a Live S1/デート・ア・ライブ][導演剪輯版/Director's Cut/ディレクターズカット版][01-12TV全集+OAD][1080P][BDRip][HEVC-10bit][簡繁外掛][FLAC][MKV]")
assertEquals("01..12+OAD", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -99,7 +99,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `675279_DBD_Raws_Date_a_Live_S1_01_12TV_OAD_1080P_BDRip_HEVC_10bit_FLAC_MKV`() {
kotlin.run {
val r =
- parse("[DBD-Raws][约会大作战 第一季/Date a Live S1/デート・ア・ライブ][01-12TV全集+OAD][1080P][BDRip][HEVC-10bit][FLAC][MKV]")
+ parse("[DBD-Raws][約會大作戰 第一季/Date a Live S1/デート・ア・ライブ][01-12TV全集+OAD][1080P][BDRip][HEVC-10bit][FLAC][MKV]")
assertEquals("01..12+OAD", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -110,7 +110,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `674235_Date_A_Live_V_01_12Fin_WEBRIP_1080p_AVC_AAC_MP4_2024_4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组] 约会大作战/Date A Live V (01-12Fin WEBRIP 1080p AVC AAC MP4 2024年4月 简中)")
+ val r = parse("[愛戀&漫貓字幕組] 約會大作戰/Date A Live V (01-12Fin WEBRIP 1080p AVC AAC MP4 2024年4月 簡中)")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -132,7 +132,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `673571_Date_A_Live_V_V_12_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live V 约会大作战V 第12话 MP4 720p 完")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live V 約會大作戰V 第12話 MP4 720p 完")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -143,7 +143,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `673096_4_Date_A_Live_V_12_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][12][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][12][1080p][MP4][簡中]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -177,7 +177,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `672917_4_Date_A_Live_V_11_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][11][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][11][1080p][MP4][簡中]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -199,7 +199,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `672876_Date_A_Live_V_V_11_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live V 约会大作战V 第11话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live V 約會大作戰V 第11話 MP4 720p")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -210,7 +210,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `672875_Date_A_Live_V_V_10_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live V 约会大作战V 第10话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live V 約會大作戰V 第10話 MP4 720p")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -221,7 +221,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `672874_Date_A_Live_V_V_09_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live V 约会大作战V 第09话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live V 約會大作戰V 第09話 MP4 720p")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -289,7 +289,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `671601_4_Date_A_Live_V_09_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][09][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][09][1080p][MP4][簡中]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -323,7 +323,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `671221_4_Date_A_Live_V_08_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][08][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][08][1080p][MP4][簡中]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -345,7 +345,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `671219_Date_A_Live_V_V_08_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live V 约会大作战V 第08话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live V 約會大作戰V 第08話 MP4 720p")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -356,7 +356,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `671124_Date_A_Live_V_V_07_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live V 约会大作战V 第07话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live V 約會大作戰V 第07話 MP4 720p")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -367,7 +367,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `671123_Date_A_Live_V_V_06_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live V 约会大作战V 第06话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live V 約會大作戰V 第06話 MP4 720p")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -401,7 +401,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `670879_4_Date_A_Live_V_07_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][07][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][07][1080p][MP4][簡中]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -434,7 +434,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `670222_4_Date_A_Live_V_06_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][06][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][06][1080p][MP4][簡中]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -490,7 +490,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `669660_4_Date_A_Live_V_05_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][05][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][05][1080p][MP4][簡中]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -512,7 +512,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `669658_4_Date_A_Live_V_05_720p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][05][720p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][05][720p][MP4][簡中]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -534,7 +534,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `669656_4_Date_A_Live_V_04v2_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][04v2][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][04v2][1080p][MP4][簡中]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -556,7 +556,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `669654_4_Date_A_Live_V_04v2_720p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][04v2][720p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][04v2][720p][MP4][簡中]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -578,7 +578,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `669652_4_Date_A_Live_V_03_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][03][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][03][1080p][MP4][簡中]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -600,7 +600,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `669650_4_Date_A_Live_V_03_720p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][03][720p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][03][720p][MP4][簡中]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -622,7 +622,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `669648_4_Date_A_Live_V_02_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][02][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][02][1080p][MP4][簡中]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -644,7 +644,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `669646_4_Date_A_Live_V_02_720p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][02][720p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][02][720p][MP4][簡中]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -666,7 +666,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `669644_4_Date_A_Live_V_01_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][01][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][01][1080p][MP4][簡中]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -688,7 +688,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `669642_4_Date_A_Live_V_01_720p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live V][01][720p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live V][01][720p][MP4][簡中]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -710,7 +710,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `669517_Date_A_Live_V_V_05_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live V 约会大作战V 第05话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live V 約會大作戰V 第05話 MP4 720p")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -733,7 +733,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `668975_Date_A_Live_V_V_04_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live V 约会大作战V 第04话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live V 約會大作戰V 第04話 MP4 720p")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -744,7 +744,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `668974_Date_A_Live_V_V_03_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live V 约会大作战V 第03话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live V 約會大作戰V 第03話 MP4 720p")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -755,7 +755,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `668968_4_V_Date_A_Live_V_04_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战 V][Date A Live V][04][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰 V][Date A Live V][04][1080p][MP4][簡中]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -823,7 +823,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `668057_Date_A_Live_V_V_02_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live V 约会大作战V 第02话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live V 約會大作戰V 第02話 MP4 720p")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -857,7 +857,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `667334_Date_A_Live_V_V_01_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live V 约会大作战V 第01话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live V 約會大作戰V 第01話 MP4 720p")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -868,7 +868,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `666861_BakeSubs_Date_A_Bullet_BD_1080p`() {
kotlin.run {
- val r = parse("[BakeSubs] Date A Bullet [BD][1080p] 约会大作战约战狂三外传前篇虚或实篇后篇红或白篇")
+ val r = parse("[BakeSubs] Date A Bullet [BD][1080p] 約會大作戰約戰狂三外傳前篇虛或實篇後篇紅或白篇")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -902,7 +902,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `617525_7_ACG_IV_Date_A_Live_IV_IV_01_12_BDrip_1080p_x265_FLAC`() {
kotlin.run {
val r =
- parse("[7³ACG] 约会大作战IV/Date A Live IV/デート・ア・ライブ IV | 01-12[简繁英字幕] BDrip 1080p x265 FLAC")
+ parse("[7³ACG] 約會大作戰IV/Date A Live IV/デート・ア・ライブ IV | 01-12[簡繁英字幕] BDrip 1080p x265 FLAC")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT, ENG", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -914,7 +914,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `607120_LoliHouse_IV_Date_A_Live_IV___12_WebRip_1080p_HEVC_10bit_AAC_End`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 IV / Date A Live IV - 12 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕][End]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 IV / Date A Live IV - 12 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕][End]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -926,7 +926,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `607119_LoliHouse_IV_Date_A_Live_IV___11_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 IV / Date A Live IV - 11 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 IV / Date A Live IV - 11 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -948,7 +948,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `607100_IV_Date_A_Live_IV_12_1080p_AVC`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战IV_Date A Live IV】[第12话][1080p_AVC][简体][完]")
+ val r = parse("【千夏字幕組】【約會大作戰IV_Date A Live IV】[第12話][1080p_AVC][簡體][完]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -970,7 +970,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `607098_IV_Date_A_Live_IV_11_1080p_AVC`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战IV_Date A Live IV】[第11话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰IV_Date A Live IV】[第11話][1080p_AVC][簡體]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -982,7 +982,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `606271_LoliHouse_IV_Date_A_Live_IV___10_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 IV / Date A Live IV - 10 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 IV / Date A Live IV - 10 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -994,7 +994,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `606270_LoliHouse_IV_Date_A_Live_IV___09_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 IV / Date A Live IV - 09 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 IV / Date A Live IV - 09 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1016,7 +1016,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `606233_IV_Date_A_Live_IV_10_1080p_AVC`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战IV_Date A Live IV】[第10话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰IV_Date A Live IV】[第10話][1080p_AVC][簡體]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1038,7 +1038,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `606231_IV_Date_A_Live_IV_09_1080p_AVC`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战IV_Date A Live IV】[第09话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰IV_Date A Live IV】[第09話][1080p_AVC][簡體]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1049,7 +1049,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `605058_Date_A_Live_IV_IV_12_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live IV 约会大作战IV 第12话 MP4 720p 完")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live IV 約會大作戰IV 第12話 MP4 720p 完")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1060,7 +1060,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `604944_Date_A_Live_IV_IV_11_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live IV 约会大作战IV 第11话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live IV 約會大作戰IV 第11話 MP4 720p")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1071,7 +1071,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `604936_Date_A_Live_IV_IV_10_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live IV 约会大作战IV 第10话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live IV 約會大作戰IV 第10話 MP4 720p")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1082,7 +1082,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `604641_Date_A_Live_IV_01_12Fin_WEBRIP_1080p_AVC_AAC_2022_4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组] 约会大作战/Date A Live IV (01-12Fin WEBRIP 1080p AVC AAC 2022年4月 简中)")
+ val r = parse("[愛戀&漫貓字幕組] 約會大作戰/Date A Live IV (01-12Fin WEBRIP 1080p AVC AAC 2022年4月 簡中)")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1104,7 +1104,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `604636_4_Date_A_Live_IV_12_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live IV][12][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live IV][12][1080p][MP4][簡中]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1126,7 +1126,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `604618_4_Date_A_Live_IV_11_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live IV][11][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live IV][11][1080p][MP4][簡中]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1148,7 +1148,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `604616_4_Date_A_Live_IV_10_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live IV][10][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live IV][10][1080p][MP4][簡中]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1171,7 +1171,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `604295_LoliHouse_IV_Date_A_Live_IV___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 IV / Date A Live IV - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 IV / Date A Live IV - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1193,7 +1193,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `604263_IV_Date_A_Live_IV_08_1080p_AVC`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战IV_Date A Live IV】[第08话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰IV_Date A Live IV】[第08話][1080p_AVC][簡體]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1204,7 +1204,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `604133_4_Date_A_Live_IV_09_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live IV][09][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live IV][09][1080p][MP4][簡中]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1237,7 +1237,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `603874_4_Date_A_Live_IV_08_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live IV][08][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live IV][08][1080p][MP4][簡中]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1271,7 +1271,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `603814_ANi_DATE_A_LIVE___12_1080P_Bilibili_WEB_DL_AAC_AVC_CHT_CHS_MP4`() {
kotlin.run {
val r =
- parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳台地區) - 12 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳臺地區) - 12 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1282,7 +1282,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `603813_NC_Raws_Date_A_Live_S4___12_B_Global_1920x1080_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 12 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 12 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1293,7 +1293,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `603595_4_Date_A_Live_IV_07_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live IV][07][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live IV][07][1080p][MP4][簡中]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1327,7 +1327,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `603225_ANi_DATE_A_LIVE___11_1080P_Bilibili_WEB_DL_AAC_AVC_CHT_CHS_MP4`() {
kotlin.run {
val r =
- parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳台地區) - 11 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳臺地區) - 11 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1338,7 +1338,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `603224_NC_Raws_Date_A_Live_S4___11_B_Global_1920x1080_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 11 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 11 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1349,7 +1349,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `602841_c_c_4_10_BIG5_1080P_MP4`() {
kotlin.run {
- val r = parse("[c.c動漫][4月新番][約會大作戰 第四季][10][BIG5][1080P][MP4][内详]")
+ val r = parse("[c.c動漫][4月新番][約會大作戰 第四季][10][BIG5][1080P][MP4][內詳]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1360,7 +1360,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `602815_4_Date_A_Live_IV_06_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live IV][06][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live IV][06][1080p][MP4][簡中]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1382,7 +1382,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `602813_4_Date_A_Live_IV_05_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live IV][05][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live IV][05][1080p][MP4][簡中]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1404,7 +1404,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `602603_NC_Raws_Date_A_Live_S4___10_B_Global_1920x1080_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 10 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 10 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1416,7 +1416,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `602602_ANi_DATE_A_LIVE___10_1080P_Bilibili_WEB_DL_AAC_AVC_CHT_CHS_MP4`() {
kotlin.run {
val r =
- parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳台地區) - 10 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳臺地區) - 10 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1427,7 +1427,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `602574_Date_A_Live_IV_IV_09_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live IV 约会大作战IV 第09话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live IV 約會大作戰IV 第09話 MP4 720p")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1450,7 +1450,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `601977_ANi_DATE_A_LIVE___09_1080P_Bilibili_WEB_DL_AAC_AVC_CHT_CHS_MP4`() {
kotlin.run {
val r =
- parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳台地區) - 09 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳臺地區) - 09 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1461,7 +1461,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `601974_NC_Raws_Date_A_Live_S4___09_B_Global_1920x1080_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 09 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 09 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1472,7 +1472,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `601952_Date_A_Live_IV_IV_08_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live IV 约会大作战IV 第08话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live IV 約會大作戰IV 第08話 MP4 720p")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1483,7 +1483,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `601951_Date_A_Live_IV_IV_07_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live IV 约会大作战IV 第07话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live IV 約會大作戰IV 第07話 MP4 720p")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1494,7 +1494,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `601950_Date_A_Live_IV_IV_06_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live IV 约会大作战IV 第06话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live IV 約會大作戰IV 第06話 MP4 720p")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1505,7 +1505,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `601949_Date_A_Live_IV_IV_05_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live IV 约会大作战IV 第05话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live IV 約會大作戰IV 第05話 MP4 720p")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1517,7 +1517,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `601812_LoliHouse_IV_Date_A_Live_IV___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 IV / Date A Live IV - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 IV / Date A Live IV - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1539,7 +1539,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `601806_IV_Date_A_Live_IV_07_1080p_AVC`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战IV_Date A Live IV】[第07话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰IV_Date A Live IV】[第07話][1080p_AVC][簡體]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1551,7 +1551,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `601731_LoliHouse_IV_Date_A_Live_IV___06_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 IV / Date A Live IV - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 IV / Date A Live IV - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1573,7 +1573,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `601728_IV_Date_A_Live_IV_06_1080p_AVC`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战IV_Date A Live IV】[第06话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰IV_Date A Live IV】[第06話][1080p_AVC][簡體]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1596,7 +1596,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `601386_ANi_DATE_A_LIVE___08_1080P_Bilibili_WEB_DL_AAC_AVC_CHT_CHS_MP4`() {
kotlin.run {
val r =
- parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳台地區) - 08 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳臺地區) - 08 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1607,7 +1607,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `601384_NC_Raws_Date_A_Live_S4___08_B_Global_1920x1080_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 08 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 08 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1619,7 +1619,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `601033_LoliHouse_IV_Date_A_Live_IV___05_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 IV / Date A Live IV - 05 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 IV / Date A Live IV - 05 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1641,7 +1641,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `601026_IV_Date_A_Live_IV_05_1080p_AVC`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战IV_Date A Live IV】[第05话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰IV_Date A Live IV】[第05話][1080p_AVC][簡體]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1653,7 +1653,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `600754_ANi_DATE_A_LIVE___07_1080P_Bilibili_WEB_DL_AAC_AVC_CHT_CHS_MP4`() {
kotlin.run {
val r =
- parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳台地區) - 07 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳臺地區) - 07 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1664,7 +1664,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `600752_NC_Raws_Date_A_Live_S4___07_B_Global_1920x1080_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 07 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 07 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1675,7 +1675,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `600492_4_Date_A_Live_IV_04_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live IV][04][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live IV][04][1080p][MP4][簡中]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1698,7 +1698,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `600185_ANi_DATE_A_LIVE___06_1080P_Bilibili_WEB_DL_AAC_AVC_CHT_CHS_MP4`() {
kotlin.run {
val r =
- parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳台地區) - 06 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳臺地區) - 06 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1709,7 +1709,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `600183_NC_Raws_Date_A_Live_S4___06_B_Global_1920x1080_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 06 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 06 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1721,7 +1721,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `599803_LoliHouse_IV_Date_A_Live_IV___04_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 IV / Date A Live IV - 04 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 IV / Date A Live IV - 04 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1743,7 +1743,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `599801_IV_Date_A_Live_IV_04_1080p_AVC`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战IV_Date A Live IV】[第04话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰IV_Date A Live IV】[第04話][1080p_AVC][簡體]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1755,7 +1755,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `599524_ANi_DATE_A_LIVE___05_1080P_Bilibili_WEB_DL_AAC_AVC_CHT_CHS_MP4`() {
kotlin.run {
val r =
- parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳台地區) - 05 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳臺地區) - 05 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1766,7 +1766,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `599522_NC_Raws_Date_A_Live_S4___05_B_Global_1920x1080_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 05 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 05 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1777,7 +1777,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `599508_Date_A_Live_IV_IV_04_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live IV 约会大作战IV 第04话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live IV 約會大作戰IV 第04話 MP4 720p")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1788,7 +1788,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `599507_Date_A_Live_IV_IV_03_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live IV 约会大作战IV 第03话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live IV 約會大作戰IV 第03話 MP4 720p")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1799,7 +1799,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `599392_4_Date_A_Live_IV_03_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live IV][03][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live IV][03][1080p][MP4][簡中]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1822,7 +1822,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `598923_ANi_DATE_A_LIVE___04_1080P_Bilibili_WEB_DL_AAC_AVC_CHT_CHS_MP4`() {
kotlin.run {
val r =
- parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳台地區) - 04 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳臺地區) - 04 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1833,7 +1833,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `598918_NC_Raws_Date_A_Live_S4___04_B_Global_1920x1080_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 04 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 04 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1845,7 +1845,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `598909_LoliHouse_IV_Date_A_Live_IV___03_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 IV / Date A Live IV - 03 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 IV / Date A Live IV - 03 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1867,7 +1867,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `598902_IV_Date_A_Live_IV_03_1080p_AVC`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战IV_Date A Live IV】[第03话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰IV_Date A Live IV】[第03話][1080p_AVC][簡體]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1878,7 +1878,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `598603_4_Date_A_Live_IV_02_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live IV][02][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live IV][02][1080p][MP4][簡中]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1901,7 +1901,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `598507_LoliHouse_IV_Date_A_Live_IV___02_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 IV / Date A Live IV - 02 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 IV / Date A Live IV - 02 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1923,7 +1923,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `598413_IV_Date_A_Live_IV_02_1080p_AVC`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战IV_Date A Live IV】[第02话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰IV_Date A Live IV】[第02話][1080p_AVC][簡體]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1935,7 +1935,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `598280_ANi_DATE_A_LIVE___03_1080P_Bilibili_WEB_DL_AAC_AVC_CHT_CHS_MP4`() {
kotlin.run {
val r =
- parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳台地區) - 03 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳臺地區) - 03 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1946,7 +1946,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `598272_NC_Raws_Date_A_Live_S4___03_B_Global_1920x1080_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 03 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 03 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1957,7 +1957,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `597949_NC_Raws_Date_A_Live_S4___02_B_Global_1920x1080_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 02 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 02 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1979,7 +1979,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `597726_4_Date_A_Live_IV_01_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][约会大作战][Date A Live IV][01][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][約會大作戰][Date A Live IV][01][1080p][MP4][簡中]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2001,7 +2001,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `597691_Date_A_Live_IV_IV_02_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live IV 约会大作战IV 第02话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live IV 約會大作戰IV 第02話 MP4 720p")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2013,7 +2013,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `597522_ANi_DATE_A_LIVE___02_1080P_Bilibili_WEB_DL_AAC_AVC_CHT_CHS_MP4`() {
kotlin.run {
val r =
- parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳台地區) - 02 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
+ parse("[ANi] 約會大作戰 DATE A LIVE 第四季(僅限港澳臺地區) - 02 [1080P][Bilibili][WEB-DL][AAC AVC][CHT CHS][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2024,7 +2024,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `597519_NC_Raws_Date_A_Live_S4___02_B_Global_1920x1080_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 02 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 02 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2035,7 +2035,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `597482_Date_A_Live_IV_IV_01_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live IV 约会大作战IV 第01话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live IV 約會大作戰IV 第01話 MP4 720p")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2057,7 +2057,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `597382_IV_Date_A_Live_IV_01_1080p_AVC`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战IV_Date A Live IV】[第01话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰IV_Date A Live IV】[第01話][1080p_AVC][簡體]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2069,7 +2069,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `597379_LoliHouse_IV_Date_A_Live_IV___01_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 IV / Date A Live IV - 01 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 IV / Date A Live IV - 01 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2102,7 +2102,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `596842_NC_Raws_Date_A_Live_S4___01_B_Global_1920x1080_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 约会大作战 第四季 / Date A Live S4 - 01 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 約會大作戰 第四季 / Date A Live S4 - 01 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2191,7 +2191,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
fun `536000_VCB_Studio_Date_A_Live_10_bit_1080p_HEVC_AVC_BDRip_S1_S2_MOVIE_Reseed_V3_Fin`() {
kotlin.run {
val r =
- parse("[VCB-Studio] Date A Live / 约会大作战 / デート・ア・ライブ 10-bit 1080p HEVC/AVC BDRip [S1-S2 + MOVIE Reseed V3 Fin]")
+ parse("[VCB-Studio] Date A Live / 約會大作戰 / デート・ア・ライブ 10-bit 1080p HEVC/AVC BDRip [S1-S2 + MOVIE Reseed V3 Fin]")
assertEquals("S1+S2+S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2202,7 +2202,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `535336_Date_A_Live_S1_S2_S3_Movie_BD_1920x1080_HEVC_10bit_OPUS`() {
kotlin.run {
- val r = parse("约会大作战 全三季 Date A Live S1+S2+S3+Movie [BD 1920x1080 HEVC-10bit OPUS][简繁内封字幕]")
+ val r = parse("約會大作戰 全三季 Date A Live S1+S2+S3+Movie [BD 1920x1080 HEVC-10bit OPUS][簡繁內封字幕]")
assertEquals("S1+S2+S3+S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2214,7 +2214,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `528456_Snow_Raws_Date_a_Live_III_III_BD_1920x1080_HEVC_YUV420P10_FLAC`() {
kotlin.run {
val r =
- parse("[Snow-Raws] 约会大作战 第三季/Date a Live III/デート・ア・ライブ III(BD 1920x1080 HEVC-YUV420P10 FLAC)")
+ parse("[Snow-Raws] 約會大作戰 第三季/Date a Live III/デート・ア・ライブ III(BD 1920x1080 HEVC-YUV420P10 FLAC)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2226,7 +2226,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `528455_Snow_Raws_Date_a_Live_II_II_BD_1920x1080_HEVC_YUV420P10_FLAC`() {
kotlin.run {
val r =
- parse("[Snow-Raws] 约会大作战 第二季/Date a Live II/デート・ア・ライブ II(BD 1920x1080 HEVC-YUV420P10 FLAC)")
+ parse("[Snow-Raws] 約會大作戰 第二季/Date a Live II/デート・ア・ライブ II(BD 1920x1080 HEVC-YUV420P10 FLAC)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2237,7 +2237,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `528454_Snow_Raws_Date_a_Live_BD_1920x1080_HEVC_YUV420P10_FLAC`() {
kotlin.run {
- val r = parse("[Snow-Raws] 约会大作战 第一季/Date a Live/デート・ア・ライブ(BD 1920x1080 HEVC-YUV420P10 FLAC)")
+ val r = parse("[Snow-Raws] 約會大作戰 第一季/Date a Live/デート・ア・ライブ(BD 1920x1080 HEVC-YUV420P10 FLAC)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2249,7 +2249,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `522715_VCB_Studio_Date_A_Live_10_bit_720p_HEVC_BDRip_MP4_Ver`() {
kotlin.run {
val r =
- parse("[千夏字幕组&VCB-Studio] Date A Live Ⅲ / 约会大作战Ⅲ / デート・ア・ライブⅢ 10-bit 720p HEVC BDRip [MP4 Ver]")
+ parse("[千夏字幕組&VCB-Studio] Date A Live Ⅲ / 約會大作戰Ⅲ / デート・ア・ライブⅢ 10-bit 720p HEVC BDRip [MP4 Ver]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2261,7 +2261,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `522714_VCB_Studio_Date_A_Live_10_bit_1080p_HEVC_BDRip_Fin`() {
kotlin.run {
val r =
- parse("[千夏字幕组&VCB-Studio] Date A Live Ⅲ / 约会大作战Ⅲ / デート・ア・ライブⅢ 10-bit 1080p HEVC BDRip [Fin]")
+ parse("[千夏字幕組&VCB-Studio] Date A Live Ⅲ / 約會大作戰Ⅲ / デート・ア・ライブⅢ 10-bit 1080p HEVC BDRip [Fin]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2294,7 +2294,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `519355_Moozzi2_Date_A_Live_S3_BD_BOX_1_12_BD_1920x1080_x_264_Flac`() {
kotlin.run {
- val r = parse("[Moozzi2] 约会大作战第三季 Date A Live S3 BD-BOX 1-12 (BD 1920x1080 x.264 Flac)")
+ val r = parse("[Moozzi2] 約會大作戰第三季 Date A Live S3 BD-BOX 1-12 (BD 1920x1080 x.264 Flac)")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2305,7 +2305,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `517728_ReinForce_DATE_A_LIVE_S3_Vol_1_01_06_BDrip_1920x1680_mkv`() {
kotlin.run {
- val r = parse("【ReinForce】【约会大作战 第三季】【DATE A LIVE S3 Vol 1】【01-06】【BDrip】【1920x1680】【mkv】")
+ val r = parse("【ReinForce】【約會大作戰 第三季】【DATE A LIVE S3 Vol 1】【01-06】【BDrip】【1920x1680】【mkv】")
assertEquals("01..06", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2316,7 +2316,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `514522_Date_A_Live_III_III_12_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live III 约会大作战III 第12话 MP4 720p 完")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live III 約會大作戰III 第12話 MP4 720p 完")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2328,7 +2328,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `514489_LoliHouse_III_Date_A_Live_III___12_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 III / Date A Live III - 12 [WebRip 1080p HEVC-10bit AAC][繁体内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 III / Date A Live III - 12 [WebRip 1080p HEVC-10bit AAC][繁體內封字幕]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2372,7 +2372,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `513846_III_12_1080p`() {
kotlin.run {
- val r = parse("[搬运] 约会大作战III 12 [1080p][简体中文字幕]")
+ val r = parse("[搬運] 約會大作戰III 12 [1080p][簡體中文字幕]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2384,7 +2384,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `513772_LoliHouse_III_Date_A_Live_III___11_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 III / Date A Live III - 11 [WebRip 1080p HEVC-10bit AAC][繁体内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 III / Date A Live III - 11 [WebRip 1080p HEVC-10bit AAC][繁體內封字幕]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2417,7 +2417,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `513552_Date_A_Live_III_III_11_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live III 约会大作战III 第11话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live III 約會大作戰III 第11話 MP4 720p")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2428,7 +2428,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `513404_III_11_1080p`() {
kotlin.run {
- val r = parse("[搬运] 约会大作战III 11 [1080p][简体中文字幕]")
+ val r = parse("[搬運] 約會大作戰III 11 [1080p][簡體中文字幕]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2440,7 +2440,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `513290_LoliHouse_III_Date_A_Live_III___10_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 III / Date A Live III - 10 [WebRip 1080p HEVC-10bit AAC][繁体内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 III / Date A Live III - 10 [WebRip 1080p HEVC-10bit AAC][繁體內封字幕]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2451,7 +2451,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `513178_Date_A_Live_III_III_10_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live III 约会大作战III 第10话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live III 約會大作戰III 第10話 MP4 720p")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2463,7 +2463,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `513155_LoliHouse_III_Date_A_Live_III___09_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 III / Date A Live III - 09 [WebRip 1080p HEVC-10bit AAC][繁体内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 III / Date A Live III - 09 [WebRip 1080p HEVC-10bit AAC][繁體內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2529,7 +2529,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `512933_III_09_1080p`() {
kotlin.run {
- val r = parse("[搬运] 约会大作战III 09 [1080p][简体中文字幕]")
+ val r = parse("[搬運] 約會大作戰III 09 [1080p][簡體中文字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2540,7 +2540,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `512889_Date_A_Live_III_III_09_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live III 约会大作战III 第09话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live III 約會大作戰III 第09話 MP4 720p")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2551,7 +2551,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `512452_III_09_1080p`() {
kotlin.run {
- val r = parse("[搬运] 约会大作战III 09 [1080p][简体中文字幕]")
+ val r = parse("[搬運] 約會大作戰III 09 [1080p][簡體中文字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2563,7 +2563,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `512347_LoliHouse_III_Date_A_Live_III___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 III / Date A Live III - 08 [WebRip 1080p HEVC-10bit AAC][繁体内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 III / Date A Live III - 08 [WebRip 1080p HEVC-10bit AAC][繁體內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2574,7 +2574,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `512305_Date_A_Live_III_III_08_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live III 约会大作战III 第08话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live III 約會大作戰III 第08話 MP4 720p")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2608,7 +2608,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `512209_LoliHouse_III_Date_A_Live_III___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 III / Date A Live III - 07 [WebRip 1080p HEVC-10bit AAC][繁体内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 III / Date A Live III - 07 [WebRip 1080p HEVC-10bit AAC][繁體內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2652,7 +2652,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `511922_III_08_1080p`() {
kotlin.run {
- val r = parse("[搬运] 约会大作战III 08 [1080p][简体中文字幕]")
+ val r = parse("[搬運] 約會大作戰III 08 [1080p][簡體中文字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2664,7 +2664,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `511908_Moozzi2_Date_a_Live_Mayuri_Judgement_BD_1920x1080_x_264_2Audio`() {
kotlin.run {
val r =
- parse("[Moozzi2] 约会大作战 剧场版 万由里审判 Date a Live Mayuri Judgement (BD 1920x1080 x.264 2Audio)")
+ parse("[Moozzi2] 約會大作戰 劇場版 萬由裏審判 Date a Live Mayuri Judgement (BD 1920x1080 x.264 2Audio)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2675,7 +2675,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `511907_Moozzi2_Date_A_Live_S2_1_10_OAD_BD_1920x1080_x_264_Flac`() {
kotlin.run {
- val r = parse("[Moozzi2] 约会大作战第二季 Date A Live S2 1-10+OAD (BD 1920x1080 x.264 Flac)")
+ val r = parse("[Moozzi2] 約會大作戰第二季 Date A Live S2 1-10+OAD (BD 1920x1080 x.264 Flac)")
assertEquals("01..10+OAD", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2687,7 +2687,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `511906_Moozzi2_Date_A_Live_S1_Director_s_Cut_1_12_OAD_BD_1920x1080_x_264_Flac`() {
kotlin.run {
val r =
- parse("[Moozzi2] 约会大作战第一季 Date A Live S1 Director's Cut 1-12+OAD (BD 1920x1080 x.264 Flac)")
+ parse("[Moozzi2] 約會大作戰第一季 Date A Live S1 Director's Cut 1-12+OAD (BD 1920x1080 x.264 Flac)")
assertEquals("01..12+OAD", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2709,7 +2709,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `511462_Date_A_Live_III_III_07_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live III 约会大作战III 第07话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live III 約會大作戰III 第07話 MP4 720p")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2721,7 +2721,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `511385_LoliHouse_III_Date_A_Live_III___06_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 III / Date A Live III - 06 [WebRip 1080p HEVC-10bit AAC][繁体内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 III / Date A Live III - 06 [WebRip 1080p HEVC-10bit AAC][繁體內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2754,7 +2754,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `511343_III_07_1080p`() {
kotlin.run {
- val r = parse("[搬运] 约会大作战III 07 [1080p][简体中文字幕]")
+ val r = parse("[搬運] 約會大作戰III 07 [1080p][簡體中文字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2765,7 +2765,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `511293_Date_A_Live_III_III_06_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live III 约会大作战III 第06话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live III 約會大作戰III 第06話 MP4 720p")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2776,7 +2776,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `510952_06`() {
kotlin.run {
- val r = parse("[搬运]约会大作战第三季第06集")
+ val r = parse("[搬運]約會大作戰第三季第06集")
assertEquals("null", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -2799,7 +2799,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `510619_LoliHouse_III_Date_A_Live_III___05_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 III / Date A Live III - 05 [WebRip 1080p HEVC-10bit AAC][繁体内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 III / Date A Live III - 05 [WebRip 1080p HEVC-10bit AAC][繁體內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2832,7 +2832,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `510559_Date_A_Live_III_III_05_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live III 约会大作战III 第05话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live III 約會大作戰III 第05話 MP4 720p")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2855,7 +2855,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `510382_LoliHouse_III_Date_A_Live_III___01_04_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[千夏字幕组&LoliHouse] 约会大作战 III / Date A Live III - 01-04 [WebRip 1080p HEVC-10bit AAC][繁体内封字幕]")
+ parse("[千夏字幕組&LoliHouse] 約會大作戰 III / Date A Live III - 01-04 [WebRip 1080p HEVC-10bit AAC][繁體內封字幕]")
assertEquals("01..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2866,7 +2866,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `510346_III_05_1080p`() {
kotlin.run {
- val r = parse("[搬运] 约会大作战III 05 [1080p][简体中文字幕]")
+ val r = parse("[搬運] 約會大作戰III 05 [1080p][簡體中文字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2976,7 +2976,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `509908_Date_A_Live_III_III_04_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live III 约会大作战III 第04话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live III 約會大作戰III 第04話 MP4 720p")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2998,7 +2998,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `509847_III_04_1080p`() {
kotlin.run {
- val r = parse("[搬运] 约会大作战III 04 [1080p][简体中文字幕]")
+ val r = parse("[搬運] 約會大作戰III 04 [1080p][簡體中文字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3020,7 +3020,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `509440_1_Date_A_Live_III_III_03_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][1月新番] Date A Live III 约会大作战III 第03话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社][1月新番] Date A Live III 約會大作戰III 第03話 MP4 720p")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3032,7 +3032,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `509373_LoliHouse_III_Date_A_Live_III___03_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 约会大作战 III / Date A Live III - 03 [WebRip 1080p HEVC-10bit AAC][英文内封字幕]")
+ parse("[LoliHouse] 約會大作戰 III / Date A Live III - 03 [WebRip 1080p HEVC-10bit AAC][英文內封字幕]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("ENG", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3043,7 +3043,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `509319_III_03_1080p`() {
kotlin.run {
- val r = parse("[搬运] 约会大作战III 03 [1080p][简体中文字幕]")
+ val r = parse("[搬運] 約會大作戰III 03 [1080p][簡體中文字幕]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3055,7 +3055,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `508970_LoliHouse_III_Date_A_Live_III___02_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 约会大作战 III / Date A Live III - 02 [WebRip 1080p HEVC-10bit AAC][英文内封字幕]")
+ parse("[LoliHouse] 約會大作戰 III / Date A Live III - 02 [WebRip 1080p HEVC-10bit AAC][英文內封字幕]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("ENG", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3077,7 +3077,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `508879_1_Date_A_Live_III_III_02_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][1月新番] Date A Live III 约会大作战III 第02话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社][1月新番] Date A Live III 約會大作戰III 第02話 MP4 720p")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3089,7 +3089,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `508766_VCB_Studio_Date_A_Live_10_bit_1080p_AVC_BDRip_S1_OAD_Reseed_Fin`() {
kotlin.run {
val r =
- parse("[VCB-Studio] Date A Live / 约会大作战 / デート・ア・ライブ 10-bit 1080p AVC BDRip [S1 Reseed Fin]")
+ parse("[VCB-Studio] Date A Live / 約會大作戰 / デート・ア・ライブ 10-bit 1080p AVC BDRip [S1 Reseed Fin]")
assertEquals("S1", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3100,7 +3100,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `508711_III_02_1080p`() {
kotlin.run {
- val r = parse("[搬运] 约会大作战III 02 [1080p][简体中文字幕]")
+ val r = parse("[搬運] 約會大作戰III 02 [1080p][簡體中文字幕]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3112,7 +3112,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `508324_LoliHouse_III_Date_A_Live_III___01_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LoliHouse] 约会大作战 III / Date A Live III - 01 [WebRip 1080p HEVC-10bit AAC][英文内封字幕]")
+ parse("[LoliHouse] 約會大作戰 III / Date A Live III - 01 [WebRip 1080p HEVC-10bit AAC][英文內封字幕]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("ENG", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3123,7 +3123,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `508274_1_Date_A_Live_III_III_01_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][1月新番] Date A Live III 约会大作战III 第01话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社][1月新番] Date A Live III 約會大作戰III 第01話 MP4 720p")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3134,7 +3134,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `508127_III_01_1080p`() {
kotlin.run {
- val r = parse("[搬运] 约会大作战III 01 [1080p][简体中文字幕]")
+ val r = parse("[搬運] 約會大作戰III 01 [1080p][簡體中文字幕]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3146,7 +3146,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `508095_VCB_Studio_Date_A_Live_10_bit_1080p_AVC_HEVC_BDRip_S1_S2_M1_Fin`() {
kotlin.run {
val r =
- parse("[VCB-Studio] Date A Live / 约会大作战 / デート・ア・ライブ 10-bit 1080p AVC/HEVC BDRip [S1(DC)+S2+M1 Reseed Fin]")
+ parse("[VCB-Studio] Date A Live / 約會大作戰 / デート・ア・ライブ 10-bit 1080p AVC/HEVC BDRip [S1(DC)+S2+M1 Reseed Fin]")
assertEquals("S2", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3158,7 +3158,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `466903_ANK_Raws_DATE_A_LIVE_TV_01_10Fin_OVA_BDrip_1920x1080_HEVC_YUV420P10_FLAC`() {
kotlin.run {
val r =
- parse("[ANK-Raws] デート・ア・ライブⅡ DATE A LIVEⅡ 约会大作战Ⅱ TV 01-10Fin OVA (BDrip 1920x1080 HEVC-YUV420P10 FLAC)")
+ parse("[ANK-Raws] デート・ア・ライブⅡ DATE A LIVEⅡ 約會大作戰Ⅱ TV 01-10Fin OVA (BDrip 1920x1080 HEVC-YUV420P10 FLAC)")
assertEquals("01..10", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3170,7 +3170,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `466752_ANK_Raws_DATE_A_LIVE_TV_01_12Fin_OVA_BDrip_1920x1080_HEVC_YUV420P10_FLAC`() {
kotlin.run {
val r =
- parse("[ANK-Raws] デート・ア・ライブ DATE A LIVE 约会大作战 TV 01-12Fin OVA (BDrip 1920x1080 HEVC-YUV420P10 FLAC)")
+ parse("[ANK-Raws] デート・ア・ライブ DATE A LIVE 約會大作戰 TV 01-12Fin OVA (BDrip 1920x1080 HEVC-YUV420P10 FLAC)")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3192,7 +3192,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `457636_F_II_11_OVA_720P_MP4`() {
kotlin.run {
- val r = parse("【F宅】约会大作战II 11话 OVA 简 720P MP4")
+ val r = parse("【F宅】約會大作戰II 11話 OVA 簡 720P MP4")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3203,7 +3203,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `457635_F_13_OVA_720P_MP4`() {
kotlin.run {
- val r = parse("【F宅】约会大作战 13话 OVA 简 720P MP4")
+ val r = parse("【F宅】約會大作戰 13話 OVA 簡 720P MP4")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3214,7 +3214,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `457470_F_II_11_OVA_1080P_MKV`() {
kotlin.run {
- val r = parse("【F宅】约会大作战II 11话 OVA 简 1080P MKV")
+ val r = parse("【F宅】約會大作戰II 11話 OVA 簡 1080P MKV")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3225,7 +3225,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `457469_F_13_OVA_1080P_MKV`() {
kotlin.run {
- val r = parse("【F宅】约会大作战 13话 OVA 简 1080P MKV")
+ val r = parse("【F宅】約會大作戰 13話 OVA 簡 1080P MKV")
assertEquals("OVA..OVA", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3238,7 +3238,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
fun `427591_Array_Stars___Gekijouban_Date_a_Live___Mayuri_Judgement_BDrip_1080P_BIG5_GB_Jap_mkv`() {
kotlin.run {
val r =
- parse("[繁星字幕組][Array Stars][劇場版 約會大作戰 - 萬由里審判][Gekijouban Date a Live - Mayuri Judgement ][BDrip][1080P][BIG5&GB&Jap][中日雙語簡繁內掛][mkv][字幕招新]")
+ parse("[繁星字幕組][Array Stars][劇場版 約會大作戰 - 萬由裏審判][Gekijouban Date a Live - Mayuri Judgement ][BDrip][1080P][BIG5&GB&Jap][中日雙語簡繁內掛][mkv][字幕招新]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3249,7 +3249,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `427251_F_DATE_A_LIVE_1080P_MP4`() {
kotlin.run {
- val r = parse("【F宅】约会大作战【剧场版】DATE A LIVE 万由里裁决 简 1080P MKV")
+ val r = parse("【F宅】約會大作戰【劇場版】DATE A LIVE 萬由裏裁決 簡 1080P MKV")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3260,7 +3260,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `427107_Date_A_Live_BDBOX_BDRip`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 导演剪辑版BDBOX BDRip 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 導演剪輯版BDBOX BDRip 簡繁外掛")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3273,7 +3273,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
fun `426437_Array_Stars___Gekijouban_Date_a_Live___Mayuri_Judgement_BDrip_720P_BIG5_Jap_mp4`() {
kotlin.run {
val r =
- parse("[繁星字幕組][Array Stars][劇場版 約會大作戰 - 萬由里審判][Gekijouban Date a Live - Mayuri Judgement ][BDrip][720P][BIG5&Jap][中日雙語繁體][mp4][字幕招新]")
+ parse("[繁星字幕組][Array Stars][劇場版 約會大作戰 - 萬由裏審判][Gekijouban Date a Live - Mayuri Judgement ][BDrip][720P][BIG5&Jap][中日雙語繁體][mp4][字幕招新]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3286,7 +3286,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
fun `426241_Makino_House_VCB_S_philosophy_raws_Date_A_Live_The_Movie_Mayuri_Judgement_10bit_1080p_HEVC_BDRip`() {
kotlin.run {
val r =
- parse("[Makino House&VCB-S&philosophy-raws] Date A Live The Movie:Mayuri Judgement/约会大作战剧场版 万由里裁决 10bit 1080p HEVC BDRip")
+ parse("[Makino House&VCB-S&philosophy-raws] Date A Live The Movie:Mayuri Judgement/約會大作戰劇場版 萬由裏裁決 10bit 1080p HEVC BDRip")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3298,7 +3298,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `425985_Array_Stars___Gekijouban_Date_a_Live___Mayuri_Judgement_BDRIP_720P_GB_Jap`() {
kotlin.run {
val r =
- parse("[繁星字幕组][Array Stars][剧场版 约会大作战 - 万由里审判][Gekijouban Date a Live - Mayuri Judgement ][BDrip][720P][GB&Jap][中日双语简体][mp4]")
+ parse("[繁星字幕組][Array Stars][劇場版 約會大作戰 - 萬由裏審判][Gekijouban Date a Live - Mayuri Judgement ][BDrip][720P][GB&Jap][中日雙語簡體][mp4]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3309,7 +3309,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `425643_rip_720P`() {
kotlin.run {
- val r = parse("约会大作战 万由里裁决[漏勺rip 720P](外挂字幕)")
+ val r = parse("約會大作戰 萬由裏裁決[漏勺rip 720P](外掛字幕)")
assertEquals("null", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3320,7 +3320,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `425240_Date_A_Live_Mayuri_Judgement_BDRip`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] 剧场版 Date A Live 约会大作战 万由里裁决 Mayuri Judgement BDRip 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] 劇場版 Date A Live 約會大作戰 萬由裏裁決 Mayuri Judgement BDRip 簡繁外掛")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3331,7 +3331,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `425043_F_DATE_A_LIVE_720P_MP4`() {
kotlin.run {
- val r = parse("【F宅】约会大作战【剧场版】DATE A LIVE 万由里裁决 简 720P MP4")
+ val r = parse("【F宅】約會大作戰【劇場版】DATE A LIVE 萬由裏裁決 簡 720P MP4")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3343,7 +3343,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `425018_Special_Video_GB_BIG5_BDRip_1080p_x264_8bit_AAC_Go_Summer_Girl_MV_SP_SV`() {
kotlin.run {
val r =
- parse("【莳乃汉化组】约会大作战 剧场版:万由里审判 [Special Video][GB+BIG5][BDRip_1080p_x264_8bit][AAC](诱宵美九:Go☆Summer Girl MV 内嵌)【请注意这个不是SP,是SV】")
+ parse("【蒔乃漢化組】約會大作戰 劇場版:萬由裏審判 [Special Video][GB+BIG5][BDRip_1080p_x264_8bit][AAC](誘宵美九:Go☆Summer Girl MV 內嵌)【請注意這個不是SP,是SV】")
assertEquals("Special..Special", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3354,7 +3354,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `424999_GBv2_BDRip_1080p_x264_8bit_AAC`() {
kotlin.run {
- val r = parse("【莳乃汉化组】约会大作战 剧场版:万由里审判 [GBv2][BDRip_1080p_x264_8bit][AAC]【请下载本版本,上个版本压成繁体了】")
+ val r = parse("【蒔乃漢化組】約會大作戰 劇場版:萬由裏審判 [GBv2][BDRip_1080p_x264_8bit][AAC]【請下載本版本,上個版本壓成繁體了】")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3366,7 +3366,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `424922_GB_BDRip_1080p_x264_8bit_AAC`() {
kotlin.run {
val r =
- parse("【莳乃汉化组】约会大作战 剧场版:万由里审判 [GB][BDRip_1080p_x264_8bit][AAC]【这个其实是压成了BIG5版的。。。。。下载转v2】")
+ parse("【蒔乃漢化組】約會大作戰 劇場版:萬由裏審判 [GB][BDRip_1080p_x264_8bit][AAC]【這個其實是壓成了BIG5版的。。。。。下載轉v2】")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3377,7 +3377,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `424896_BIG5_BDRip_1080p_x264_8bit_AAC`() {
kotlin.run {
- val r = parse("【蒔乃漢化組】約會大作戰 劇場版:萬由里審判 [BIG5][BDRip_1080p_x264_8bit][AAC]")
+ val r = parse("【蒔乃漢化組】約會大作戰 劇場版:萬由裏審判 [BIG5][BDRip_1080p_x264_8bit][AAC]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3389,7 +3389,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `424729_ReinForce__DATE_A_LIVE___Mayuri_Judgement_BDRip_1920x1080_x264_FLAC`() {
kotlin.run {
val r =
- parse("[ReinForce]約會大作戰劇場版 萬由里審判-DATE A LIVE - Mayuri Judgement (BDRip 1920x1080 x264 FLAC) [字幕内附]")
+ parse("[ReinForce]約會大作戰劇場版 萬由裏審判-DATE A LIVE - Mayuri Judgement (BDRip 1920x1080 x264 FLAC) [字幕內附]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3401,7 +3401,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `424579_DATE_A_LIVE_Mayuri_Judgement_BDRIP_1080P_x264_Hi10P_FLAC`() {
kotlin.run {
val r =
- parse("【千夏字幕組】【約會大作戰 萬由里審判_DATE_A_LIVE Mayuri Judgement】[劇場版][BDRIP_1080P][x264-Hi10P_FLAC][繁體外掛](修正字體包)")
+ parse("【千夏字幕組】【約會大作戰 萬由裏審判_DATE_A_LIVE Mayuri Judgement】[劇場版][BDRIP_1080P][x264-Hi10P_FLAC][繁體外掛](修正字體包)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3413,7 +3413,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `424572_DATE_A_LIVE_Mayuri_Judgement_1080P_MKV_AVC_FLAC_Hi10P`() {
kotlin.run {
val r =
- parse("【漫猫字幕组&爱恋字幕社】【约会大作战 万由里审判/DATE_A_LIVE Mayuri Judgement】[剧场版][1080P][MKV][简繁外挂][ x264_FLAC_Hi10P]")
+ parse("【漫貓字幕組&愛戀字幕社】【約會大作戰 萬由裏審判/DATE_A_LIVE Mayuri Judgement】[劇場版][1080P][MKV][簡繁外掛][ x264_FLAC_Hi10P]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3425,7 +3425,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `424492_DATE_A_LIVE_Mayuri_Judgement_BDRIP_720P_x264_AAC`() {
kotlin.run {
val r =
- parse("【千夏字幕組】【約會大作戰 萬由里審判_DATE_A_LIVE Mayuri Judgement】[劇場版][BDRIP_720P][x264_AAC][繁體內嵌](正式版)")
+ parse("【千夏字幕組】【約會大作戰 萬由裏審判_DATE_A_LIVE Mayuri Judgement】[劇場版][BDRIP_720P][x264_AAC][繁體內嵌](正式版)")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3436,7 +3436,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `424436_MGRT_GB_1080P_PSV_PC_MP4`() {
kotlin.run {
- val r = parse("【MGRT&幻之字幕组】约会大作战 万由里审判 [GB][1080P][PSV&PC][MP4][新人招募]")
+ val r = parse("【MGRT&幻之字幕組】約會大作戰 萬由裏審判 [GB][1080P][PSV&PC][MP4][新人招募]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3447,7 +3447,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `424435_MGRT_GB_720P_PSV_PC_MP4`() {
kotlin.run {
- val r = parse("【MGRT&幻之字幕组】约会大作战 万由里审判 [GB][720P][PSV&PC][MP4][新人招募]")
+ val r = parse("【MGRT&幻之字幕組】約會大作戰 萬由裏審判 [GB][720P][PSV&PC][MP4][新人招募]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3458,7 +3458,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `424395_DATE_A_LIVE_Mayuri_Judgement_720P_x264_AAC`() {
kotlin.run {
- val r = parse("【漫猫字幕组&爱恋字幕社】【约会大作战 万由里审判/DATE_A_LIVE Mayuri Judgement】[剧场版]简体][720P][x264_AAC]")
+ val r = parse("【漫貓字幕組&愛戀字幕社】【約會大作戰 萬由裏審判/DATE_A_LIVE Mayuri Judgement】[劇場版]簡體][720P][x264_AAC]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3481,7 +3481,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `424256_Date_A_Live_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] 剧场版 Date A Live 约会大作战 万由里裁决 Mayuri Judgement MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] 劇場版 Date A Live 約會大作戰 萬由裏裁決 Mayuri Judgement MP4 720p")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3492,7 +3492,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `424150_BIG5_DVDRip_720p_x264_8bit_AAC`() {
kotlin.run {
- val r = parse("【蒔乃漢化組】約會大作戰 劇場版:萬由里審判 [BIG5][DVDRip_720p_x264_8bit][AAC]")
+ val r = parse("【蒔乃漢化組】約會大作戰 劇場版:萬由裏審判 [BIG5][DVDRip_720p_x264_8bit][AAC]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3503,7 +3503,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `424129_GB_DVDRip_720p_x264_8bit_AAC`() {
kotlin.run {
- val r = parse("【莳乃汉化组】约会大作战 剧场版:万由里审判 [GB][DVDRip_720p_x264_8bit][AAC]")
+ val r = parse("【蒔乃漢化組】約會大作戰 劇場版:萬由裏審判 [GB][DVDRip_720p_x264_8bit][AAC]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3515,7 +3515,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `417427_philosophy_raws_BDRIP_1080p_10bit_TV_01_13_Director_s_cut_Edition_SP`() {
kotlin.run {
val r =
- parse("[philosophy-raws][约会大作战][BDRIP][1080p 10bit][TV 01-13+Director's cut Edition+SP][日英双语][英文字幕]")
+ parse("[philosophy-raws][約會大作戰][BDRIP][1080p 10bit][TV 01-13+Director's cut Edition+SP][日英雙語][英文字幕]")
assertEquals("01..13+SP", r.episodeRange.toString())
assertEquals("ENG, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3526,7 +3526,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `417426_VCB_S_philosophy_raws_BDRIP_1080p_10bit_TV_01_13_SP`() {
kotlin.run {
- val r = parse("[VCB-S&philosophy-raws][约会大作战][BDRIP][1080p 10bit][TV 01-13+SP][导演剪辑版]")
+ val r = parse("[VCB-S&philosophy-raws][約會大作戰][BDRIP][1080p 10bit][TV 01-13+SP][導演剪輯版]")
assertEquals("01..13+SP", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3537,7 +3537,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `406743_BD720P_MP4`() {
kotlin.run {
- val r = parse("【浩天个人发布】约会大作战第二季 BD720P MP4内嵌简体字幕")
+ val r = parse("【浩天個人發佈】約會大作戰第二季 BD720P MP4內嵌簡體字幕")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3560,7 +3560,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `406024_BD720P_MP4`() {
kotlin.run {
- val r = parse("【浩天个人发布】约会大作战第一季 BD720P MP4内嵌简体字幕")
+ val r = parse("【浩天個人發佈】約會大作戰第一季 BD720P MP4內嵌簡體字幕")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3572,7 +3572,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `402130_2_Date_a_Live2_BDrip_1920x1080_TV11_CM5_OPED5_pv1_menu8_x264_m4a_10bit`() {
kotlin.run {
val r =
- parse("约会大作战2 Date a Live2[BDrip][1920x1080][TV11+CM5+OPED5+pv1+menu8][x264_m4a][10bit]加刘景长压制")
+ parse("約會大作戰2 Date a Live2[BDrip][1920x1080][TV11+CM5+OPED5+pv1+menu8][x264_m4a][10bit]加劉景長壓制")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3585,7 +3585,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
fun `397951_Date_a_Live_BDrip_1920x1080_TV12_OAD_CM10_OPED11_info3_menu14_x264_m4a_10bit`() {
kotlin.run {
val r =
- parse("约会大作战 Date a Live[BDrip][1920x1080][TV12+OAD+CM10+OPED11+info3+menu14][x264_m4a][10bit]加刘景长压制")
+ parse("約會大作戰 Date a Live[BDrip][1920x1080][TV12+OAD+CM10+OPED11+info3+menu14][x264_m4a][10bit]加劉景長壓制")
assertEquals("OAD..OAD", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3596,7 +3596,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `392118_Date_A_Live_II_II_BDRip`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II BDRip 简繁外挂 合集")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II BDRip 簡繁外掛 合集")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3607,7 +3607,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `385057_Date_A_Live_II_II_BDRip_TV_11`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II BDRip TV未放送第11话 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II BDRip TV未放送第11話 簡繁外掛")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3618,7 +3618,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `384760_Date_A_Live_II_II_BDRip_Vol_3_5`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II BDRip Vol.3-5 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II BDRip Vol.3-5 簡繁外掛")
assertEquals("03..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3629,7 +3629,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `383828__11_Date_A_Live_BDRIP_720P_X264_10bit_AAC`() {
kotlin.run {
- val r = parse("[异域-11番小队][约会大作战合集Date A Live][BDRIP][720P][X264-10bit_AAC][春节贺礼第十八弹]")
+ val r = parse("[異域-11番小隊][約會大作戰合集Date A Live][BDRIP][720P][X264-10bit_AAC][春節賀禮第十八彈]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3640,7 +3640,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `381865_FFF_DATE_A_LIVE_BD_1080p_FLAC`() {
kotlin.run {
- val r = parse("[FFF] DATE A LIVE [BD][1080p-FLAC] 约会大作战 第一季 含OVA [内封英文字幕]")
+ val r = parse("[FFF] DATE A LIVE [BD][1080p-FLAC] 約會大作戰 第一季 含OVA [內封英文字幕]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("ENG", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3651,7 +3651,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `378454_U2_Rip_Date_a_Live_II_2_10bit_1080p_BDRip_Fin`() {
kotlin.run {
- val r = parse("[U2-Rip] Date a Live II/约会大作战2期 10bit 1080p BDRip [Fin]")
+ val r = parse("[U2-Rip] Date a Live II/約會大作戰2期 10bit 1080p BDRip [Fin]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3662,7 +3662,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `378453_VCB_Studio_TUcaptions_Date_a_Live_II_2_10bit_1080p_BDRip_Fin`() {
kotlin.run {
- val r = parse("[VCB-Studio & TUcaptions] Date a Live II/约会大作战2期 10bit 1080p BDRip [Fin] 繁简外挂")
+ val r = parse("[VCB-Studio & TUcaptions] Date a Live II/約會大作戰2期 10bit 1080p BDRip [Fin] 繁簡外掛")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3673,7 +3673,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `378121_II_Date_A_Live_II_rip_720P`() {
kotlin.run {
- val r = parse("《约会大作战II》(Date A Live II)[漏勺rip 720P](外挂字幕)")
+ val r = parse("《約會大作戰II》(Date A Live II)[漏勺rip 720P](外掛字幕)")
assertEquals("null", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3684,7 +3684,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `377243_F_BD_Date_a_Live_II_01_11_720P_MP4`() {
kotlin.run {
- val r = parse("【F宅】【BD版】约会大作战 Date a Live II 01-11【合集】 简 720P MP4")
+ val r = parse("【F宅】【BD版】約會大作戰 Date a Live II 01-11【合集】 簡 720P MP4")
assertEquals("01..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3697,7 +3697,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
fun `377211_AE_LE_Project_Date_A_Live_II_II___11_TV_GB_BIG5_JPN_BDRip_1080p_x264_10bit_FLAC`() {
kotlin.run {
val r =
- parse("【莳乃字幕屋&AE漫画组&LE Project】Date A Live II 约会大作战 II - 第11话(TV未放送)[GB-BIG5-JPN][BDRip_1080p_x264_10bit][FLAC]")
+ parse("【蒔乃字幕屋&AE漫畫組&LE Project】Date A Live II 約會大作戰 II - 第11話(TV未放送)[GB-BIG5-JPN][BDRip_1080p_x264_10bit][FLAC]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3721,7 +3721,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
public fun `376296_AE_LE_Project_Date_A_Live_II_II___11_TV_GB_1080P_PSV_PC`() {
kotlin.run {
val r =
- parse("【莳乃字幕屋&AE漫画组&LE Project】Date A Live II 约会大作战 II - 第11话(TV未放送)[GB-JPN][1080P][PSV&PC][招募内详]")
+ parse("【蒔乃字幕屋&AE漫畫組&LE Project】Date A Live II 約會大作戰 II - 第11話(TV未放送)[GB-JPN][1080P][PSV&PC][招募內詳]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3743,7 +3743,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `375756_Date_A_Live_II_II_TV_11_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战 II TV未放送第11话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰 II TV未放送第11話 MP4 720p")
assertEquals("null", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3765,7 +3765,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `373910_VCB_Studio_Date_a_Live_S1_10bit_1080p_BDRip_Fin_CD`() {
kotlin.run {
- val r = parse("[VCB-Studio] Date a Live/约会大作战 S1 10bit 1080p BDRip [Fin] (附CD+扫图+特典)")
+ val r = parse("[VCB-Studio] Date a Live/約會大作戰 S1 10bit 1080p BDRip [Fin] (附CD+掃圖+特典)")
assertEquals("S1", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3798,7 +3798,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `369308_Date_A_Live_II_II_BDRip_Vol_1_2`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II BDRip Vol.1-2 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II BDRip Vol.1-2 簡繁外掛")
assertEquals("01..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3809,7 +3809,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `358687_Date_A_Live_BDRip`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 BDRip 简繁外挂 合集")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 BDRip 簡繁外掛 合集")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3820,7 +3820,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `358089_Date_A_Live_BDRip_TV_13`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 BDRip TV未放送第13话 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 BDRip TV未放送第13話 簡繁外掛")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3831,7 +3831,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `357273_Date_A_Live_BDRip_Vol_6`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 BDRip Vol.6 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 BDRip Vol.6 簡繁外掛")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3842,7 +3842,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `356631_DATE_A_LIVE_BIG5_720P_MP4`() {
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][合集][BIG5][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][合集][BIG5][四月新番][720P][MP4]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3865,7 +3865,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `354651_10_720P`() {
kotlin.run {
- val r = parse("【附百度网盘】【修罗字幕组】【约会大作战 第二季】【10】【720P】【中日双语字幕】")
+ val r = parse("【附百度網盤】【修羅字幕組】【約會大作戰 第二季】【10】【720P】【中日雙語字幕】")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3876,7 +3876,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `354536_Date_A_Live_II_II_01_10_MKV_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第01-10话 MKV 720p 简繁外挂 合集")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第01-10話 MKV 720p 簡繁外掛 合集")
assertEquals("01..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3887,7 +3887,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `354503_4_II_Date_A_Live_II_01_10`() {
kotlin.run {
- val r = parse("[4月新番][约会大作战II][Date A Live II][第01-10话][HEVC][MP4][无字幕]")
+ val r = parse("[4月新番][約會大作戰II][Date A Live II][第01-10話][HEVC][MP4][無字幕]")
assertEquals("01..10", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3898,7 +3898,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `354255_Date_A_Live_II_II_01_10_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第01-10话 MP4 720p 合集")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第01-10話 MP4 720p 合集")
assertEquals("01..10", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3909,7 +3909,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `354187_F_Date_a_Live_II_720P_MP4`() {
kotlin.run {
- val r = parse("【F宅】Date a Live II 约会大作战II【简】【合集】 720P MP4")
+ val r = parse("【F宅】Date a Live II 約會大作戰II【簡】【合集】 720P MP4")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3920,7 +3920,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `354087_Date_A_Live_II_10_GB_1280_720_MP4`() {
kotlin.run {
- val r = parse("【萌物百科字幕组】[约会大作战 第二季_Date A Live II][10][END][GB][1280×720][MP4]")
+ val r = parse("【萌物百科字幕組】[約會大作戰 第二季_Date A Live II][10][END][GB][1280×720][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -3931,7 +3931,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `354083_KNA_2_Date_A_Live_ll_10_Fin_720P_MP4`() {
kotlin.run {
- val r = parse("【恶俗×KNA】[约会大作战 2期][Date A Live ll][10][Fin][720P][简体][MP4]")
+ val r = parse("【惡俗×KNA】[約會大作戰 2期][Date A Live ll][10][Fin][720P][簡體][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3942,7 +3942,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `354077_Date_A_Live_II_II_09_MKV_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第09话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第09話 MKV 720p 簡繁外掛")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3953,7 +3953,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `354076_Date_A_Live_II_II_10_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第10话 MP4 720p 完")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第10話 MP4 720p 完")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3964,7 +3964,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `354058_4_Date_A_Live_II_01_10_GB_BIG5_720P_MKV`() {
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[01-10][GB_BIG5][720P][MKV][全]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[01-10][GB_BIG5][720P][MKV][全]")
assertEquals("01..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3986,7 +3986,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `354053_4_Date_A_Live_II_01_10_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[01-10][GB][720P][MP4][全]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[01-10][GB][720P][MP4][全]")
assertEquals("01..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4020,7 +4020,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `354001_4_Date_A_Live_II_10_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[10][GB][720P][MP4][完]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[10][GB][720P][MP4][完]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4042,7 +4042,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `353996_DHR_DATE_A_LIVE_II_10_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战 第二季_DATE A LIVE II][10完][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰 第二季_DATE A LIVE II][10完][簡體][720P][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4075,7 +4075,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `353988_DHR_DATE_A_LIVE_II_09_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战 第二季_DATE A LIVE II][09][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰 第二季_DATE A LIVE II][09][簡體][720P][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4086,7 +4086,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `353777_DATE_A_LIVE_09_BIG5_720P_MP4`() {
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][09][BIG5][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][09][BIG5][四月新番][720P][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4097,7 +4097,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `353776_DATE_A_LIVE_09_GB_720P_MP4`() {
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][09][GB][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][09][GB][四月新番][720P][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4108,7 +4108,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `353773_09_720P`() {
kotlin.run {
- val r = parse("【附百度网盘】【修罗字幕组】【约会大作战 第二季】【09】【720P】【中日双语字幕】")
+ val r = parse("【附百度網盤】【修羅字幕組】【約會大作戰 第二季】【09】【720P】【中日雙語字幕】")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4119,7 +4119,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `353691_08_720P`() {
kotlin.run {
- val r = parse("【附百度网盘】【修罗字幕组】【约会大作战 第二季】【08】【720P】【中日双语字幕】")
+ val r = parse("【附百度網盤】【修羅字幕組】【約會大作戰 第二季】【08】【720P】【中日雙語字幕】")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4130,7 +4130,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `353470_Date_A_Live_II_09_GB_1280_720_MP4`() {
kotlin.run {
- val r = parse("【萌物百科字幕组】[约会大作战 第二季_Date A Live II][09][GB][1280×720][MP4](内附网盘地址)")
+ val r = parse("【萌物百科字幕組】[約會大作戰 第二季_Date A Live II][09][GB][1280×720][MP4](內附網盤地址)")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4152,7 +4152,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `353435_DHR_DATE_A_LIVE_II_08_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战 第二季_DATE A LIVE II][08][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰 第二季_DATE A LIVE II][08][簡體][720P][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4163,7 +4163,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `353401_Date_A_Live_II_II_09_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第09话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第09話 MP4 720p")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4174,7 +4174,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `353332_KNA_2_Date_A_Live_ll_09_720P_MP4`() {
kotlin.run {
- val r = parse("【恶俗×KNA】[约会大作战 2期][Date A Live ll][09][720P][简体][MP4]")
+ val r = parse("【惡俗×KNA】[約會大作戰 2期][Date A Live ll][09][720P][簡體][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4208,7 +4208,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `353260_4_Date_A_Live_II_09_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[09][GB][720P][MP4]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[09][GB][720P][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4230,7 +4230,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `353008_Date_A_Live_II_II_08_MKV_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第08话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第08話 MKV 720p 簡繁外掛")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4241,7 +4241,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `352620_DATE_A_LIVE_08_BIG5_720P_MP4`() {
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][08][BIG5][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][08][BIG5][四月新番][720P][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4252,7 +4252,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `352618_DATE_A_LIVE_08_GB_720P_MP4`() {
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][08][GB][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][08][GB][四月新番][720P][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4263,7 +4263,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `352615_DATE_A_LIVE_07_BIG5_720P_MP4`() {
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][07][BIG5][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][07][BIG5][四月新番][720P][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4285,7 +4285,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `352602_DHR_DATE_A_LIVE_II_07_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战 第二季_DATE A LIVE II][07][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰 第二季_DATE A LIVE II][07][簡體][720P][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4296,7 +4296,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `352553_DATE_A_LIVE_07_GB_720P_MP4`() {
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][07][GB][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][07][GB][四月新番][720P][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4307,7 +4307,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `352551_Date_A_Live_II_08_GB_1280_720_MP4`() {
kotlin.run {
- val r = parse("【萌物百科字幕组】[约会大作战 第二季_Date A Live II][08][GB][1280×720][MP4](内附网盘地址)")
+ val r = parse("【萌物百科字幕組】[約會大作戰 第二季_Date A Live II][08][GB][1280×720][MP4](內附網盤地址)")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4318,7 +4318,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `352499_KNA_2_Date_A_Live_ll_08_720P_MP4`() {
kotlin.run {
- val r = parse("【恶俗×KNA】[约会大作战 2期][Date A Live ll][08][720P][简体][MP4]")
+ val r = parse("【惡俗×KNA】[約會大作戰 2期][Date A Live ll][08][720P][簡體][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4329,7 +4329,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `352490_Date_A_Live_II_II_08_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第08话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第08話 MP4 720p")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4340,7 +4340,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `352480_Date_A_Live_II_II_07_MKV_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第07话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第07話 MKV 720p 簡繁外掛")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4374,7 +4374,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `352431_4_Date_A_Live_II_08_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[08][GB][720P][MP4]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[08][GB][720P][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4430,7 +4430,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `351626_Date_A_Live_II_II_07_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第07话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第07話 MP4 720p")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4441,7 +4441,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `351604_Date_A_Live_II_07_GB_1280_720_MP4`() {
kotlin.run {
- val r = parse("【萌物百科字幕组】[约会大作战 第二季_Date A Live II][07][GB][1280×720][MP4](内附网盘地址)")
+ val r = parse("【萌物百科字幕組】[約會大作戰 第二季_Date A Live II][07][GB][1280×720][MP4](內附網盤地址)")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4452,7 +4452,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `351559_KNA_2_Date_A_Live_ll_07_720P_MP4`() {
kotlin.run {
- val r = parse("【恶俗×KNA】[约会大作战 2期][Date A Live ll][07][720P][简体][MP4]")
+ val r = parse("【惡俗×KNA】[約會大作戰 2期][Date A Live ll][07][720P][簡體][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4463,7 +4463,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `351530_06_720P`() {
kotlin.run {
- val r = parse("【附百度网盘】【修罗字幕组】【约会大作战 第二季】【06】【720P】【中日双语字幕】")
+ val r = parse("【附百度網盤】【修羅字幕組】【約會大作戰 第二季】【06】【720P】【中日雙語字幕】")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4485,7 +4485,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `351524_4_Date_A_Live_II_07_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[07][GB][720P][MP4]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[07][GB][720P][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4507,7 +4507,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `351398_DHR_DATE_A_LIVE_II_06_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战 第二季_DATE A LIVE II][06][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰 第二季_DATE A LIVE II][06][簡體][720P][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4529,7 +4529,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `351392_DHR_DATE_A_LIVE_II_05_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战 第二季_DATE A LIVE II][05][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰 第二季_DATE A LIVE II][05][簡體][720P][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4540,7 +4540,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `351389_Date_A_Live_II_II_06_MKV_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第06话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第06話 MKV 720p 簡繁外掛")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4551,7 +4551,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `351138_Date_A_Live_II_06_GB_1280_720_MP4`() {
kotlin.run {
- val r = parse("【萌物百科字幕组】[约会大作战 第二季_Date A Live II][06][GB][1280×720][MP4](内附网盘地址)")
+ val r = parse("【萌物百科字幕組】[約會大作戰 第二季_Date A Live II][06][GB][1280×720][MP4](內附網盤地址)")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4562,7 +4562,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `351086_DATE_A_LIVE_06_BIG5_720P_MP4`() {
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][06][BIG5][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][06][BIG5][四月新番][720P][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4573,7 +4573,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `351085_DATE_A_LIVE_06_GB_720P_MP4`() {
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][06][GB][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][06][GB][四月新番][720P][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4584,7 +4584,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `350793_Date_A_Live_II_II_06_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第06话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第06話 MP4 720p")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4595,7 +4595,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `350735_Erosuri_KNA_Date_A_Live_ll_05_GB_1280X720`() {
kotlin.run {
- val r = parse("【恶俗×KNA】[约会大作战 2期][Date A Live ll][06][720P][简体][MP4]")
+ val r = parse("【惡俗×KNA】[約會大作戰 2期][Date A Live ll][06][720P][簡體][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4629,7 +4629,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `350672_4_Date_A_Live_II_06_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[06][GB][720P][MP4][内详]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[06][GB][720P][MP4][內詳]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4662,7 +4662,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `350458_05_720P`() {
kotlin.run {
- val r = parse("【附百度网盘】【修罗字幕组】【约会大作战 第二季】【05】【720P】【中日双语字幕】")
+ val r = parse("【附百度網盤】【修羅字幕組】【約會大作戰 第二季】【05】【720P】【中日雙語字幕】")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4673,7 +4673,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `350399_Date_A_Live_II_II_05_MKV_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第05话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第05話 MKV 720p 簡繁外掛")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4684,7 +4684,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `350135_DATE_A_LIVE_05_BIG5_720P_MP4`() {
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][05][BIG5][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][05][BIG5][四月新番][720P][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4695,7 +4695,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `350133_DATE_A_LIVE_05_GB_720P_MP4`() {
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][05][GB][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][05][GB][四月新番][720P][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4717,7 +4717,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `350020_Date_a_Live___05_GB_720P_PSV_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组】约会大作战Ⅱ Date a Live Ⅱ - 05[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組】約會大作戰Ⅱ Date a Live Ⅱ - 05[GB][720P][PSV&PC][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4739,7 +4739,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `350018_Date_a_Live___04_GB_720P_PSV_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组】约会大作战Ⅱ Date a Live Ⅱ - 04[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組】約會大作戰Ⅱ Date a Live Ⅱ - 04[GB][720P][PSV&PC][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4761,7 +4761,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `350015_Date_a_Live___03_v2_GB_720P_PSV_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组】约会大作战Ⅱ Date a Live Ⅱ - 03_v2[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組】約會大作戰Ⅱ Date a Live Ⅱ - 03_v2[GB][720P][PSV&PC][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4772,7 +4772,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `349958_Date_A_Live_II_05_GB_1280_720_MP4`() {
kotlin.run {
- val r = parse("【萌物百科字幕组】[约会大作战 第二季_Date A Live II][05][GB][1280×720][MP4]")
+ val r = parse("【萌物百科字幕組】[約會大作戰 第二季_Date A Live II][05][GB][1280×720][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4783,7 +4783,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `349877_KNA_2_Date_A_Live_ll_05_720P_MP4`() {
kotlin.run {
- val r = parse("【恶俗×KNA】[约会大作战 2期][Date A Live ll][05][720P][简体][MP4]")
+ val r = parse("【惡俗×KNA】[約會大作戰 2期][Date A Live ll][05][720P][簡體][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4794,7 +4794,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `349865_Date_A_Live_II_II_05_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第05话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第05話 MP4 720p")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4816,7 +4816,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `349783_04_720P`() {
kotlin.run {
- val r = parse("【附百度网盘】【修罗字幕组】【约会大作战 第二季】【04】【720P】【中日双语字幕】")
+ val r = parse("【附百度網盤】【修羅字幕組】【約會大作戰 第二季】【04】【720P】【中日雙語字幕】")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4838,7 +4838,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `349763_4_Date_A_Live_II_05_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[05][GB][720P][MP4][内详]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[05][GB][720P][MP4][內詳]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4860,7 +4860,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `349681_DATE_A_LIVE_04_BIG5_720P_MP4`() {
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][04][BIG5][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][04][BIG5][四月新番][720P][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4871,7 +4871,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `349679_DATE_A_LIVE_04_GB_720P_MP4`() {
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][04][GB][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][04][GB][四月新番][720P][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4882,7 +4882,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `349546_Date_A_Live_II_II_04_MKV_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第04话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第04話 MKV 720p 簡繁外掛")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4904,7 +4904,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `349521_DHR_DATE_A_LIVE_II_04_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战 第二季_DATE A LIVE II][04][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰 第二季_DATE A LIVE II][04][簡體][720P][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4915,7 +4915,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `349470_Date_A_Live_II_04_GB_1280_720_MP4`() {
kotlin.run {
- val r = parse("【萌物百科字幕组】[约会大作战 第二季_Date A Live II][04][GB][1280×720][MP4](内附网盘地址)")
+ val r = parse("【萌物百科字幕組】[約會大作戰 第二季_Date A Live II][04][GB][1280×720][MP4](內附網盤地址)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -4926,7 +4926,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `349195_03_720P`() {
kotlin.run {
- val r = parse("【附百度网盘】【修罗字幕组】【约会大作战 第二季】【03】【720P】【中日双语字幕】")
+ val r = parse("【附百度網盤】【修羅字幕組】【約會大作戰 第二季】【03】【720P】【中日雙語字幕】")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4937,7 +4937,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `349114_Date_A_Live_II_II_04_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live II 约会大作战II 第04话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live II 約會大作戰II 第04話 MP4 720p")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4948,7 +4948,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `348910_KNA_2_Date_A_Live_ll_04_720P_MP4`() {
kotlin.run {
- val r = parse("【恶俗×KNA】[约会大作战 2期][Date A Live ll][04][720P][简体][MP4]")
+ val r = parse("【惡俗×KNA】[約會大作戰 2期][Date A Live ll][04][720P][簡體][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4970,7 +4970,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `348802_4_Date_A_Live_II_II_03_MKV_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][4月新番] Date A Live II 约会大作战II 第03话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社][4月新番] Date A Live II 約會大作戰II 第03話 MKV 720p 簡繁外掛")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4992,7 +4992,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `348796_4_Date_A_Live_II_04_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[04][GB][720P][MP4]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[04][GB][720P][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5025,7 +5025,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `348465_Date_a_Live___03_GB_720P_PSV_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组】约会大作战Ⅱ Date a Live Ⅱ - 03[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組】約會大作戰Ⅱ Date a Live Ⅱ - 03[GB][720P][PSV&PC][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5036,7 +5036,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `348422_DATE_A_LIVE_03_BIG5_720P_MP4`() {
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][03][BIG5][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][03][BIG5][四月新番][720P][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5047,7 +5047,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `348420_DATE_A_LIVE_03_GB_720P_MP4`() {
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][03][GB][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][03][GB][四月新番][720P][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5058,7 +5058,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `348334_Date_A_Live_II_03_GB_1280_720_MP4`() {
kotlin.run {
- val r = parse("【萌物百科字幕组】[约会大作战 第二季_Date A Live II][03][GB][1280×720][MP4](内附网盘地址)")
+ val r = parse("【萌物百科字幕組】[約會大作戰 第二季_Date A Live II][03][GB][1280×720][MP4](內附網盤地址)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5069,7 +5069,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `347912_KNA_2_Date_A_Live_ll_03_720P_MP4`() {
kotlin.run {
- val r = parse("【恶俗×KNA】[约会大作战 2期][Date A Live ll][03][720P][简体][MP4]")
+ val r = parse("【惡俗×KNA】[約會大作戰 2期][Date A Live ll][03][720P][簡體][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5102,7 +5102,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `347882_DHR_DATE_A_LIVE_II_03_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战 第二季_DATE A LIVE II][03][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰 第二季_DATE A LIVE II][03][簡體][720P][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5124,7 +5124,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `347844_4_Date_A_Live_II_03_GB_720P_MP4_V2`() {
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[03][GB][720P][MP4][V2]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[03][GB][720P][MP4][V2]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5157,7 +5157,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `347819_4_Date_A_Live_II_03_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[03][GB][720P][MP4]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[03][GB][720P][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5168,7 +5168,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `347708_4_Date_A_Live_II_II_02_MKV_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][4月新番] Date A Live II 约会大作战II 第02话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社][4月新番] Date A Live II 約會大作戰II 第02話 MKV 720p 簡繁外掛")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5201,7 +5201,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `347562_01_720P`() {
kotlin.run {
- val r = parse("【附百度网盘】【修罗字幕组】【约会大作战 第二季】【01】【720P】【中日双语字幕】")
+ val r = parse("【附百度網盤】【修羅字幕組】【約會大作戰 第二季】【01】【720P】【中日雙語字幕】")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5212,7 +5212,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `347561_02_720P`() {
kotlin.run {
- val r = parse("【附百度网盘】【修罗字幕组】【约会大作战 第二季】【02】【720P】【中日双语字幕】")
+ val r = parse("【附百度網盤】【修羅字幕組】【約會大作戰 第二季】【02】【720P】【中日雙語字幕】")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5234,7 +5234,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `347151_DATE_A_LIVE_02_BIG5_720P_MP4`() {
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][02][BIG5][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][02][BIG5][四月新番][720P][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5245,7 +5245,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `347113_DATE_A_LIVE_02_GB_720P_MP4`() {
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][02][GB][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][02][GB][四月新番][720P][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5267,7 +5267,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `347086_DHR_DATE_A_LIVE_II_02_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战 第二季_DATE A LIVE II][02][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰 第二季_DATE A LIVE II][02][簡體][720P][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5289,7 +5289,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `347072_Date_a_Live___02_GB_720P_PSV_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组】约会大作战Ⅱ Date a Live Ⅱ - 02[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組】約會大作戰Ⅱ Date a Live Ⅱ - 02[GB][720P][PSV&PC][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5300,7 +5300,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `347018_Date_A_Live_II_02_GB_1280_720_MP4`() {
kotlin.run {
- val r = parse("【萌物百科字幕组】[约会大作战 第二季_Date A Live II][02][GB][1280×720][MP4](内附网盘地址)")
+ val r = parse("【萌物百科字幕組】[約會大作戰 第二季_Date A Live II][02][GB][1280×720][MP4](內附網盤地址)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5311,7 +5311,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `346887_KNA_2_Date_A_Live_ll_02_720P_MP4`() {
kotlin.run {
- val r = parse("【恶俗×KNA】[约会大作战 2期][Date A Live ll][02][720P][简体][MP4]")
+ val r = parse("【惡俗×KNA】[約會大作戰 2期][Date A Live ll][02][720P][簡體][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5322,7 +5322,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `346873_4_Date_A_Live_II_II_02_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][4月新番] Date A Live II 约会大作战II 第02话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社][4月新番] Date A Live II 約會大作戰II 第02話 MP4 720p")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5355,7 +5355,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `346774_4_Date_A_Live_II_02_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[02][GB][720P][MP4]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[02][GB][720P][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5366,7 +5366,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `346657_4_Date_A_Live_II_II_01_MKV_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][4月新番] Date A Live II 约会大作战II 第01话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社][4月新番] Date A Live II 約會大作戰II 第01話 MKV 720p 簡繁外掛")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5377,7 +5377,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `346295_DATE_A_LIVE_01_BIG5_720P_MP4`() {
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][01][BIG5][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][01][BIG5][四月新番][720P][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5388,7 +5388,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `346176_DATE_A_LIVE_01_GB_720P_MP4`() {
kotlin.run {
- val r = parse("[银光字幕组][约会大作战第二季DATE·A·LIVE][01][GB][四月新番][720P][MP4]")
+ val r = parse("[銀光字幕組][約會大作戰第二季DATE·A·LIVE][01][GB][四月新番][720P][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5432,7 +5432,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `345953_Date_a_Live___01_GB_720P_PSV_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组】约会大作战Ⅱ Date a Live Ⅱ - 01[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組】約會大作戰Ⅱ Date a Live Ⅱ - 01[GB][720P][PSV&PC][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5443,7 +5443,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `345819_KNA_2_Date_A_Live_ll_01_720P_MP4`() {
kotlin.run {
- val r = parse("【恶俗×KNA】[约会大作战 2期][Date A Live ll][01][720P][简体][MP4]")
+ val r = parse("【惡俗×KNA】[約會大作戰 2期][Date A Live ll][01][720P][簡體][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5465,7 +5465,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `345796_4_Date_A_Live_II_II_01_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][4月新番] Date A Live II 约会大作战II 第01话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社][4月新番] Date A Live II 約會大作戰II 第01話 MP4 720p")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5476,7 +5476,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `345773_Date_A_Live_II_01_GB_1280_720_MP4`() {
kotlin.run {
- val r = parse("[萌物百科字幕组][约会大作战 第二季_Date A Live II][01][GB][1280×720][MP4](内附网盘地址)")
+ val r = parse("[萌物百科字幕組][約會大作戰 第二季_Date A Live II][01][GB][1280×720][MP4](內附網盤地址)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5487,7 +5487,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `345772_DHR_DATE_A_LIVE_II_01_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战 第二季_DATE A LIVE II][01][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰 第二季_DATE A LIVE II][01][簡體][720P][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5531,7 +5531,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `345715_4_Date_A_Live_II_01_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【恶魔岛字幕组】★4月新番【约会大作战 第二季_Date A Live II】[01][GB][720P][MP4]")
+ val r = parse("【惡魔島字幕組】★4月新番【約會大作戰 第二季_Date A Live II】[01][GB][720P][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5635,7 +5635,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `335868_DHR_DATE_A_LIVE_13_OVA_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][13话_OVA][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][13話_OVA][簡體][720P][MP4]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5702,7 +5702,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `330563_Date_A_Live_TV_13_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 TV未放送第13话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 TV未放送第13話 MP4 720p")
assertEquals("null", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5724,7 +5724,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `329719__11_Date_a_Live_BDRIP_720P_X264_AAC`() {
kotlin.run {
- val r = parse("[异域-11番小队][约会大作战Date a Live][BDRIP][720P][X264_AAC]")
+ val r = parse("[異域-11番小隊][約會大作戰Date a Live][BDRIP][720P][X264_AAC]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5746,7 +5746,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `329630_DATE_A_LIV_E_13_TV_720p_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★约会大作战_DATE A LIVE 第13话(TV未放送) 720p GB MP4")
+ val r = parse("【極影字幕社】★約會大作戰_DATE A LIVE 第13話(TV未放送) 720p GB MP4")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5769,7 +5769,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `329504_DATE_A_LIVE_13_TV_1280x720_MP4_PC_PSV`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第13话_TV未放送][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第13話_TV未放送][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5780,7 +5780,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `329320_Date_a_Live___13_GB_720P_PSV_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组】约会大作战 Date a Live - 13[GB][720P][PSV&PC][MP4](成員招募)")
+ val r = parse("【幻之字幕組】約會大作戰 Date a Live - 13[GB][720P][PSV&PC][MP4](成員招募)")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5824,7 +5824,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `325791_Date_A_Live_BDRip_Vol_5`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 BDRip Vol.5 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 BDRip Vol.5 簡繁外掛")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5835,7 +5835,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `323712_Date_A_Live_BDRip_Vol_4`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 BDRip Vol.4 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 BDRip Vol.4 簡繁外掛")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5846,7 +5846,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `323325_Date_A_Live_BDRip_Vol_3`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 BDRip Vol.3 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 BDRip Vol.3 簡繁外掛")
assertEquals("S?", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5857,7 +5857,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `323220_Date_A_Live_BDRip_Vol_1_2`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 BDRip Vol.1-2 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 BDRip Vol.1-2 簡繁外掛")
assertEquals("01..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -5868,7 +5868,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `316264_1_12END_BIG5_RMVB_848X480`() {
kotlin.run {
- val r = parse("【华盟字幕社&澄空学园】[约会大作战][1-12END] [BIG5][RMVB][848X480]")
+ val r = parse("【華盟字幕社&澄空學園】[約會大作戰][1-12END] [BIG5][RMVB][848X480]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -5890,7 +5890,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `315092_DHR_DATE_A_LIVE_12_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][全12话][简体][720P][MP4](合集版本)")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][全12話][簡體][720P][MP4](合集版本)")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5923,7 +5923,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `312310_FREEWIND_DATE_A_LIVE_1080P_BDRIP_BD2_3_4_SP`() {
kotlin.run {
- val r = parse("◆[漫游FREEWIND工作室] DATE A LIVE 約會大作戰 1080P BDRIP BD2 第3~4話+SP")
+ val r = parse("◆[漫遊FREEWIND工作室] DATE A LIVE 約會大作戰 1080P BDRIP BD2 第3~4話+SP")
assertEquals("03..04+SP", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6001,7 +6001,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `308281_FREEWIND_DATE_A_LIVE_1080P_BDRIP_1_2_SP`() {
kotlin.run {
- val r = parse("◆[漫游FREEWIND工作室] DATE A LIVE 約會大作戰 1080P BDRIP 第1~2話+SP")
+ val r = parse("◆[漫遊FREEWIND工作室] DATE A LIVE 約會大作戰 1080P BDRIP 第1~2話+SP")
assertEquals("01..02+SP", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6034,7 +6034,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `307689_Date_A_Live_01_12_MKV_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第01-12话 MKV 720p 简繁外挂 合集")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第01-12話 MKV 720p 簡繁外掛 合集")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6067,7 +6067,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `307620_Date_A_Live_01_12_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第01-12话 MP4 720p 合集")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第01-12話 MP4 720p 合集")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6089,7 +6089,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `307439_DATE_A_LIVE_01_12_X264_AAC_720P_MKV`() {
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第01-12話 完結合集 简繁外挂字幕 X264_AAC 720P MKV")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第01-12話 完結合集 簡繁外掛字幕 X264_AAC 720P MKV")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6111,7 +6111,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `307316_Date_a_Live_01_12_GB_720P_PSV_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live 01-12[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live 01-12[GB][720P][PSV&PC][MP4]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6122,7 +6122,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `307314_Date_a_Live_01_12_BIG5_480P_PSP_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live 01-12[BIG5][480P][PSP&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live 01-12[BIG5][480P][PSP&PC][MP4]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -6133,7 +6133,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `307141_Date_a_Live___12_GB_720P_PSV_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 12[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 12[GB][720P][PSV&PC][MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6144,7 +6144,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `307122_Date_a_Live___12_BIG5_480P_PSP_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 12[BIG5][480P][PSP&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 12[BIG5][480P][PSP&PC][MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -6188,7 +6188,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `306991_DATE_A_LIVE_12_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 约会大作战】第12话 完结 GB简体 720P MP4")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第12話 完結 GB簡體 720P MP4")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6199,7 +6199,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `306969_Date_A_Live_11_MKV_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第11话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第11話 MKV 720p 簡繁外掛")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6210,7 +6210,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `306965_DATE_A_LIVE_12_1280x720_MP4_PC_PSV`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第12话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第12話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6232,7 +6232,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `306957_DHR_DATE_A_LIVE_12_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][12完][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][12完][簡體][720P][MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6277,7 +6277,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `306911_Date_A_Live_12_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第12话 MP4 720p 完")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第12話 MP4 720p 完")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6288,7 +6288,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `306910_4_DATE_A_LIVE_12_720p_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战_DATE A LIVE第12话 720p GB MP4[第一季完]")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE第12話 720p GB MP4[第一季完]")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6321,7 +6321,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `306322_Date_a_Live___11_GB_720P_PSV_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 11[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 11[GB][720P][PSV&PC][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6332,7 +6332,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `306300_Date_a_Live___11_BIG5_480P_PSP_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 11[BIG5][480P][PSP&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 11[BIG5][480P][PSP&PC][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -6343,7 +6343,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `306282_DATE_A_LIVE_11_1280x720_MP4_PC_PSV`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第11话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第11話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6398,7 +6398,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `306156_DATE_A_LIVE_11_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 约会大作战】第11话 GB简体 720P MP4")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第11話 GB簡體 720P MP4")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6409,7 +6409,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `306150_DHR_DATE_A_LIVE_11_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][11][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][11][簡體][720P][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6453,7 +6453,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `306112_4_DATE_A_LIVE_11_720p_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战_DATE A LIVE第11话 720p GB MP4")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE第11話 720p GB MP4")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6475,7 +6475,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `306109_Date_A_Live_11_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第11话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第11話 MP4 720p")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6498,7 +6498,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `306027_Date_A_Live_10_MKV_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第10话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第10話 MKV 720p 簡繁外掛")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6564,7 +6564,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `305478_Date_a_Live___10_BIG5_480P_PSP_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 10[BIG5][480P][PSP&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 10[BIG5][480P][PSP&PC][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -6575,7 +6575,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `305477_Date_a_Live___10_GB_720P_PSV_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 10[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 10[GB][720P][PSV&PC][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6597,7 +6597,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `305415_Date_A_Live_09_MKV_720p_EDPV`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第09话 MKV 720p 简繁外挂 附EDPV")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第09話 MKV 720p 簡繁外掛 附EDPV")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6619,7 +6619,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `305409_DATE_A_LIVE_10_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 约会大作战】第10话 GB简体 720P MP4")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第10話 GB簡體 720P MP4")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6630,7 +6630,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `305390_DATE_A_LIVE_10_1280x720_MP4_PC_PSV`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第10话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第10話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6641,7 +6641,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `305372_DHR_DATE_A_LIVE_10_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][10][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][10][簡體][720P][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6685,7 +6685,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `305346_4_DATE_A_LIVE_10_720p_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战_DATE A LIVE第10话 720p GB MP4")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE第10話 720p GB MP4")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6718,7 +6718,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `305333_Date_A_Live_10_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第10话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第10話 MP4 720p")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6774,7 +6774,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `304614_Date_a_Live___09_BIG5_480P_PSP_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 09[BIG5][480P][PSP&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 09[BIG5][480P][PSP&PC][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -6785,7 +6785,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `304612_Date_a_Live___09_GB_720P_PSV_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 09[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 09[GB][720P][PSV&PC][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6818,7 +6818,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `304539_DATE_A_LIVE_09_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 约会大作战】第09话 GB简体 720P MP4")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第09話 GB簡體 720P MP4")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6829,7 +6829,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `304532_DATE_A_LIVE_09_1280x720_MP4_PC_PSV`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第09话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第09話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6851,7 +6851,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `304508_4_DATE_A_LIVE_09_720p_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战_DATE A LIVE第09话 720p GB MP4")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE第09話 720p GB MP4")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6862,7 +6862,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `304482_DHR_DATE_A_LIVE_09_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][09][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][09][簡體][720P][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6906,7 +6906,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `304467_Date_A_Live_09_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第09话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第09話 MP4 720p")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6929,7 +6929,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `304309_Date_A_Live_08_MKV_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第08话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第08話 MKV 720p 簡繁外掛")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6973,7 +6973,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `304105_DATE_A_LIVE_08_X264_AAC_720P_MKV`() {
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第08話 简繁外挂字幕 X264_AAC 720P MKV")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第08話 簡繁外掛字幕 X264_AAC 720P MKV")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7017,7 +7017,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `303653_Date_a_Live___08_BIG5_480P_PSP_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 08[BIG5][480P][PSP&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 08[BIG5][480P][PSP&PC][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -7028,7 +7028,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `303649_Date_a_Live___08_GB_720P_PSV_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 08[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 08[GB][720P][PSV&PC][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7050,7 +7050,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `303621_Date_A_Live_07_MKV_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第07话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第07話 MKV 720p 簡繁外掛")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7072,7 +7072,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `303616_DATE_A_LIVE_08_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 约会大作战】第08话 GB简体 720P MP4")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第08話 GB簡體 720P MP4")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7094,7 +7094,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `303593_DATE_A_LIVE_08_1280x720_MP4_PC_PSV`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第08话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第08話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7105,7 +7105,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `303568_DHR_DATE_A_LIVE_08_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][08][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][08][簡體][720P][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7160,7 +7160,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `303544_4_DATE_A_LIVE_08_720p_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战_DATE A LIVE第08话 720p GB MP4")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE第08話 720p GB MP4")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7171,7 +7171,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `303543_Date_A_Live_08_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第08话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第08話 MP4 720p")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7216,7 +7216,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `303208_Date_A_Live_06_MKV_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第06话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第06話 MKV 720p 簡繁外掛")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7227,7 +7227,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `303185_DATE_A_LIVE_07_X264_AAC_720P_MKV`() {
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第07話 简繁外挂字幕 X264_AAC 720P MKV")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第07話 簡繁外掛字幕 X264_AAC 720P MKV")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7293,7 +7293,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `302790_4_DATE_A_LIVE_07_720p_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战_DATE A LIVE第07话 720p GB MP4")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE第07話 720p GB MP4")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7304,7 +7304,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `302783_Date_a_Live___07_BIG5_480P_PSP_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 07[BIG5][480P][PSP&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 07[BIG5][480P][PSP&PC][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -7315,7 +7315,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `302775_Date_a_Live___07_GB_720P_PSV_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 07[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 07[GB][720P][PSV&PC][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7337,7 +7337,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `302757_DATE_A_LIVE_07_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 约会大作战】第07话 GB简体 720P MP4")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第07話 GB簡體 720P MP4")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7348,7 +7348,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `302753_DATE_A_LIVE_07_1280x720_MP4_PC_PSV`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第07话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第07話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7370,7 +7370,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `302737_DHR_DATE_A_LIVE_07_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][07][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][07][簡體][720P][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7403,7 +7403,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `302718_Date_A_Live_07_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第07话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第07話 MP4 720p")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7426,7 +7426,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `302555_DATE_A_LIVE_06_X264_AAC_720P_MKV`() {
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第06話 简繁外挂字幕 X264_AAC 720P MKV")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第06話 簡繁外掛字幕 X264_AAC 720P MKV")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7481,7 +7481,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `302012_DATE_A_LIVE_06_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 约会大作战】第06话 GB简体 720P MP4")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第06話 GB簡體 720P MP4")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7492,7 +7492,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `301971_Date_a_Live___06_BIG5_480P_PSP_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 06[BIG5][480P][PSP&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 06[BIG5][480P][PSP&PC][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -7503,7 +7503,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `301969_Date_a_Live___06_GB_720P_PSV_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 06[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 06[GB][720P][PSV&PC][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7514,7 +7514,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `301965_DATE_A_LIVE_06_1280x720_MP4_PC_PSV`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第06话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第06話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7525,7 +7525,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `301964_Date_A_Live_05_MKV_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第05话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第05話 MKV 720p 簡繁外掛")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7547,7 +7547,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `301938_DHR_DATE_A_LIVE_06_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][06][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][06][簡體][720P][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7614,7 +7614,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `301899_Date_A_Live_06_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第06话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第06話 MP4 720p")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7625,7 +7625,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `301895_4_DATE_A_LIVE_06_720p_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战_DATE A LIVE第06话 720p GB MP4")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE第06話 720p GB MP4")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7647,7 +7647,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `301581_DATE_A_LIVE_05_X264_AAC_720P_MKV`() {
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第05話 简繁外挂字幕 X264_AAC 720P MKV")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第05話 簡繁外掛字幕 X264_AAC 720P MKV")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7702,7 +7702,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `301350_Date_a_Live___05_BIG5_480P_PSP_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 05[BIG5][480P][PSP&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 05[BIG5][480P][PSP&PC][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -7713,7 +7713,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `301349_Date_a_Live___05_GB_720P_PSV_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 05[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 05[GB][720P][PSV&PC][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7724,7 +7724,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `301200_Date_A_Live_04_MKV_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第04话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第04話 MKV 720p 簡繁外掛")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7757,7 +7757,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `301027_DATE_A_LIVE_05_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 约会大作战】第05话 GB简体 720P MP4")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第05話 GB簡體 720P MP4")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7768,7 +7768,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `301015_DATE_A_LIVE_05_1280x720_MP4_PC_PSV`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第05话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第05話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7779,7 +7779,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `301002_DHR_DATE_A_LIVE_05_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][05][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][05][簡體][720P][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7856,7 +7856,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `300976_Date_A_Live_05_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社] Date A Live 约会大作战 第05话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社] Date A Live 約會大作戰 第05話 MP4 720p")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7867,7 +7867,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `300970_4_DATE_A_LIVE_05_720p_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战_DATE A LIVE第05话 720p GB MP4")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE第05話 720p GB MP4")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7890,7 +7890,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `300724_DATE_A_LIVE_04_X264_AAC_720P_MKV`() {
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第04話 简繁外挂字幕 X264_AAC 720P MKV")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第04話 簡繁外掛字幕 X264_AAC 720P MKV")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7956,7 +7956,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `300251_DATE_A_LIVE_04_1280x720_MP4_PC_PSV`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第04话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第04話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7978,7 +7978,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `300161_Date_a_Live___04_GB_720P_PSV_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 04[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 04[GB][720P][PSV&PC][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7989,7 +7989,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `300160_Date_a_Live___04_BIG5_480P_PSP_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 04[BIG5][480P][PSP&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 04[BIG5][480P][PSP&PC][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -8011,7 +8011,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `300127_DATE_A_LIVE_04_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 约会大作战】第04话 GB简体 720P MP4")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第04話 GB簡體 720P MP4")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8022,7 +8022,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `300102_4_Date_A_Live_03_MKV_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][4月新番] Date A Live 约会大作战 第03话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社][4月新番] Date A Live 約會大作戰 第03話 MKV 720p 簡繁外掛")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8033,7 +8033,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `300085_DHR_DATE_A_LIVE_04_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][04][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][04][簡體][720P][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8111,7 +8111,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `300060_4_Date_A_Live_04_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][4月新番] Date A Live 约会大作战 第04话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社][4月新番] Date A Live 約會大作戰 第04話 MP4 720p")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8122,7 +8122,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `300058_4_DATE_A_LIVE_04_720p_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战_DATE A LIVE第04话 720p GB MP4")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE第04話 720p GB MP4")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8133,7 +8133,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `299846_DATE_A_LIVE_03_X264_AAC_720P_MKV`() {
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第03話 简繁外挂字幕 X264_AAC 720P MKV")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第03話 簡繁外掛字幕 X264_AAC 720P MKV")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8144,7 +8144,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `299728_Date_a_Live___03_BIG5_480P_PSP_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 03[BIG5][480P][PSP&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 03[BIG5][480P][PSP&PC][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -8155,7 +8155,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `299727_Date_a_Live___03_GB_720P_PSV_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 03[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 03[GB][720P][PSV&PC][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8166,7 +8166,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `299643_Date_a_Live___02_BIG5_480P_PSP_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 02[BIG5][480P][PSP&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 02[BIG5][480P][PSP&PC][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -8177,7 +8177,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `299642_Date_a_Live___02_GB_720P_PSV_PC_MP4`() {
kotlin.run {
- val r = parse("【幻之字幕组&猫蒲团汉化组】约会大作战_Date a Live - 02[GB][720P][PSV&PC][MP4]")
+ val r = parse("【幻之字幕組&貓蒲團漢化組】約會大作戰_Date a Live - 02[GB][720P][PSV&PC][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8232,7 +8232,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `299275_DATE_A_LIVE_03_1280x720_MP4_PC_PSV`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第03话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第03話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8243,7 +8243,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `299265_DHR_DATE_A_LIVE_03_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][03][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][03][簡體][720P][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8276,7 +8276,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `299194_4_Date_A_Live_02_MKV_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][4月新番] Date A Live 约会大作战 第02话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社][4月新番] Date A Live 約會大作戰 第02話 MKV 720p 簡繁外掛")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8298,7 +8298,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `299188_DATE_A_LIVE_03_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 约会大作战】第03话 GB简体 720P MP4")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第03話 GB簡體 720P MP4")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8343,7 +8343,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `299150_4_DATE_A_LIVE_03_720p_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战_DATE A LIVE第03话 720p GB MP4")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE第03話 720p GB MP4")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8354,7 +8354,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `299148_4_Date_A_Live_03_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][4月新番] Date A Live 约会大作战 第03话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社][4月新番] Date A Live 約會大作戰 第03話 MP4 720p")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8387,7 +8387,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `298929_DATE_A_LIVE_02_X264_AAC_720P_MKV`() {
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第02話 简繁外挂字幕 X264_AAC 720P MKV")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第02話 簡繁外掛字幕 X264_AAC 720P MKV")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8398,7 +8398,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `298722_DATE_A_LIVE_02_BIG5_1280X720_Mp4`() {
kotlin.run {
- val r = parse("【风之圣殿字幕组】【★四月新番】[约会大作战 DATE A LIVE][02][BIG5][1280X720][Mp4]")
+ val r = parse("【風之聖殿字幕組】【★四月新番】[約會大作戰 DATE A LIVE][02][BIG5][1280X720][Mp4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8442,7 +8442,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `298432_DATE_A_LIVE_02_GB_720P_MP4`() {
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 约会大作战】第02话 GB简体 720P MP4")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第02話 GB簡體 720P MP4")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8464,7 +8464,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `298328_DATE_A_LIVE_02_1280x720_MP4_PC_PSV`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第02话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第02話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8475,7 +8475,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `298327_DHR_DATE_A_LIVE_02_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][02][简体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][02][簡體][720P][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8531,7 +8531,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `298304_4_DATE_A_LIVE_02_720p_BIG5_MP4`() {
kotlin.run {
- val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE 第02話 720p BIG5 MP4【字幕社招募片源录制】")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE 第02話 720p BIG5 MP4【字幕社招募片源錄製】")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8542,7 +8542,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `298301_4_DATE_A_LIVE_02_720p_GB`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战_DATE A LIVE第02话 720p GB【字幕社招募片源录制】")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰_DATE A LIVE第02話 720p GB【字幕社招募片源錄製】")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8553,7 +8553,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `298293_4_Date_A_Live_02_MP4_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][4月新番] Date A Live 约会大作战 第02话 MP4 720p")
+ val r = parse("[澄空學園&華盟字幕社][4月新番] Date A Live 約會大作戰 第02話 MP4 720p")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8564,7 +8564,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `298265_4_Date_A_Live_01_MKV_720p`() {
kotlin.run {
- val r = parse("[澄空学园&华盟字幕社][4月新番] Date A Live 约会大作战 第01话 MKV 720p 简繁外挂")
+ val r = parse("[澄空學園&華盟字幕社][4月新番] Date A Live 約會大作戰 第01話 MKV 720p 簡繁外掛")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8608,7 +8608,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `297960_DATE_A_LIVE_01_X264_AAC_720P_MKV`() {
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第01話 简繁外挂字幕 X264_AAC 720P MKV")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第01話 簡繁外掛字幕 X264_AAC 720P MKV")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8641,7 +8641,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `297699_DATE_A_LIVE_01_1280x720_MP4_PC_PSV`() {
kotlin.run {
- val r = parse("【千夏字幕组】【约会大作战_DATE_A_LIVE】[第01话][1280x720][MP4_PC&PSV兼容][简体]")
+ val r = parse("【千夏字幕組】【約會大作戰_DATE_A_LIVE】[第01話][1280x720][MP4_PC&PSV兼容][簡體]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8697,7 +8697,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `297508_DATE_A_LIVE_01_GB_720P`() {
kotlin.run {
- val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 约会大作战】第01话 GB简体 720P")
+ val r = parse("【雪酷字幕組】★四月新番【DATE A LIVE 約會大作戰】第01話 GB簡體 720P")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8719,7 +8719,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `297502_DHR_DATE_A_LIVE_01_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组&DHR动研字幕组】[约会大作战_DATE A LIVE][01][簡体][720P][MP4]")
+ val r = parse("【動漫國字幕組&DHR動研字幕組】[約會大作戰_DATE A LIVE][01][簡體][720P][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8741,7 +8741,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `297484_4_01_720p_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战 第01话[720p] GB MP4")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰 第01話[720p] GB MP4")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8785,7 +8785,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `296737_4_01_nico_854x480_GB_MP4`() {
kotlin.run {
- val r = parse("【极影字幕社】★4月新番 约会大作战 第01话[先行版][nico 854x480] GB MP4")
+ val r = parse("【極影字幕社】★4月新番 約會大作戰 第01話[先行版][nico 854x480] GB MP4")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("480P", r.resolution.toString())
@@ -8818,7 +8818,7 @@ public class PatternTitleParserTest约会大作战 : PatternBasedTitleParserTest
@Test
public fun `167544_1_Kaitou_Reinya_08_RV10`() {
kotlin.run {
- val r = parse("【星尘字幕组】1月迷你新番【怪盗丽奈 Kaitou Reinya】【08 诶~丽奈约会大作战】【RV10】")
+ val r = parse("【星塵字幕組】1月迷你新番【怪盜麗奈 Kaitou Reinya】【08 誒~麗奈約會大作戰】【RV10】")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
diff --git "a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\347\273\210\346\234\253\345\210\227\350\275\246\345\216\273\345\276\200\344\275\225\346\226\271.kt" "b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\347\273\210\346\234\253\345\210\227\350\275\246\345\216\273\345\276\200\344\275\225\346\226\271.kt"
index ab68cd228..fb435d659 100644
--- "a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\347\273\210\346\234\253\345\210\227\350\275\246\345\216\273\345\276\200\344\275\225\346\226\271.kt"
+++ "b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\347\273\210\346\234\253\345\210\227\350\275\246\345\216\273\345\276\200\344\275\225\346\226\271.kt"
@@ -26,7 +26,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `670442_Shuumatsu_Train_Doko_e_Iku_08_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [08][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [08][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -38,7 +38,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `670441_Shuumatsu_Train_Doko_e_Iku_08_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [08][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [08][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -50,7 +50,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `670440_Shuumatsu_Train_Doko_e_Iku_08_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [08][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [08][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -62,7 +62,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `669853_Shuumatsu_Train_Doko_e_Iku_07_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [07][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [07][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -74,7 +74,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `669852_Shuumatsu_Train_Doko_e_Iku_07_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [07][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [07][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -86,7 +86,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `669851_Shuumatsu_Train_Doko_e_Iku_07_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [07][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [07][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -98,7 +98,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `669084_Shuumatsu_Train_Doko_e_Iku_06_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [06][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [06][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -110,7 +110,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `669083_Shuumatsu_Train_Doko_e_Iku_06_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [06][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [06][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -122,7 +122,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `669082_Shuumatsu_Train_Doko_e_Iku_06_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [06][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [06][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -134,7 +134,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `668544_Shuumatsu_Train_Doko_e_Iku_05_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [05][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [05][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -146,7 +146,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `668543_Shuumatsu_Train_Doko_e_Iku_05_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [05][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [05][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -158,7 +158,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `668542_Shuumatsu_Train_Doko_e_Iku_05_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [05][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [05][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -170,7 +170,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `668092_Shuumatsu_Train_Doko_e_Iku_04_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [04][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [04][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -182,7 +182,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `668034_Shuumatsu_Train_Doko_e_Iku_04_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [04][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [04][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -194,7 +194,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `668033_Shuumatsu_Train_Doko_e_Iku_04_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [04][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [04][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -206,7 +206,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `667470_Shuumatsu_Train_Doko_e_Iku_03_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [03][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [03][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -218,7 +218,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `667469_Shuumatsu_Train_Doko_e_Iku_03_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [03][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [03][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -230,7 +230,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `667468_Shuumatsu_Train_Doko_e_Iku_03_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [03][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [03][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -242,7 +242,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `666692_Shuumatsu_Train_Doko_e_Iku_02_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [02][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [02][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -254,7 +254,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `666691_Shuumatsu_Train_Doko_e_Iku_02_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [02][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [02][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -266,7 +266,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `666690_Shuumatsu_Train_Doko_e_Iku_02_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [02][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [02][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -278,7 +278,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `666212_Shuumatsu_Train_Doko_e_Iku_01v2_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [01v2][WebRip][HEVC_AAC][简繁内封]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [01v2][WebRip][HEVC_AAC][簡繁內封]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -290,7 +290,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `666211_Shuumatsu_Train_Doko_e_Iku_01v2_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [01v2][WebRip][HEVC_AAC][繁體內嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裡?/ Shuumatsu Train Doko e Iku [01v2][WebRip][HEVC_AAC][繁體內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -302,7 +302,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `666210_Shuumatsu_Train_Doko_e_Iku_01v2_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [01v2][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [01v2][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
@@ -314,7 +314,7 @@ public class PatternTitleParserTest终末列车去往何方 : PatternBasedTitleP
public fun `666067_Shuumatsu_Train_Doko_e_Iku_01_WebRip_HEVC_AAC`() {
kotlin.run {
val r =
- parse("[北宇治字幕组] 终末列车去往何方?/ 末班列车去哪里?/ Shuumatsu Train Doko e Iku [01][WebRip][HEVC_AAC][简体内嵌]")
+ parse("[北宇治字幕組] 終末列車去往何方?/ 末班列車去哪裏?/ Shuumatsu Train Doko e Iku [01][WebRip][HEVC_AAC][簡體內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("null", r.resolution.toString())
diff --git "a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\350\277\267\345\256\253\351\245\255.kt" "b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\350\277\267\345\256\253\351\245\255.kt"
index d5230cf23..e83fef0ab 100644
--- "a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\350\277\267\345\256\253\351\245\255.kt"
+++ "b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\350\277\267\345\256\253\351\245\255.kt"
@@ -36,7 +36,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `670479_1_Dungeon_Meshi_21_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【21】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【21】【GB_MP4】【1920X1080】")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -58,7 +58,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `670474_1_Dungeon_Meshi_21_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【21】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【21】【GB_MP4】【1280X720】")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -69,7 +69,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `670438_Dungeon_Meshi_20_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [20][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [20][簡體雙語][1080p]招募翻譯")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -80,7 +80,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `670199_Dungeon_Meshi_20_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [20][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [20][1080p][簡繁內封]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -102,7 +102,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `670197_Dungeon_Meshi_20_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [20][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [20][1080p][簡體內嵌]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -115,7 +115,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
fun `670092_LoliHouse_Dungeon_Meshi_Delicious_in_Dungeon___20_WebRip_1080p_HEVC_10bit_AAC_EAC3`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 20 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 20 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -139,7 +139,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
public fun `670076_01_Dungeon_Meshi_Delicious_in_Dungeon_20_1080p`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][20][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][20][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -161,7 +161,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `669907_1_Dungeon_Meshi_20_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【20】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【20】【GB_MP4】【1920X1080】")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -183,7 +183,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `669905_1_Dungeon_Meshi_20_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【20】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【20】【GB_MP4】【1280X720】")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -194,7 +194,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `669845_Dungeon_Meshi_19_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [19][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [19][簡體雙語][1080p]招募翻譯")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -205,7 +205,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `669844_Dungeon_Meshi_18_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [18][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [18][簡體雙語][1080p]招募翻譯")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -218,7 +218,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
fun `669364_LoliHouse_Dungeon_Meshi_Delicious_in_Dungeon___19v2_WebRip_1080p_HEVC_10bit_AAC_EAC3`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 19v2 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 19v2 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -242,7 +242,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
public fun `669295_01_Dungeon_Meshi_Delicious_in_Dungeon_19_1080p`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][19][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][19][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -253,7 +253,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `669290_Dungeon_Meshi_19_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [19][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [19][1080p][簡繁內封]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -275,7 +275,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `669288_Dungeon_Meshi_19_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [19][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [19][1080p][簡體內嵌]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -297,7 +297,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `669201_1_Dungeon_Meshi_19_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【19】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【19】【GB_MP4】【1920X1080】")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -319,7 +319,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `669199_1_Dungeon_Meshi_19_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【19】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【19】【GB_MP4】【1280X720】")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -330,7 +330,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `668901_Dungeon_Meshi_18_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [18][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [18][1080p][簡繁內封]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -352,7 +352,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `668899_Dungeon_Meshi_18_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [18][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [18][1080p][簡體內嵌]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -363,7 +363,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `668763_Dungeon_Meshi_17_x264_1080p_CHT`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][17][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][17][x264 1080p][CHT]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -374,7 +374,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `668762_Dungeon_Meshi_17_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][17][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][17][x264 1080p][CHS]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -387,7 +387,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
fun `668761_LoliHouse_Dungeon_Meshi_Delicious_in_Dungeon___18_WebRip_1080p_HEVC_10bit_AAC_EAC3`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 18 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 18 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -411,7 +411,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
public fun `668721_01_Dungeon_Meshi_Delicious_in_Dungeon_18_1080p`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][18][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][18][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -422,7 +422,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `668697_Dungeon_Meshi_16_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [17][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [17][簡體雙語][1080p]招募翻譯")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -444,7 +444,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `668637_1_Dungeon_Meshi_18_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【18】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【18】【GB_MP4】【1920X1080】")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -466,7 +466,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `668635_1_Dungeon_Meshi_18_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【18】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【18】【GB_MP4】【1280X720】")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -477,7 +477,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `668567_Dungeon_Meshi_17v2_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [17v2][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [17v2][1080p][簡繁內封]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -499,7 +499,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `668565_Dungeon_Meshi_17v2_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [17v2][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [17v2][1080p][簡體內嵌]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -512,7 +512,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
fun `668293_LoliHouse_Dungeon_Meshi_Delicious_in_Dungeon___17_WebRip_1080p_HEVC_10bit_AAC_EAC3`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 17 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 17 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -536,7 +536,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
public fun `668278_01_Dungeon_Meshi_Delicious_in_Dungeon_17_1080p`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][17][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][17][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -558,7 +558,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `668195_1_Dungeon_Meshi_17_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【17】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【17】【GB_MP4】【1920X1080】")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -580,7 +580,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `668190_1_Dungeon_Meshi_17_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【17】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【17】【GB_MP4】【1280X720】")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -591,7 +591,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `668183_Dungeon_Meshi_16_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [16][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [16][簡體雙語][1080p]招募翻譯")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -603,7 +603,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
public fun `668060_DBD_Raws_Dungeon_Meshi_01_06TV_BOX1_1080P_BDRip_HEVC_10bit_FLAC_MKV`() {
kotlin.run {
val r =
- parse("[DBD-Raws][迷宫饭/Dungeon Meshi/ダンジョン飯][01-06TV+特典映像][BOX1][1080P][BDRip][HEVC-10bit][FLAC][MKV]")
+ parse("[DBD-Raws][迷宮飯/Dungeon Meshi/ダンジョン飯][01-06TV+特典映像][BOX1][1080P][BDRip][HEVC-10bit][FLAC][MKV]")
assertEquals("01..06", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -614,7 +614,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `668029_Dungeon_Meshi_16_x264_1080p_CHT`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][16][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][16][x264 1080p][CHT]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -625,7 +625,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `668028_Dungeon_Meshi_16_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][16][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][16][x264 1080p][CHS]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -636,7 +636,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `667774_Dungeon_Meshi_16_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [16][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [16][1080p][簡繁內封]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -658,7 +658,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `667771_Dungeon_Meshi_16_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [16][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [16][1080p][簡體內嵌]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -671,7 +671,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
fun `667728_LoliHouse_Dungeon_Meshi_Delicious_in_Dungeon___16_WebRip_1080p_HEVC_10bit_AAC_EAC3`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 16 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 16 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -695,7 +695,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
public fun `667703_01_Dungeon_Meshi_Delicious_in_Dungeon_16_1080p`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][16][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][16][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -706,7 +706,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `667604_1_Dungeon_Meshi_16_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【16】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【16】【GB_MP4】【1920X1080】")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -739,7 +739,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `667595_1_Dungeon_Meshi_16_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【16】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【16】【GB_MP4】【1280X720】")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -750,7 +750,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `667535_Dungeon_Meshi_15_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [15][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [15][簡體雙語][1080p]招募翻譯")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -761,7 +761,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `667474_Dungeon_Meshi_15_x264_1080p_CHT`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][15][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][15][x264 1080p][CHT]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -772,7 +772,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `667473_Dungeon_Meshi_15_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][15][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][15][x264 1080p][CHS]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -783,7 +783,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `667445_Dungeon_Meshi_14_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [14][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [14][簡體雙語][1080p]招募翻譯")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -796,7 +796,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
fun `667367_LoliHouse_Dungeon_Meshi_Delicious_in_Dungeon___15_WebRip_1080p_HEVC_10bit_AAC_EAC3`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 15 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 15 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -807,7 +807,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `667249_Dungeon_Meshi_15_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [15][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [15][1080p][簡繁內封]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -829,7 +829,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `667248_Dungeon_Meshi_15_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [15][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [15][1080p][簡體內嵌]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -851,7 +851,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `667125_1_Dungeon_Meshi_06_1080P_MP4`() {
kotlin.run {
- val r = parse("[爱恋字幕社][1月新番][迷宫饭][Dungeon Meshi][06][1080P][MP4][简日双语]")
+ val r = parse("[愛戀字幕社][1月新番][迷宮飯][Dungeon Meshi][06][1080P][MP4][簡日雙語]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -875,7 +875,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
public fun `667027_01_Dungeon_Meshi_Delicious_in_Dungeon_15_1080p`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][15][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][15][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -897,7 +897,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `666937_1_Dungeon_Meshi_15_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【15】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【15】【GB_MP4】【1920X1080】")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -919,7 +919,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `666935_1_Dungeon_Meshi_15_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【15】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【15】【GB_MP4】【1280X720】")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -930,7 +930,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `666874_Dungeon_Meshi_14_x264_1080p_CHT`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][14][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][14][x264 1080p][CHT]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -941,7 +941,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `666873_Dungeon_Meshi_14_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][14][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][14][x264 1080p][CHS]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -952,7 +952,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `666871_Dungeon_Meshi_13_x264_1080p_CHT`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][13][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][13][x264 1080p][CHT]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -963,7 +963,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `666870_Dungeon_Meshi_13_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][13][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][13][x264 1080p][CHS]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -974,7 +974,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `666365_Dungeon_Meshi_14_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [14][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [14][1080p][簡繁內封]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -996,7 +996,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `666363_Dungeon_Meshi_14_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [14][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [14][1080p][簡體內嵌]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1007,7 +1007,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `666360_Dungeon_Meshi_13_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [13][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [13][簡體雙語][1080p]招募翻譯")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1020,7 +1020,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
fun `666283_LoliHouse_Dungeon_Meshi_Delicious_in_Dungeon___14_WebRip_1080p_HEVC_10bit_AAC_EAC3`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 14 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 14 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1044,7 +1044,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
public fun `666242_01_Dungeon_Meshi_Delicious_in_Dungeon_14_1080p`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][14][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][14][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1066,7 +1066,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `666135_1_Dungeon_Meshi_14_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【14】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【14】【GB_MP4】【1920X1080】")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1088,7 +1088,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `666133_1_Dungeon_Meshi_14_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【14】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【14】【GB_MP4】【1280X720】")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1099,7 +1099,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `665797_Dungeon_Meshi_12_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [12][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [12][簡體雙語][1080p]招募翻譯")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1110,7 +1110,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `665785_Dungeon_Meshi_12_x264_1080p_CHT`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][12][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][12][x264 1080p][CHT]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1121,7 +1121,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `665784_Dungeon_Meshi_12_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][12][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][12][x264 1080p][CHS]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1132,7 +1132,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `665781_Dungeon_Meshi_13_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [13][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [13][1080p][簡繁內封]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1154,7 +1154,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `665779_Dungeon_Meshi_13_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [13][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [13][1080p][簡體內嵌]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1167,7 +1167,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
fun `665756_LoliHouse_Dungeon_Meshi_Delicious_in_Dungeon___13_WebRip_1080p_HEVC_10bit_AAC_EAC3`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 13 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 13 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1191,7 +1191,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
public fun `665726_01_Dungeon_Meshi_Delicious_in_Dungeon_13_1080p`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][13][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][13][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1213,7 +1213,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `665684_1_Dungeon_Meshi_13_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【13】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【13】【GB_MP4】【1920X1080】")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1235,7 +1235,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `665682_1_Dungeon_Meshi_13_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【13】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【13】【GB_MP4】【1280X720】")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1246,7 +1246,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `665621_Dungeon_Meshi_11_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [11][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [11][簡體雙語][1080p]招募翻譯")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1268,7 +1268,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `665570_1_Dungeon_Meshi_05_1080P_MP4`() {
kotlin.run {
- val r = parse("[爱恋字幕社][1月新番][迷宫饭][Dungeon Meshi][05][1080P][MP4][简日双语]")
+ val r = parse("[愛戀字幕社][1月新番][迷宮飯][Dungeon Meshi][05][1080P][MP4][簡日雙語]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1279,7 +1279,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `665463_Dungeon_Meshi_12_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [12][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [12][1080p][簡繁內封]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1301,7 +1301,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `665460_Dungeon_Meshi_12_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [12][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [12][1080p][簡體內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1323,7 +1323,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `665345_1_Dungeon_Meshi_04_1080P_MP4`() {
kotlin.run {
- val r = parse("[爱恋字幕社][1月新番][迷宫饭][Dungeon Meshi][04][1080P][MP4][简日双语]")
+ val r = parse("[愛戀字幕社][1月新番][迷宮飯][Dungeon Meshi][04][1080P][MP4][簡日雙語]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1336,7 +1336,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
fun `665318_LoliHouse_Dungeon_Meshi_Delicious_in_Dungeon___12_WebRip_1080p_HEVC_10bit_AAC_EAC3`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 12 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 12 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1360,7 +1360,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
public fun `665310_01_Dungeon_Meshi_Delicious_in_Dungeon_12_1080p`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][12][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][12][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1382,7 +1382,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `665238_1_Dungeon_Meshi_12_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【12】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【12】【GB_MP4】【1280X720】")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1393,7 +1393,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `665237_1_Dungeon_Meshi_12_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【12】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【12】【GB_MP4】【1920X1080】")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1415,7 +1415,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `665136_Dungeon_Meshi_11_x264_1080p_CHT`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][11][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][11][x264 1080p][CHT]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1426,7 +1426,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `665135_Dungeon_Meshi_11_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][11][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][11][x264 1080p][CHS]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1437,7 +1437,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `664998_Dungeon_Meshi_11_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [11][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [11][1080p][簡繁內封]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1459,7 +1459,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `664996_Dungeon_Meshi_11_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [11][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [11][1080p][簡體內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1472,7 +1472,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
fun `664887_LoliHouse_Dungeon_Meshi_Delicious_in_Dungeon___11_WebRip_1080p_HEVC_10bit_AAC_EAC3`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 11 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 11 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1496,7 +1496,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
public fun `664885_01_Dungeon_Meshi_Delicious_in_Dungeon_11_1080p`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][11][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][11][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1518,7 +1518,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `664849_1_Dungeon_Meshi_11_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【11】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【11】【GB_MP4】【1920X1080】")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1540,7 +1540,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `664847_1_Dungeon_Meshi_11_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【11】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【11】【GB_MP4】【1280X720】")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1551,7 +1551,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `664840_Dungeon_Meshi_10_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [10][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [10][簡體雙語][1080p]招募翻譯")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1564,7 +1564,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
fun `664782_LoliHouse_Dungeon_Meshi_Delicious_in_Dungeon___10_WebRip_1080p_HEVC_10bit_AAC_EAC3`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 10 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 10 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1575,7 +1575,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `664728_Dungeon_Meshi_10_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [10][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [10][1080p][簡繁內封]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1597,7 +1597,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `664726_Dungeon_Meshi_10_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [10][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [10][1080p][簡體內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1619,7 +1619,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `664722_1_Dungeon_Meshi_03_1080P_MP4`() {
kotlin.run {
- val r = parse("[爱恋字幕社][1月新番][迷宫饭][Dungeon Meshi][03][1080P][MP4][简日双语]")
+ val r = parse("[愛戀字幕社][1月新番][迷宮飯][Dungeon Meshi][03][1080P][MP4][簡日雙語]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1630,7 +1630,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `664505_Dungeon_Meshi_10_x264_1080p_CHT`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][10][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][10][x264 1080p][CHT]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1641,7 +1641,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `664504_Dungeon_Meshi_10_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][10][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][10][x264 1080p][CHS]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1665,7 +1665,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
public fun `664468_01_Dungeon_Meshi_Delicious_in_Dungeon_10_1080p`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][10][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][10][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1687,7 +1687,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `664426_1_Dungeon_Meshi_10_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【10】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【10】【GB_MP4】【1920X1080】")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1709,7 +1709,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `664423_1_Dungeon_Meshi_10_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【10】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【10】【GB_MP4】【1280X720】")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1720,7 +1720,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `664299_Dungeon_Meshi_09_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [09][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [09][簡體雙語][1080p]招募翻譯")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1731,7 +1731,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `664298_Dungeon_Meshi_08_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [08][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [08][簡體雙語][1080p]招募翻譯")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1753,7 +1753,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `664288_1_Dungeon_Meshi_02_1080P_MP4`() {
kotlin.run {
- val r = parse("[爱恋字幕社][1月新番][迷宫饭][Dungeon Meshi][02][1080P][MP4][简日双语]")
+ val r = parse("[愛戀字幕社][1月新番][迷宮飯][Dungeon Meshi][02][1080P][MP4][簡日雙語]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1764,7 +1764,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `664165_Dungeon_Meshi_07_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [07][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [07][簡體雙語][1080p]招募翻譯")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1777,7 +1777,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
fun `664146_LoliHouse_Dungeon_Meshi_Delicious_in_Dungeon___09_WebRip_1080p_HEVC_10bit_AAC_EAC3`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 09 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 09 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1788,7 +1788,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `663992_Dungeon_Meshi_09_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [09][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [09][1080p][簡繁內封]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1810,7 +1810,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `663990_Dungeon_Meshi_09_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [09][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [09][1080p][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1821,7 +1821,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `663949_Dungeon_Meshi_09_x264_1080p_CHT`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][09][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][09][x264 1080p][CHT]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1832,7 +1832,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `663948_Dungeon_Meshi_09_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][09][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][09][x264 1080p][CHS]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1856,7 +1856,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
public fun `663877_01_Dungeon_Meshi_Delicious_in_Dungeon_09_1080p`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][09][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][09][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1878,7 +1878,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `663856_1_Dungeon_Meshi_09_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【09】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【09】【GB_MP4】【1920X1080】")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1900,7 +1900,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `663854_1_Dungeon_Meshi_09_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【09】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【09】【GB_MP4】【1280X720】")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1911,7 +1911,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `663851_Dungeon_Meshi_06_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [06][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [06][簡體雙語][1080p]招募翻譯")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1922,7 +1922,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `663602_Dungeon_Meshi_08_x264_1080p_CHT`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][08][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][08][x264 1080p][CHT]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1933,7 +1933,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `663601_Dungeon_Meshi_08_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][08][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][08][x264 1080p][CHS]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1944,7 +1944,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `663572_Dungeon_Meshi_08_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [08][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [08][1080p][簡繁內封]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1966,7 +1966,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `663570_Dungeon_Meshi_08_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [08][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [08][1080p][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1979,7 +1979,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
fun `663455_LoliHouse_Dungeon_Meshi_Delicious_in_Dungeon___08_WebRip_1080p_HEVC_10bit_AAC_EAC3`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 08 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 08 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2003,7 +2003,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
public fun `663374_01_Dungeon_Meshi_Delicious_in_Dungeon_08_1080p`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][08][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][08][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2025,7 +2025,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `663349_1_Dungeon_Meshi_08_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【08】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【08】【GB_MP4】【1920X1080】")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2047,7 +2047,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `663347_1_Dungeon_Meshi_08_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【08】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【08】【GB_MP4】【1280X720】")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2058,7 +2058,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `663133_Dungeon_Meshi_07_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][07][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][07][x264 1080p][CHS]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2069,7 +2069,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `663132_Dungeon_Meshi_07_x264_1080p_CHT`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][07][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][07][x264 1080p][CHT]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2080,7 +2080,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `663106_Dungeon_Meshi_07_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [07][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [07][1080p][簡繁內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2102,7 +2102,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `663104_Dungeon_Meshi_07_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [07][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [07][1080p][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2124,7 +2124,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `662977_1_Dungeon_Meshi_01_1080P_MP4`() {
kotlin.run {
- val r = parse("[爱恋字幕社][1月新番][迷宫饭][Dungeon Meshi][01][1080P][MP4][简日双语]")
+ val r = parse("[愛戀字幕社][1月新番][迷宮飯][Dungeon Meshi][01][1080P][MP4][簡日雙語]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2137,7 +2137,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
fun `662912_LoliHouse_Dungeon_Meshi_Delicious_in_Dungeon___07_WebRip_1080p_HEVC_10bit_AAC_EAC3`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 07 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 07 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2161,7 +2161,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
public fun `662906_01_Dungeon_Meshi_Delicious_in_Dungeon_07_1080p`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][07][1080p][简日双语][招募翻译时轴]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][07][1080p][簡日雙語][招募翻譯時軸]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2183,7 +2183,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `662861_1_Dungeon_Meshi_07_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【07】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【07】【GB_MP4】【1920X1080】")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2205,7 +2205,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `662856_1_Dungeon_Meshi_07_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【07】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【07】【GB_MP4】【1280X720】")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2216,7 +2216,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `662800_Dungeon_Meshi_06_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [06][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [06][1080p][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2238,7 +2238,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `662798_Dungeon_Meshi_06_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [06][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [06][1080p][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2249,7 +2249,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `662690_Dungeon_Meshi_06_x264_1080p_CHT`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][06][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][06][x264 1080p][CHT]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2260,7 +2260,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `662689_Dungeon_Meshi_06_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][06][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][06][x264 1080p][CHS]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2273,7 +2273,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
fun `662517_LoliHouse_Dungeon_Meshi_Delicious_in_Dungeon___06_WebRip_1080p_HEVC_10bit_AAC_EAC3`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 06 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 06 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2297,7 +2297,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
public fun `662498_01_Dungeon_Meshi_Delicious_in_Dungeon_06_1080p`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][06][1080p][简日双语][招募翻译]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][06][1080p][簡日雙語][招募翻譯]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2319,7 +2319,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `662373_1_Dungeon_Meshi_06_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【06】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【06】【GB_MP4】【1920X1080】")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2341,7 +2341,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `662370_1_Dungeon_Meshi_06_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【06】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【06】【GB_MP4】【1280X720】")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2352,7 +2352,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `662317_Dungeon_Meshi_05_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [05][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [05][簡體雙語][1080p]招募翻譯")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2363,7 +2363,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `662096_Dungeon_Meshi_05_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [05][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [05][1080p][簡繁內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2385,7 +2385,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `662094_Dungeon_Meshi_05_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [05][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [05][1080p][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2396,7 +2396,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `662083_Dungeon_Meshi_05_x264_1080p_CHT`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][05][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][05][x264 1080p][CHT]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2407,7 +2407,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `662082_Dungeon_Meshi_05_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][05][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][05][x264 1080p][CHS]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2420,7 +2420,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
fun `661962_LoliHouse_Dungeon_Meshi_Delicious_in_Dungeon___05_WebRip_1080p_HEVC_10bit_AAC_EAC3`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 05 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 05 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2444,7 +2444,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
public fun `661958_01_Dungeon_Meshi_Delicious_in_Dungeon_05_1080p`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][05][1080p][简日双语][招募翻译]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][05][1080p][簡日雙語][招募翻譯]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2477,7 +2477,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `661904_1_Dungeon_Meshi_05_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【05】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【05】【GB_MP4】【1920X1080】")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2488,7 +2488,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `661903_1_Dungeon_Meshi_05_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【05】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【05】【GB_MP4】【1280X720】")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2499,7 +2499,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `661841_Dungeon_Meshi_04_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [04][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [04][簡體雙語][1080p]招募翻譯")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2510,7 +2510,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `661672_Dungeon_Meshi_04_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [04][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [04][1080p][簡繁內封]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2532,7 +2532,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `661670_Dungeon_Meshi_04_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [04][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [04][1080p][簡體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2543,7 +2543,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `661648_Dungeon_Meshi_04_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][04][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][04][x264 1080p][CHS]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2554,7 +2554,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `661647_Dungeon_Meshi_04_x264_1080p_CHT`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][04][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][04][x264 1080p][CHT]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2567,7 +2567,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
fun `661638_LoliHouse_Dungeon_Meshi_Delicious_in_Dungeon___04v2_WebRip_1080p_HEVC_10bit_AAC_EAC3`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 04v2 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 04v2 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2580,7 +2580,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
fun `661607_LoliHouse_Dungeon_Meshi_Delicious_in_Dungeon___04_WebRip_1080p_HEVC_10bit_AAC_EAC3`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 04 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 04 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2604,7 +2604,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
public fun `661469_01_Dungeon_Meshi_Delicious_in_Dungeon_04_1080p`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][04][1080p][简日双语][招募翻译]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][04][1080p][簡日雙語][招募翻譯]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2626,7 +2626,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `661436_1_Dungeon_Meshi_04_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【04】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【04】【GB_MP4】【1920X1080】")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2648,7 +2648,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `661433_1_Dungeon_Meshi_04_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【04】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【04】【GB_MP4】【1280X720】")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2659,7 +2659,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `661307_Dungeon_Meshi_03_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [03][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [03][簡體雙語][1080p]招募翻譯")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2670,7 +2670,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `661184_Dungeon_Meshi_03_x264_1080p_CHT`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][03][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][03][x264 1080p][CHT]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2681,7 +2681,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `661183_Dungeon_Meshi_03_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][03][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][03][x264 1080p][CHS]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2692,7 +2692,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `661182_Dungeon_Meshi_02_x264_1080p_CHT`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][02][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][02][x264 1080p][CHT]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2703,7 +2703,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `661181_Dungeon_Meshi_02_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][02][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][02][x264 1080p][CHS]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2714,7 +2714,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `661164_Dungeon_Meshi_03_x264_1080p_CHT`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][03][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][03][x264 1080p][CHT]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2725,7 +2725,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `661163_Dungeon_Meshi_03_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][03][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][03][x264 1080p][CHS]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2736,7 +2736,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `661162_Dungeon_Meshi_02_x264_1080p_CHT`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][02][x264 1080p][CHT]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][02][x264 1080p][CHT]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2747,7 +2747,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `661161_Dungeon_Meshi_02_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[迷宫饭/Dungeon Meshi][02][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[迷宮飯/Dungeon Meshi][02][x264 1080p][CHS]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2758,7 +2758,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `661103_Dungeon_Meshi_03_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [03][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [03][1080p][簡繁內封]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2780,7 +2780,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `661101_Dungeon_Meshi_03_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [03][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [03][1080p][簡體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2793,7 +2793,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
fun `660921_LoliHouse_Dungeon_Meshi_Delicious_in_Dungeon___03_WebRip_1080p_HEVC_10bit_AAC_EAC3`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 03 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 03 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2817,7 +2817,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
public fun `660888_01_Dungeon_Meshi_Delicious_in_Dungeon_03_1080p`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][03][1080p][简日双语][招募翻译]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][03][1080p][簡日雙語][招募翻譯]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2839,7 +2839,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `660876_1_Dungeon_Meshi_03_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【03】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【03】【GB_MP4】【1920X1080】")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2861,7 +2861,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `660874_1_Dungeon_Meshi_03_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【03】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【03】【GB_MP4】【1280X720】")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2872,7 +2872,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `660861_Dungeon_Meshi_02_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [02][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [02][簡體雙語][1080p]招募翻譯")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2883,7 +2883,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `660760_Dungeon_Meshi_02_1080p_2024_1`() {
kotlin.run {
- val r = parse("[摆烂字幕组&猎户译制部] 迷宫饭 / Dungeon Meshi [02] [1080p] [繁日内嵌] [2024年1月番]")
+ val r = parse("[擺爛字幕組&獵戶譯製部] 迷宮飯 / Dungeon Meshi [02] [1080p] [繁日內嵌] [2024年1月番]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2894,7 +2894,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `660759_Dungeon_Meshi_02_1080p_2024_1`() {
kotlin.run {
- val r = parse("[摆烂字幕组&猎户译制部] 迷宫饭 / Dungeon Meshi [02] [1080p] [简日内嵌] [2024年1月番]")
+ val r = parse("[擺爛字幕組&獵戶譯製部] 迷宮飯 / Dungeon Meshi [02] [1080p] [簡日內嵌] [2024年1月番]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2927,7 +2927,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `660539_Dungeon_Meshi_02_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [02][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [02][1080p][簡繁內封]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2949,7 +2949,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `660537_Dungeon_Meshi_02_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [02][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [02][1080p][簡體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2960,7 +2960,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `660374_Dungeon_Meshi_01_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组] 迷宫饭 Dungeon Meshi [01][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組] 迷宮飯 Dungeon Meshi [01][簡體雙語][1080p]招募翻譯")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2973,7 +2973,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
fun `660359_LoliHouse_Dungeon_Meshi_Delicious_in_Dungeon___02_WebRip_1080p_HEVC_10bit_AAC_EAC3`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 02 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 02 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2997,7 +2997,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
public fun `660339_01_Dungeon_Meshi_Delicious_in_Dungeon_02_1080p`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][02][1080p][简日双语][招募翻译]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][02][1080p][簡日雙語][招募翻譯]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3019,7 +3019,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `660325_1_Dungeon_Meshi_02_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【02】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【02】【GB_MP4】【1920X1080】")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3041,7 +3041,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `660323_1_Dungeon_Meshi_02_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【02】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【02】【GB_MP4】【1280X720】")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3052,7 +3052,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `660128_Dungeon_Meshi_01_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("[悠哈璃羽字幕社][迷宫饭/Dungeon Meshi][01][x264 1080p][CHS]")
+ val r = parse("[悠哈璃羽字幕社][迷宮飯/Dungeon Meshi][01][x264 1080p][CHS]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3063,7 +3063,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `660127_Dungeon_Meshi_01_x264_1080p_CHT`() {
kotlin.run {
- val r = parse("[悠哈璃羽字幕社][迷宫饭/Dungeon Meshi][01][x264 1080p][CHT]")
+ val r = parse("[悠哈璃羽字幕社][迷宮飯/Dungeon Meshi][01][x264 1080p][CHT]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3074,7 +3074,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `660105_Dungeon_Meshi_01_1080p_2024_1`() {
kotlin.run {
- val r = parse("[摆烂字幕组&猎户译制部] 迷宫饭 / Dungeon Meshi [01] [1080p] [简日内嵌] [2024年1月番]")
+ val r = parse("[擺爛字幕組&獵戶譯製部] 迷宮飯 / Dungeon Meshi [01] [1080p] [簡日內嵌] [2024年1月番]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3087,7 +3087,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
fun `660004_LoliHouse_Dungeon_Meshi_Delicious_in_Dungeon___01_WebRip_1080p_HEVC_10bit_AAC_EAC3`() {
kotlin.run {
val r =
- parse("[喵萌奶茶屋&LoliHouse] 迷宫饭 / Dungeon Meshi / Delicious in Dungeon - 01 [WebRip 1080p HEVC-10bit AAC EAC3][简繁日内封字幕]")
+ parse("[喵萌奶茶屋&LoliHouse] 迷宮飯 / Dungeon Meshi / Delicious in Dungeon - 01 [WebRip 1080p HEVC-10bit AAC EAC3][簡繁日內封字幕]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3098,7 +3098,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `659971_Dungeon_Meshi_01_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [01][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [01][1080p][簡繁內封]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3120,7 +3120,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `659969_Dungeon_Meshi_01_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 迷宫饭 / Dungeon Meshi [01][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 迷宮飯 / Dungeon Meshi [01][1080p][簡體內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3142,7 +3142,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `659932_1_Dungeon_Meshi_01v2_GB_MP4_1920X1080`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【01v2】【GB_MP4】【1920X1080】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【01v2】【GB_MP4】【1920X1080】")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3164,7 +3164,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
@Test
public fun `659930_1_Dungeon_Meshi_01v2_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【1月新番】【迷宫饭 Dungeon Meshi】【01v2】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【1月新番】【迷宮飯 Dungeon Meshi】【01v2】【GB_MP4】【1280X720】")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3188,7 +3188,7 @@ public class PatternTitleParserTest迷宫饭 : PatternBasedTitleParserTestSuite(
public fun `659915_01_Dungeon_Meshi_Delicious_in_Dungeon_01_1080p`() {
kotlin.run {
val r =
- parse("【喵萌奶茶屋】★01月新番★[迷宫饭 / Dungeon Meshi / Delicious in Dungeon][01][1080p][简日双语][招募翻译]")
+ parse("【喵萌奶茶屋】★01月新番★[迷宮飯 / Dungeon Meshi / Delicious in Dungeon][01][1080p][簡日雙語][招募翻譯]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
diff --git "a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\351\227\264\350\260\215\350\277\207\345\256\266\345\256\266.kt" "b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\351\227\264\350\260\215\350\277\207\345\256\266\345\256\266.kt"
index ae7de1554..f4e7492c0 100644
--- "a/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\351\227\264\350\260\215\350\277\207\345\256\266\345\256\266.kt"
+++ "b/datasource/api/src/skikoTest/kotlin/title/generated/PatternTitleParserTest\351\227\264\350\260\215\350\277\207\345\256\266\345\256\266.kt"
@@ -35,7 +35,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `668367_DBD_Raws_Spy_x_Family_01_25TV_1080P_BDRip_HEVC_10bit_FLAC_MKV`() {
kotlin.run {
val r =
- parse("[DBD-Raws][间谍过家家/间谍家家酒/Spy x Family][01-25TV全集+特典映像][1080P][BDRip][HEVC-10bit][简繁日双语外挂][FLAC][MKV]")
+ parse("[DBD-Raws][間諜過家家/間諜家家酒/Spy x Family][01-25TV全集+特典映像][1080P][BDRip][HEVC-10bit][簡繁日雙語外掛][FLAC][MKV]")
assertEquals("01..25", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -46,7 +46,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `663342_Spy_x_Family_S2_01_12_1080P_MP4`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][间谍过家家 第二季][Spy x Family S2][01-12][1080P][MP4][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][間諜過家家 第二季][Spy x Family S2][01-12][1080P][MP4][簡中]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -57,7 +57,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `662721_Spy_x_Family_S2_26_37_WebRip_1080p_2023_10`() {
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [26-37] [WebRip] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [26-37] [WebRip] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("26..37", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -68,7 +68,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `662719_Season_02_Spy_x_Family_Season_2_01_12_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 02 / Spy x Family Season 2 [01-12][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 02 / Spy x Family Season 2 [01-12][1080p][簡體內嵌]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -79,7 +79,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `662718_Season_2_Spy_x_Family_Season_2_01_12_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [01-12][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [01-12][1080p][簡繁內封]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -91,7 +91,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `662342_jibaketa_SPY_FAMILY_Season_2___12_END_WEB_1920x1080_AVC_AACx2_SRT_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家Season 2 - 12 END [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRT MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家Season 2 - 12 END [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRT MUSE CHT)")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -103,7 +103,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `662341_jibaketa_SPY_FAMILY_Season_2___11_WEB_1920x1080_AVC_AACx2_SRT_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家Season 2 - 11 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRT MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家Season 2 - 11 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRT MUSE CHT)")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -115,7 +115,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `662340_jibaketa_SPY_FAMILY_Season_2___10_WEB_1920x1080_AVC_AACx2_SRT_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家Season 2 - 10 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRT MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家Season 2 - 10 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRT MUSE CHT)")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -127,7 +127,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `660443_jibaketa_SPY_FAMILY_Season_2___09_WEB_1920x1080_AVC_AACx2_SRT_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家Season 2 - 09 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRT MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家Season 2 - 09 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRT MUSE CHT)")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -139,7 +139,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `660442_jibaketa_SPY_FAMILY_Season_2___08_WEB_1920x1080_AVC_AACx2_SRT_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家Season 2 - 08 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRT MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家Season 2 - 08 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRT MUSE CHT)")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -151,7 +151,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `660441_jibaketa_SPY_FAMILY_Season_2___07_WEB_1920x1080_AVC_AACx2_SRT_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家Season 2 - 07 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRT MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家Season 2 - 07 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRT MUSE CHT)")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -173,7 +173,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `659912_10_SPYxFAMILY_37_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家 / 间谍家家酒 / SPYxFAMILY][37][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家 / 間諜家家酒 / SPYxFAMILY][37][1080p][簡日雙語][招募翻譯]")
assertEquals("37..37", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -195,7 +195,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `659910_10_SPYxFAMILY_36_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家 / 间谍家家酒 / SPYxFAMILY][36][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家 / 間諜家家酒 / SPYxFAMILY][36][1080p][簡日雙語][招募翻譯]")
assertEquals("36..36", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -206,7 +206,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `659841_10_Spy_x_Family_S2_12_1080P_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家 第二季][Spy x Family S2][12][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家 第二季][Spy x Family S2][12][1080P][MP4][GB][簡中]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -217,7 +217,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `659839_10_Spy_x_Family_S2_11_1080P_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家 第二季][Spy x Family S2][11][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家 第二季][Spy x Family S2][11][1080P][MP4][GB][簡中]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -228,7 +228,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `659665_Spy_x_Family_S2_37_END_1080p_2023_10`() {
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [37] [END] [1080p] [繁日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [37] [END] [1080p] [繁日內嵌] [2023年10月番]")
assertEquals("37..37", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -239,7 +239,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `659663_Spy_x_Family_S2_37_END_1080p_2023_10`() {
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [37] [END] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [37] [END] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("37..37", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -250,7 +250,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `659552_Spy_x_Family_Season_2_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家第二季Spy x Family Season 2[合集][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家第二季Spy x Family Season 2[合集][簡體雙語][1080p]招募翻譯")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -261,7 +261,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `659551_Spy_x_Family_37_END_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 第二季 Spy x Family [37][END][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 第二季 Spy x Family [37][END][簡體雙語][1080p]招募翻譯")
assertEquals("37..37", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -272,7 +272,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `659338_Season_2_Spy_x_Family_Season_2_12_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [12][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [12][1080p][簡繁內封]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -283,7 +283,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `659336_Season_2_Spy_x_Family_Season_2_12_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [12][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [12][1080p][簡體內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -294,7 +294,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `659300_Spy_x_Family_36_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 第二季 Spy x Family [36][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 第二季 Spy x Family [36][簡體雙語][1080p]招募翻譯")
assertEquals("36..36", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -316,7 +316,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `659203_10_SPYxFAMILY_35_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家 / 间谍家家酒 / SPYxFAMILY][35][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家 / 間諜家家酒 / SPYxFAMILY][35][1080p][簡日雙語][招募翻譯]")
assertEquals("35..35", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -327,7 +327,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `659161_Spy_x_Family_S2_36_1080p_2023_10`() {
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [36] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [36] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("36..36", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -339,7 +339,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `659143_jibaketa_SPY_FAMILY_Season_2___06_WEB_1920x1080_AVC_AACx2_SRTx2_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家Season 2 - 06 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家Season 2 - 06 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -351,7 +351,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `659142_jibaketa_SPY_FAMILY_Season_2___05_WEB_1920x1080_AVC_AACx2_SRTx2_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家Season 2 - 05 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家Season 2 - 05 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -363,7 +363,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `659141_jibaketa_SPY_FAMILY_Season_2___04_WEB_1920x1080_AVC_AACx2_SRTx2_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家Season 2 - 04 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家Season 2 - 04 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -374,7 +374,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `659005_Spy_x_Family_35_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 第二季 Spy x Family [35][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 第二季 Spy x Family [35][簡體雙語][1080p]招募翻譯")
assertEquals("35..35", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -385,7 +385,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `658897_10_Spy_x_Family_S2_10_1080P_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家 第二季][Spy x Family S2][10][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家 第二季][Spy x Family S2][10][1080P][MP4][GB][簡中]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -396,7 +396,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `658895_10_Spy_x_Family_S2_09_1080P_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家 第二季][Spy x Family S2][09][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家 第二季][Spy x Family S2][09][1080P][MP4][GB][簡中]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -407,7 +407,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `658893_10_Spy_x_Family_S2_08_1080P_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家 第二季][Spy x Family S2][08][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家 第二季][Spy x Family S2][08][1080P][MP4][GB][簡中]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -418,7 +418,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `658891_10_Spy_x_Family_S2_07_1080P_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家 第二季][Spy x Family S2][07][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家 第二季][Spy x Family S2][07][1080P][MP4][GB][簡中]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -429,7 +429,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `658814_Season_2_Spy_x_Family_Season_2_11_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [11][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [11][1080p][簡繁內封]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -440,7 +440,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `658812_Season_2_Spy_x_Family_Season_2_11_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [11][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [11][1080p][簡體內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -462,7 +462,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `658611_Spy_x_Family_S2_35_1080p_2023_10`() {
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [35] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [35] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("35..35", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -473,7 +473,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `658609_Spy_x_Family_S2_34_1080p_2023_10`() {
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [34] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [34] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("34..34", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -484,7 +484,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `658570_Spy_x_Family_34_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 第二季 Spy x Family [34][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 第二季 Spy x Family [34][簡體雙語][1080p]招募翻譯")
assertEquals("34..34", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -506,7 +506,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `658234_Season_2_Spy_x_Family_Season_2_10_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [10][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [10][1080p][簡體內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -517,7 +517,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `658233_Season_2_Spy_x_Family_Season_2_10_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [10][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [10][1080p][簡繁內封]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -528,7 +528,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `658173_10_SPYxFAMILY_34_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家 / 间谍家家酒 / SPYxFAMILY][34][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家 / 間諜家家酒 / SPYxFAMILY][34][1080p][簡日雙語][招募翻譯]")
assertEquals("34..34", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -539,7 +539,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `657725_Spy_x_Family_33_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 第二季 Spy x Family [33][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 第二季 Spy x Family [33][簡體雙語][1080p]招募翻譯")
assertEquals("33..33", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -550,7 +550,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `657619_10_SPYxFAMILY_33_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家 / 间谍家家酒 / SPYxFAMILY][33][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家 / 間諜家家酒 / SPYxFAMILY][33][1080p][簡日雙語][招募翻譯]")
assertEquals("33..33", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -561,7 +561,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `657495_Season_2_Spy_x_Family_Season_2_09_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [09][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [09][1080p][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -572,7 +572,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `657493_Season_2_Spy_x_Family_Season_2_09_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [09][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [09][1080p][簡繁內封]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -594,7 +594,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `657441_10_SPYxFAMILY_32_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家 / 间谍家家酒 / SPYxFAMILY][32][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家 / 間諜家家酒 / SPYxFAMILY][32][1080p][簡日雙語][招募翻譯]")
assertEquals("32..32", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -605,7 +605,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `657398_Spy_x_Family_S2_33_1080p_2023_10`() {
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [33] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [33] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("33..33", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -616,7 +616,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `657394_Spy_x_Family_S2_32_1080p_2023_10`() {
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [32] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [32] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("32..32", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -628,7 +628,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `657336_jibaketa_SPY_FAMILY_Season_2___03_WEB_1920x1080_AVC_AACx2_SRTx2_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家Season 2 - 03 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家Season 2 - 03 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -640,7 +640,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `657335_jibaketa_SPY_FAMILY_Season_2___02_WEB_1920x1080_AVC_AACx2_SRTx2_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家Season 2 - 02 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家Season 2 - 02 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -652,7 +652,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `657333_jibaketa_SPY_FAMILY_Season_2___01_WEB_1920x1080_AVC_AACx2_SRTx2_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家Season 2 - 01 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家Season 2 - 01 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -663,7 +663,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `657201_Season_2_Spy_x_Family_Season_2_08_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [08][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [08][1080p][簡繁內封]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -674,7 +674,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `657199_Season_2_Spy_x_Family_Season_2_08_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [08][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [08][1080p][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -685,7 +685,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `657099_Spy_x_Family_32_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 第二季 Spy x Family [32][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 第二季 Spy x Family [32][簡體雙語][1080p]招募翻譯")
assertEquals("32..32", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -707,7 +707,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `657048_10_SPYxFAMILY_31_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家 / 间谍家家酒 / SPYxFAMILY][31][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家 / 間諜家家酒 / SPYxFAMILY][31][1080p][簡日雙語][招募翻譯]")
assertEquals("31..31", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -729,7 +729,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `656783_Season_2_Spy_x_Family_Season_2_07_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [07][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [07][1080p][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -740,7 +740,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `656782_Season_2_Spy_x_Family_Season_2_07_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [07][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [07][1080p][簡繁內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -751,7 +751,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `656776_10_SPYxFAMILY_30_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家 / 间谍家家酒 / SPYxFAMILY][30][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家 / 間諜家家酒 / SPYxFAMILY][30][1080p][簡日雙語][招募翻譯]")
assertEquals("30..30", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -762,7 +762,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `656710_Spy_x_Family_31_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 第二季 Spy x Family [31][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 第二季 Spy x Family [31][簡體雙語][1080p]招募翻譯")
assertEquals("31..31", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -773,7 +773,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `656617_10_Spy_x_Family_S2_06_1080P_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家 第二季][Spy x Family S2][06][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家 第二季][Spy x Family S2][06][1080P][MP4][GB][簡中]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -784,7 +784,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `656615_10_Spy_x_Family_S2_05_1080P_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家 第二季][Spy x Family S2][05][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家 第二季][Spy x Family S2][05][1080P][MP4][GB][簡中]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -795,7 +795,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `656612_10_Spy_x_Family_S2_04_1080P_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家 第二季][Spy x Family S2][04][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家 第二季][Spy x Family S2][04][1080P][MP4][GB][簡中]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -806,7 +806,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `656527_Spy_x_Family_S2_31_1080p_2023_10`() {
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [31] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [31] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("31..31", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -817,7 +817,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `656196_Season_2_Spy_x_Family_Season_2_06_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [06][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [06][1080p][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -828,7 +828,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `656195_Season_2_Spy_x_Family_Season_2_06_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [06][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [06][1080p][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -850,7 +850,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `656017_Spy_x_Family_30_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 第二季 Spy x Family [30][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 第二季 Spy x Family [30][簡體雙語][1080p]招募翻譯")
assertEquals("30..30", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -861,7 +861,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `656015_Spy_x_Family_Season_3_01_AVC_8bit_1080P_CHS_JPN`() {
kotlin.run {
- val r = parse("[织梦字幕组] 间谍过家家 第二季 Spy x Family Season 2 [01] [AVC-8bit 1080P] [CHT&JPN]")
+ val r = parse("[織夢字幕組] 間諜過家家 第二季 Spy x Family Season 2 [01] [AVC-8bit 1080P] [CHT&JPN]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -872,7 +872,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `656014_Spy_x_Family_Season_2_01_AVC_8bit_1080P_CHS_JPN`() {
kotlin.run {
- val r = parse("[织梦字幕组] 间谍过家家 第二季 Spy x Family Season 2 [01] [AVC-8bit 1080P] [CHS&JPN]")
+ val r = parse("[織夢字幕組] 間諜過家家 第二季 Spy x Family Season 2 [01] [AVC-8bit 1080P] [CHS&JPN]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -883,7 +883,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `656013_Spy_x_Family_Season_2_01_AVC_8bit_1080P_CHT_JPN`() {
kotlin.run {
- val r = parse("[织梦字幕组] 间谍过家家 第二季 Spy x Family Season 2 [01] [AVC-8bit 720P] [CHT&JPN]")
+ val r = parse("[織夢字幕組] 間諜過家家 第二季 Spy x Family Season 2 [01] [AVC-8bit 720P] [CHT&JPN]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -894,7 +894,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `656012_Spy_x_Family_Season_2_01_AVC_8bit_720P_CHS_JPN`() {
kotlin.run {
- val r = parse("[织梦字幕组] 间谍过家家 第二季 Spy x Family Season 2 [01] [AVC-8bit 720P] [CHS&JPN]")
+ val r = parse("[織夢字幕組] 間諜過家家 第二季 Spy x Family Season 2 [01] [AVC-8bit 720P] [CHS&JPN]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -905,7 +905,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `655931_10_SPYxFAMILY_29_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家 / 间谍家家酒 / SPYxFAMILY][29][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家 / 間諜家家酒 / SPYxFAMILY][29][1080p][簡日雙語][招募翻譯]")
assertEquals("29..29", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -916,7 +916,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `655899_Spy_x_Family_S2_30_1080p_2023_10`() {
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [30] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [30] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("30..30", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -927,7 +927,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `655770_Season_2_Spy_x_Family_Season_2_05_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [05][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [05][1080p][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -938,7 +938,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `655769_Season_2_Spy_x_Family_Season_2_05_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [05][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [05][1080p][簡繁內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -950,7 +950,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `655719_LoliHouse_Spy_x_Family___29_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 29 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 29 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("29..29", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -961,7 +961,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `655705_10_SPY_FAMILY_29_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][29][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★10月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][29][1080P][簡體][MP4]")
assertEquals("29..29", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -983,7 +983,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `655703_10_SPY_FAMILY_29_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][29][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★10月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][29][720P][簡體][MP4]")
assertEquals("29..29", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1005,7 +1005,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `655505_Spy_x_Family_29_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 第二季 Spy x Family [29][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 第二季 Spy x Family [29][簡體雙語][1080p]招募翻譯")
assertEquals("29..29", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1016,7 +1016,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `655390_Spy_x_Family_S2_29_1080p_2023_10`() {
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [29] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [29] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("29..29", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1027,7 +1027,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `655247_Season_2_Spy_x_Family_Season_2_04_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [04][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [04][1080p][簡體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1038,7 +1038,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `655245_Season_2_Spy_x_Family_Season_2_04_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [04][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [04][1080p][簡繁內封]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1049,7 +1049,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `655206_Spy_x_Family_28_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 第二季 Spy x Family [28][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 第二季 Spy x Family [28][簡體雙語][1080p]招募翻譯")
assertEquals("28..28", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1096,7 +1096,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `654778_Spy_x_Family_S2_28_1080p_2023_10`() {
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [28] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [28] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("28..28", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1107,7 +1107,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `654761_10_SPYxFAMILY_28_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家 / 间谍家家酒 / SPYxFAMILY][28][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家 / 間諜家家酒 / SPYxFAMILY][28][1080p][簡日雙語][招募翻譯]")
assertEquals("28..28", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1118,7 +1118,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `654749_10_Spy_x_Family_S2_03_1080P_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家 第二季][Spy x Family S2][03][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家 第二季][Spy x Family S2][03][1080P][MP4][GB][簡中]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1129,7 +1129,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `654747_10_Spy_x_Family_S2_02_1080P_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家 第二季][Spy x Family S2][02][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家 第二季][Spy x Family S2][02][1080P][MP4][GB][簡中]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1141,7 +1141,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `654616_LoliHouse_Spy_x_Family___28_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 28 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 28 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("28..28", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1152,7 +1152,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `654610_10_SPY_FAMILY_28_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][28][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★10月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][28][1080P][簡體][MP4]")
assertEquals("28..28", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1174,7 +1174,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `654608_10_SPY_FAMILY_28_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][28][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★10月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][28][720P][簡體][MP4]")
assertEquals("28..28", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1196,7 +1196,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `654522_Season_2_Spy_x_Family_Season_2_03_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [03][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [03][1080p][簡體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1207,7 +1207,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `654521_Season_2_Spy_x_Family_Season_2_03_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [03][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [03][1080p][簡繁內封]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1218,7 +1218,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `654423_Spy_x_Family_27_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 第二季 Spy x Family [27][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 第二季 Spy x Family [27][簡體雙語][1080p]招募翻譯")
assertEquals("27..27", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1254,7 +1254,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `654160_Spy_x_Family_S2_27_1080p_2023_10`() {
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [27] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [27] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("27..27", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1266,7 +1266,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `653998_LoliHouse_Spy_x_Family___27_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 27 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 27 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("27..27", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1288,7 +1288,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `653947_Spy_x_Family_S2_26_1080p_2023_10`() {
kotlin.run {
- val r = parse("[猎户压制部] 间谍过家家 第二季 / Spy x Family S2 [26] [1080p] [简日内嵌] [2023年10月番]")
+ val r = parse("[獵戶壓制部] 間諜過家家 第二季 / Spy x Family S2 [26] [1080p] [簡日內嵌] [2023年10月番]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1299,7 +1299,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `653933_10_SPY_FAMILY_27_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][27][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★10月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][27][1080P][簡體][MP4]")
assertEquals("27..27", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1321,7 +1321,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `653931_10_SPY_FAMILY_27_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][27][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★10月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][27][720P][簡體][MP4]")
assertEquals("27..27", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1343,7 +1343,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `653891_10_SPYxFAMILY_27_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家 / 间谍家家酒 / SPYxFAMILY][27][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家 / 間諜家家酒 / SPYxFAMILY][27][1080p][簡日雙語][招募翻譯]")
assertEquals("27..27", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1354,7 +1354,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `653882_Season_2_Spy_x_Family_Season_2_02_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [02][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [02][1080p][簡繁內封]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1365,7 +1365,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `653881_Season_2_Spy_x_Family_Season_2_02_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [02][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [02][1080p][簡體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1387,7 +1387,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `653773_10_SPYxFAMILY_26_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家 / 间谍家家酒 / SPYxFAMILY][26][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家 / 間諜家家酒 / SPYxFAMILY][26][1080p][簡日雙語][招募翻譯]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1398,7 +1398,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `653717_Spy_x_Family_26_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 第二季 Spy x Family [26][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 第二季 Spy x Family [26][簡體雙語][1080p]招募翻譯")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1435,7 +1435,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `653480_LoliHouse_Spy_x_Family___26_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 26 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 26 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1446,7 +1446,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `653380_10_Spy_x_Family_S2_01_1080P_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family S2][01][1080P][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family S2][01][1080P][MP4][GB][簡中]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1457,7 +1457,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `653362_10_SPY_FAMILY_26_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][26][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★10月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][26][1080P][簡體][MP4]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1479,7 +1479,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `653360_10_SPY_FAMILY_26_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★10月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][26][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★10月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][26][720P][簡體][MP4]")
assertEquals("26..26", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1501,7 +1501,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `653278_Season_2_Spy_x_Family_Season_2_01_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [01][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [01][1080p][簡體內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1512,7 +1512,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `653277_Season_2_Spy_x_Family_Season_2_01_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 Season 2 / Spy x Family Season 2 [01][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 Season 2 / Spy x Family Season 2 [01][1080p][簡繁內封]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1570,7 +1570,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `645089_SPY_FAMILY_BD_RIP_13_25_1080P_AVC`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][BD-RIP][下卷][13-25集][1080P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][BD-RIP][下卷][13-25集][1080P][AVC][簡日雙語]")
assertEquals("13..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1581,7 +1581,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `645088_SPY_FAMILY_BD_RIP_13_25_720P_AVC`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][BD-RIP][下卷][13-25集][720P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][BD-RIP][下卷][13-25集][720P][AVC][簡日雙語]")
assertEquals("13..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1593,7 +1593,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `642385_jibaketa_SPY_FAMILY___S1_BD_1920x1080_x264_AACx2_PGS_SRT_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成&壓制][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - S1 [粵日雙語+內封繁體中文字幕] (BD 1920x1080 x264 AACx2 PGS+SRT MUSE CHT)")
+ parse("[jibaketa合成&壓制][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - S1 [粵日雙語+內封繁體中文字幕] (BD 1920x1080 x264 AACx2 PGS+SRT MUSE CHT)")
assertEquals("S1", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1605,7 +1605,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `642236_7_ACG_SPY_FAMILY_S01_01_25_BDrip_1080p_x265_FLAC_2_0_repack`() {
kotlin.run {
val r =
- parse("[桜都字幕组&7³ACG] 间谍过家家/间谍家家酒/スパイファミリー/SPY×FAMILY S01 | 01-25 [简繁字幕] BDrip 1080p x265 FLAC 2.0 (repack)")
+ parse("[桜都字幕組&7³ACG] 間諜過家家/間諜家家酒/スパイファミリー/SPY×FAMILY S01 | 01-25 [簡繁字幕] BDrip 1080p x265 FLAC 2.0 (repack)")
assertEquals("01..25", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1616,7 +1616,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `642000_DDD_SPY_FAMILY_BDrip_1080p_HEVC_FLAC_10bits`() {
kotlin.run {
- val r = parse("[DDD] SPY×FAMILY 间谍过家家 [BDrip 1080p HEVC FLAC][10bits]")
+ val r = parse("[DDD] SPY×FAMILY 間諜過家家 [BDrip 1080p HEVC FLAC][10bits]")
assertEquals("S?", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1628,7 +1628,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `630310_jibaketa_SPY_FAMILY___25_END_WEB_1920x1080_AVC_AACx2_SRTx2_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 25 END [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 25 END [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1640,7 +1640,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `630307_jibaketa_SPY_FAMILY___24_WEB_1920x1080_AVC_AACx2_SRTx2_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 24 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 24 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1651,7 +1651,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `630259_10_SPY_FAMILY_23_GB_MP4_720P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【23】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【23】GB MP4_720P")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1662,7 +1662,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `630256_10_SPY_FAMILY_23_GB_MP4_1080P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【23】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【23】GB MP4_1080P")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1674,7 +1674,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `628569_jibaketa_SPY_FAMILY___23_WEB_1920x1080_AVC_AACx2_SRTx2_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 23 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 23 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1686,7 +1686,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `628568_jibaketa_SPY_FAMILY___22_WEB_1920x1080_AVC_AACx2_SRTx2_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 22 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 22 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1698,7 +1698,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `628511_LoliHouse_Spy_x_Family_01_25_WebRip_1080p_HEVC_10bit_AAC_Fin`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 [01-25 精校合集][WebRip 1080p HEVC-10bit AAC][简繁外挂字幕][Fin]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 [01-25 精校合集][WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕][Fin]")
assertEquals("01..25", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1709,7 +1709,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `628311_04_SPY_FAMILY_01_25_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][01-25(全集)][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][01-25(全集)][1080P][簡體][MP4]")
assertEquals("01..25", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1731,7 +1731,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `628309_04_SPY_FAMILY_01_25_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][01-25(全集)][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][01-25(全集)][720P][簡體][MP4]")
assertEquals("01..25", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1753,7 +1753,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `628280_04_SPY_FAMILY_22_25_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][22-25][1080P][简体][MP4](第一季完)")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][22-25][1080P][簡體][MP4](第一季完)")
assertEquals("22..25", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1775,7 +1775,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `628278_04_SPY_FAMILY_22_25_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][22-25][720P][简体][MP4](第一季完)")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][22-25][720P][簡體][MP4](第一季完)")
assertEquals("22..25", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1797,7 +1797,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `627230_Spy_x_Family_25_1080P_WEBrip_MP4`() {
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][25][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][25][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1808,7 +1808,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `627017_10_SPY_FAMILY_22_GB_MP4_720P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【22】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【22】GB MP4_720P")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1819,7 +1819,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `627016_10_SPY_FAMILY_22_GB_MP4_1080P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【22】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【22】GB MP4_1080P")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1830,7 +1830,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `627000_Spy_x_Family_1_25_Fin_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [1-25 Fin][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [1-25 Fin][1080p][簡體內嵌]")
assertEquals("01..25", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1841,7 +1841,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `626999_Spy_x_Family_1_25_Fin_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [1-25 Fin][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [1-25 Fin][1080p][簡繁內封]")
assertEquals("01..25", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1863,7 +1863,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `626997_10_SPYxFAMILY_13_25_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][13-25][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][13-25][1080p][簡日雙語][招募翻譯]")
assertEquals("13..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1885,7 +1885,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `626993_10_SPYxFAMILY_13_25_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][13-25][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][13-25][720p][簡日雙語][招募翻譯]")
assertEquals("13..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -1896,7 +1896,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `626915_404_24_1080P_WebRip_AVC_AAC_MP4`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][24][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][24][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1908,7 +1908,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `626910_jibaketa_SPY_FAMILY___21_WEB_1920x1080_AVC_AACx2_SRTx2_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 21 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 21 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1920,7 +1920,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `626908_jibaketa_SPY_FAMILY___20_WEB_1920x1080_AVC_AACx2_SRTx2_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 20 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 20 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1932,7 +1932,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `626907_jibaketa_SPY_FAMILY___19_WEB_1920x1080_AVC_AACx2_SRTx2_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 19 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 19 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1943,7 +1943,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `626664_Spy_x_Family_13_25_Fin_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [13-25 Fin][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [13-25 Fin][1080p][簡體內嵌]")
assertEquals("13..25", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1954,7 +1954,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `626660_Spy_x_Family_13_25_Fin_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [13-25 Fin][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [13-25 Fin][1080p][簡繁內封]")
assertEquals("13..25", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1976,7 +1976,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `626318_10_SPYxFAMILY_25_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][25][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][25][1080p][簡日雙語][招募翻譯]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -1998,7 +1998,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `626316_10_SPYxFAMILY_25_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][25][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][25][720p][簡日雙語][招募翻譯]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2009,7 +2009,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `626136_SPY_FAMILY_25_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [25话合集][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [25話合集][簡體雙語][1080p]招募翻譯")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2020,7 +2020,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `626134_SPY_FAMILY_25_END_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [25][END][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [25][END][簡體雙語][1080p]招募時軸後期")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2042,7 +2042,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `626054_10_SPYxFAMILY_24_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][24][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][24][1080p][簡日雙語][招募翻譯]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2064,7 +2064,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `626052_10_SPYxFAMILY_24_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][24][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][24][720p][簡日雙語][招募翻譯]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2075,7 +2075,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `626027_Spy_x_Family_24_1080P_WEBrip_MP4`() {
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][24][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][24][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2086,7 +2086,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `625972_10_SPY_FAMILY_21_GB_MP4_720P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【21】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【21】GB MP4_720P")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2097,7 +2097,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `625971_10_SPY_FAMILY_21_GB_MP4_1080P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【21】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【21】GB MP4_1080P")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2133,7 +2133,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `625943_Studio_10_SPY_FAMILY_Part_2_25_END_1080p_HEVC_GB_MP4`() {
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][25][END][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][25][END][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2145,7 +2145,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `625942_Studio_10_SPY_FAMILY_Part_2_25_END_1080p_AVC_GB_MP4`() {
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][25][END][1080p][AVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][25][END][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2156,7 +2156,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `625936_Spy_x_Family_25_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [25][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [25][1080p][簡體內嵌]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2167,7 +2167,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `625935_Spy_x_Family_25_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [25][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [25][1080p][簡繁內封]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2178,7 +2178,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `625863_10_Spy_x_Family_13_25_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][13-25][1080p][MP4][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][13-25][1080p][MP4][簡中]")
assertEquals("13..25", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2189,7 +2189,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `625807_Spy_x_Family_25_END_1080p_2022_10`() {
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [25] [END] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [25] [END] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2200,7 +2200,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `625805_10_Spy_x_Family_25_1080p_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][25][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][25][1080p][MP4][GB][簡中]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2211,7 +2211,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `625727_SPY_FAMILY_24_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [24][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [24][簡體雙語][1080p]招募時軸後期")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2222,7 +2222,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `625726_SPY_FAMILY_23_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [23][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [23][簡體雙語][1080p]招募時軸後期")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2255,7 +2255,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `625642_SPY_FAMILY_25___END_1080P_AVC`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][25集 - END][1080P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][25集 - END][1080P][AVC][簡日雙語]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2266,7 +2266,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `625641_SPY_FAMILY_25___END_720P_AVC`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][25集 - END][720P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][25集 - END][720P][AVC][簡日雙語]")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2299,7 +2299,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `625474_NC_Raws_SPY_FAMILY___25_CR_1920x1080_AVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 25 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 25 (CR 1920x1080 AVC AAC MKV)")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2310,7 +2310,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `625432_NC_Raws_SPY_FAMILY___25_B_Global_3840x2160_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 25 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 25 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("25..25", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -2321,7 +2321,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `625354_10_SPYxFAMILY_23_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][23][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][23][1080p][簡日雙語][招募翻譯]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2332,7 +2332,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `625353_10_SPYxFAMILY_23_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][23][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][23][720p][簡日雙語][招募翻譯]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2343,7 +2343,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `625292_10_Spy_x_Family_24_1080p_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][24][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][24][1080p][MP4][GB][簡中]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2354,7 +2354,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `625270_Spy_x_Family_23_1080P_WEBrip_MP4`() {
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][23][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][23][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2365,7 +2365,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `625137_Spy_x_Family_24_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [24][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [24][1080p][簡體內嵌]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2376,7 +2376,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `625136_Spy_x_Family_24_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [24][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [24][1080p][簡繁內封]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2387,7 +2387,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `625111_404_23_1080P_WebRip_AVC_AAC_MP4`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][23][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][23][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2398,7 +2398,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `624994_Spy_x_Family_24_1080p_2022_10`() {
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [24] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [24] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2434,7 +2434,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `624948_Studio_10_SPY_FAMILY_Part_2_24_1080p_HEVC_GB_MP4`() {
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][24][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][24][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2445,7 +2445,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `624947_Studio_10_SPY_FAMILY_Part_2_24_1080p_AVC_GB_MP4`() {
kotlin.run {
- val r = parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][24][1080p][AVC][GB][MP4][招募翻译校对]")
+ val r = parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][24][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2478,7 +2478,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `624824_SPY_FAMILY_24_1080P_AVC`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][24集][1080P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][24集][1080P][AVC][簡日雙語]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2489,7 +2489,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `624823_SPY_FAMILY_24_720P_AVC`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][24集][720P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][24集][720P][AVC][簡日雙語]")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2500,7 +2500,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `624757_NC_Raws_SPY_FAMILY___24_CR_1920x1080_AVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 24 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 24 (CR 1920x1080 AVC AAC MKV)")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2511,7 +2511,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `624722_NC_Raws_SPY_FAMILY___24_B_Global_3840x2160_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 24 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 24 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("24..24", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -2523,7 +2523,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `624664_jibaketa_SPY_FAMILY___18_WEB_1920x1080_AVC_AACx2_SRTx2_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 18 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 18 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2535,7 +2535,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `624662_jibaketa_SPY_FAMILY___17_WEB_1920x1080_AVC_AACx2_SRTx2_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 17 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 17 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2547,7 +2547,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `624646_jibaketa_SPY_FAMILY___16_WEB_1920x1080_AVC_AACx2_SRTx2_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 16 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 16 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2558,7 +2558,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `624593_SPY_FAMILY_22_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [22][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [22][簡體雙語][1080p]招募時軸後期")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2580,7 +2580,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `624557_10_SPY_FAMILY_20_22_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻櫻字幕組】【10月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【20-22】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【10月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【20-22】【GB_MP4】【1280X720】")
assertEquals("20..22", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2591,7 +2591,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `624553_Spy_x_Family_22_1080P_WEBrip_MP4`() {
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][22][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][22][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2602,7 +2602,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `624503_404_22_1080P_WebRip_AVC_AAC_MP4`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][22][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][22][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2614,7 +2614,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `624444_LoliHouse_Spy_x_Family___21_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 21 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 21 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2626,7 +2626,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `624443_LoliHouse_Spy_x_Family___20_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 20 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 20 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2637,7 +2637,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `624411_10_Spy_x_Family_23_1080p_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][23][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][23][1080p][MP4][GB][簡中]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2648,7 +2648,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `624370_04_SPY_FAMILY_21_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][21][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][21][1080P][簡體][MP4]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2670,7 +2670,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `624368_04_SPY_FAMILY_21_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][21][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][21][720P][簡體][MP4]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2692,7 +2692,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `624337_Spy_x_Family_23_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [23][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [23][1080p][簡體內嵌]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2703,7 +2703,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `624335_Spy_x_Family_23_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [23][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [23][1080p][簡繁內封]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2714,7 +2714,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `624315_Spy_x_Family_23_1080p_2022_10`() {
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [23] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [23] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2750,7 +2750,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `624220_Studio_10_SPY_FAMILY_Part_2_23_1080p_HEVC_GB_MP4`() {
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][23][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][23][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2761,7 +2761,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `624219_Studio_10_SPY_FAMILY_Part_2_23_1080p_AVC_GB_MP4`() {
kotlin.run {
- val r = parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][23][1080p][AVC][GB][MP4][招募翻译校对]")
+ val r = parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][23][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2794,7 +2794,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `624047_SPY_FAMILY_23_1080P_AVC`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][23集][1080P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][23集][1080P][AVC][簡日雙語]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2805,7 +2805,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `624046_SPY_FAMILY_23_720P_AVC`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][23集][720P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][23集][720P][AVC][簡日雙語]")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2816,7 +2816,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `623999_NC_Raws_SPY_FAMILY___23_CR_1920x1080_AVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 23 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 23 (CR 1920x1080 AVC AAC MKV)")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2827,7 +2827,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `623968_NC_Raws_SPY_FAMILY___23_B_Global_3840x2160_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 23 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 23 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("23..23", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -2860,7 +2860,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `623872_10_SPYxFAMILY_22_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][22][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][22][1080p][簡日雙語][招募翻譯]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2871,7 +2871,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `623871_10_SPYxFAMILY_22_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][22][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][22][720p][簡日雙語][招募翻譯]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2882,7 +2882,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `623849_SPY_FAMILY_21_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [21][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [21][簡體雙語][1080p]招募時軸後期")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2893,7 +2893,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `623762_Spy_x_Family_22_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [22][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [22][1080p][簡體內嵌]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2904,7 +2904,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `623761_Spy_x_Family_22_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [22][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [22][1080p][簡繁內封]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2915,7 +2915,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `623716_10_Spy_x_Family_22_1080p_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][22][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][22][1080p][MP4][GB][簡中]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2926,7 +2926,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `623572_04_SPY_FAMILY_20_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][20][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][20][1080P][簡體][MP4]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2948,7 +2948,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `623570_04_SPY_FAMILY_20_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][20][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][20][720P][簡體][MP4]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -2970,7 +2970,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `623554_Spy_x_Family_22_1080p_2022_10`() {
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [22] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [22] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -2981,7 +2981,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `623495_404_21_1080P_WebRip_AVC_AAC_MP4`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][21][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][21][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3017,7 +3017,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `623484_Studio_10_SPY_FAMILY_Part_2_22_1080p_HEVC_GB_MP4`() {
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][22][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][22][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3028,7 +3028,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `623483_Studio_10_SPY_FAMILY_Part_2_22_1080p_AVC_GB_MP4`() {
kotlin.run {
- val r = parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][22][1080p][AVC][GB][MP4][招募翻译校对]")
+ val r = parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][22][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3061,7 +3061,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `623319_SPY_FAMILY_22_1080P_AVC`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][22集][1080P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][22集][1080P][AVC][簡日雙語]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3072,7 +3072,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `623318_SPY_FAMILY_22_720P_AVC`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][22集][720P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][22集][720P][AVC][簡日雙語]")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3083,7 +3083,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `623253_NC_Raws_SPY_FAMILY___22_CR_1920x1080_AVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 22 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 22 (CR 1920x1080 AVC AAC MKV)")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3094,7 +3094,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `623223_NC_Raws_SPY_FAMILY___22_B_Global_3840x2160_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 22 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 22 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("22..22", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -3127,7 +3127,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `623157_10_SPYxFAMILY_21_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][21][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][21][1080p][簡日雙語][招募翻譯]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3138,7 +3138,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `623156_10_SPYxFAMILY_21_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][21][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][21][720p][簡日雙語][招募翻譯]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3149,7 +3149,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `623090_Spy_x_Family_21_1080P_WEBrip_MP4`() {
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][21][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][21][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3161,7 +3161,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `623020_LoliHouse_Spy_x_Family___19_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 19 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 19 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3172,7 +3172,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622990_10_SPY_FAMILY_20_GB_MP4_720P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【20】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【20】GB MP4_720P")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3183,7 +3183,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622989_10_SPY_FAMILY_20_GB_MP4_1080P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【20】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【20】GB MP4_1080P")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3194,7 +3194,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622925_10_Spy_x_Family_21_1080p_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][21][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][21][1080p][MP4][GB][簡中]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3205,7 +3205,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622807_Spy_x_Family_21_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [21][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [21][1080p][簡體內嵌]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3216,7 +3216,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622803_Spy_x_Family_21_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [21][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [21][1080p][簡繁內封]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3249,7 +3249,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622768_10_SPYxFAMILY_20_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][20][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][20][1080p][簡日雙語][招募翻譯]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3260,7 +3260,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622767_10_SPYxFAMILY_20_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][20][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][20][720p][簡日雙語][招募翻譯]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3271,7 +3271,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622754_10_SPY_FAMILY_19_GB_MP4_720P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【19】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【19】GB MP4_720P")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3282,7 +3282,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622753_10_SPY_FAMILY_19_GB_MP4_1080P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【19】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【19】GB MP4_1080P")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3293,7 +3293,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622744_Spy_x_Family_21_1080p_2022_10`() {
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [21] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [21] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3329,7 +3329,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `622699_Studio_10_SPY_FAMILY_Part_2_21_1080p_HEVC_GB_MP4`() {
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][21][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][21][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3340,7 +3340,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622698_Studio_10_SPY_FAMILY_Part_2_21_1080p_AVC_GB_MP4`() {
kotlin.run {
- val r = parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][21][1080p][AVC][GB][MP4][招募翻译校对]")
+ val r = parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][21][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3351,7 +3351,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622694_SPY_FAMILY_20_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [20][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [20][簡體雙語][1080p]招募時軸後期")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3384,7 +3384,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622626_V2_SPY_FAMILY_21_1080P_AVC`() {
kotlin.run {
- val r = parse("[V2][织梦字幕组][间谍过家家 SPY×FAMILY][21集][1080P][AVC][简日双语]")
+ val r = parse("[V2][織夢字幕組][間諜過家家 SPY×FAMILY][21集][1080P][AVC][簡日雙語]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3395,7 +3395,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622625_V2_SPY_FAMILY_21_720P_AVC`() {
kotlin.run {
- val r = parse("[V2][织梦字幕组][间谍过家家 SPY×FAMILY][21集][720P][AVC][简日双语]")
+ val r = parse("[V2][織夢字幕組][間諜過家家 SPY×FAMILY][21集][720P][AVC][簡日雙語]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3407,7 +3407,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `622478_jibaketa_SPY_FAMILY___15_WEB_1920x1080_AVC_AACx2_SRTx2_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 15 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 15 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3418,7 +3418,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622470_10_SPY_FAMILY_18_GB_MP4_720P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【18】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【18】GB MP4_720P")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3429,7 +3429,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622469_10_SPY_FAMILY_18_GB_MP4_1080P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【18】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【18】GB MP4_1080P")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3462,7 +3462,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622445_SPY_FAMILY_21_1080P_AVC`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][21集][1080P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][21集][1080P][AVC][簡日雙語]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3473,7 +3473,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622444_SPY_FAMILY_21_720P_AVC`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][21集][720P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][21集][720P][AVC][簡日雙語]")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3484,7 +3484,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622373_NC_Raws_SPY_FAMILY___21_CR_1920x1080_AVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 21 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 21 (CR 1920x1080 AVC AAC MKV)")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3496,7 +3496,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `622363_jibaketa_SPY_FAMILY___14_WEB_1920x1080_AVC_AACx2_SRTx2_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 14 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 14 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3507,7 +3507,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622347_NC_Raws_SPY_FAMILY___21_B_Global_3840x2160_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 21 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 21 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("21..21", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -3518,7 +3518,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622260_404_20_1080P_WebRip_AVC_AAC_MP4`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][20][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][20][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3530,7 +3530,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `622251_jibaketa_SPY_FAMILY___13_WEB_1920x1080_AVC_AACx2_SRTx2_MUSE_CHT`() {
kotlin.run {
val r =
- parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 间谍过家家 - 13 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
+ parse("[jibaketa合成][代理商粵語]SPY×FAMILY間諜家家酒 / 間諜過家家 - 13 [粵日雙語+內封繁體中文字幕](WEB 1920x1080 AVC AACx2 SRTx2 MUSE CHT)")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHC, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3541,7 +3541,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622142_10_Spy_x_Family_20_1080p_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][20][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][20][1080p][MP4][GB][簡中]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3552,7 +3552,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622017_SPY_FAMILY_19_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [19][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [19][簡體雙語][1080p]招募時軸後期")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3574,7 +3574,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622012_10_SPYxFAMILY_19_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][19][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][19][1080p][簡日雙語][招募翻譯]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3596,7 +3596,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `622010_10_SPYxFAMILY_19_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][19][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][19][720p][簡日雙語][招募翻譯]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3607,7 +3607,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621934_Spy_x_Family_20_1080p_2022_10`() {
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [20] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [20] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3618,7 +3618,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621908_Spy_x_Family_20_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [20][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [20][1080p][簡體內嵌]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3629,7 +3629,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621907_Spy_x_Family_20_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [20][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [20][1080p][簡繁內封]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3640,7 +3640,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621860_Spy_x_Family_20_1080P_WEBrip_MP4`() {
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][20][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][20][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3651,7 +3651,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621848_10_SPY_FAMILY_17_GB_MP4_720P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【17】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【17】GB MP4_720P")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3662,7 +3662,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621847_10_SPY_FAMILY_17_GB_MP4_1080P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【17】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【17】GB MP4_1080P")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3673,7 +3673,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621783_04_SPY_FAMILY_19_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][19][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][19][1080P][簡體][MP4]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3695,7 +3695,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621781_04_SPY_FAMILY_19_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][19][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][19][720P][簡體][MP4]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3742,7 +3742,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `621743_Studio_10_SPY_FAMILY_Part_2_20_1080p_HEVC_GB_MP4`() {
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][20][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][20][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3753,7 +3753,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621742_Studio_10_SPY_FAMILY_Part_2_20_1080p_AVC_GB_MP4`() {
kotlin.run {
- val r = parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][20][1080p][AVC][GB][MP4][招募翻译校对]")
+ val r = parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][20][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3775,7 +3775,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621717_10_SPY_FAMILY_19_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻櫻字幕組】【10月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【19】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【10月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【19】【GB_MP4】【1280X720】")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3787,7 +3787,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `621669_LoliHouse_Spy_x_Family___18_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 18 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 18 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3799,7 +3799,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `621668_LoliHouse_Spy_x_Family___17_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 17 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 17 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3811,7 +3811,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `621667_LoliHouse_Spy_x_Family___16_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 16 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 16 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3844,7 +3844,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621621_SPY_FAMILY_20_1080P_AVC`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][20集][1080P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][20集][1080P][AVC][簡日雙語]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3855,7 +3855,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621620_SPY_FAMILY_20_720P_AVC`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][20集][720P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][20集][720P][AVC][簡日雙語]")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3866,7 +3866,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621508_NC_Raws_SPY_FAMILY___20_CR_1920x1080_AVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 20 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 20 (CR 1920x1080 AVC AAC MKV)")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3877,7 +3877,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621476_NC_Raws_SPY_FAMILY___20_B_Global_3840x2160_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 20 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 20 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("20..20", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -3899,7 +3899,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621347_10_SPY_FAMILY_18_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻櫻字幕組】【10月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【18】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【10月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【18】【GB_MP4】【1280X720】")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3910,7 +3910,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621275_404_19_1080P_WebRip_AVC_AAC_MP4`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][19][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][19][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3921,7 +3921,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621192_04_SPY_FAMILY_16_18_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][16-18][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][16-18][1080P][簡體][MP4]")
assertEquals("16..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3932,7 +3932,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621190_04_SPY_FAMILY_16_18_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][16-18][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][16-18][720P][簡體][MP4]")
assertEquals("16..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -3965,7 +3965,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621174_SPY_FAMILY_18_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [18][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [18][簡體雙語][1080p]招募時軸後期")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3976,7 +3976,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621173_SPY_FAMILY_17_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [17][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [17][簡體雙語][1080p]招募時軸後期")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3987,7 +3987,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621134_10_Spy_x_Family_19_1080p_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][19][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][19][1080p][MP4][GB][簡中]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -3999,7 +3999,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `621128_7_ACG_x_SPY_FAMILY_01_12_Part_1_BDrip_1080p_x265_FLAC`() {
kotlin.run {
val r =
- parse("[7³ACG x 桜都字幕组] SPY×FAMILY/间谍过家家/间谍家家酒/スパイファミリー | 01-12(Part 1) [简繁字幕] BDrip 1080p x265 FLAC")
+ parse("[7³ACG x 桜都字幕組] SPY×FAMILY/間諜過家家/間諜家家酒/スパイファミリー | 01-12(Part 1) [簡繁字幕] BDrip 1080p x265 FLAC")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4010,7 +4010,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621076_Spy_x_Family_19_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [19][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [19][1080p][簡體內嵌]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4021,7 +4021,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621074_Spy_x_Family_19_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [19][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [19][1080p][簡繁內封]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4032,7 +4032,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `621028_Spy_x_Family_19_1080p_2022_10`() {
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [19] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [19] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4068,7 +4068,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `620968_Studio_10_SPY_FAMILY_Part_2_19_1080p_HEVC_GB_MP4`() {
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][19][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][19][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4079,7 +4079,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `620967_Studio_10_SPY_FAMILY_Part_2_19_1080p_AVC_GB_MP4`() {
kotlin.run {
- val r = parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][19][1080p][AVC][GB][MP4][招募翻译校对]")
+ val r = parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][19][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4101,7 +4101,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `620936_Spy_x_Family_19_1080P_WEBrip_MP4`() {
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][19][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][19][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4123,7 +4123,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `620887_10_SPYxFAMILY_18_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][18][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][18][1080p][簡日雙語][招募翻譯]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4145,7 +4145,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `620885_10_SPYxFAMILY_18_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][18][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][18][720p][簡日雙語][招募翻譯]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4178,7 +4178,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `620798_SPY_FAMILY_19_1080P_AVC`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][19集][1080P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][19集][1080P][AVC][簡日雙語]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4189,7 +4189,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `620797_SPY_FAMILY_19_720P_AVC`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][19集][720P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][19集][720P][AVC][簡日雙語]")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4200,7 +4200,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `620750_NC_Raws_SPY_FAMILY___19_CR_1920x1080_AVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 19 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 19 (CR 1920x1080 AVC AAC MKV)")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4211,7 +4211,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `620712_NC_Raws_SPY_FAMILY___19_B_Global_3840x2160_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 19 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 19 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("19..19", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -4222,7 +4222,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `620656_404_18_1080P_WebRip_AVC_AAC_MP4`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][18][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][18][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4258,7 +4258,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `620549_Studio_10_SPY_FAMILY_Part_2_18_1080p_HEVC_GB_MP4`() {
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][18][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][18][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4269,7 +4269,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `620548_Studio_10_SPY_FAMILY_Part_2_18_1080p_AVC_GB_MP4`() {
kotlin.run {
- val r = parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][18][1080p][AVC][GB][MP4][招募翻译校对]")
+ val r = parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][18][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4280,7 +4280,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `620395_10_SPY_FAMILY_17_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻櫻字幕組】【10月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【17】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【10月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【17】【GB_MP4】【1280X720】")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4291,7 +4291,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `620384_10_SPY_FAMILY_16_GB_MP4_720P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【16】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【16】GB MP4_720P")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4302,7 +4302,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `620383_10_SPY_FAMILY_16_GB_MP4_1080P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【16】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【16】GB MP4_1080P")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4313,7 +4313,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `620360_10_Spy_x_Family_18_1080p_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][18][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][18][1080p][MP4][GB][簡中]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4324,7 +4324,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `620325_Spy_x_Family_18_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [18][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [18][1080p][簡體內嵌]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4335,7 +4335,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `620320_Spy_x_Family_18_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [18][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [18][1080p][簡繁內封]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4346,7 +4346,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `620263_Spy_x_Family_18_1080P_WEBrip_MP4`() {
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][18][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][18][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4357,7 +4357,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `620259_Spy_x_Family_18_1080p_2022_10`() {
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [18] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [18] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4379,7 +4379,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `620008_10_SPYxFAMILY_17_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][17][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][17][1080p][簡日雙語][招募翻譯]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4401,7 +4401,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `620006_10_SPYxFAMILY_17_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][17][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][17][720p][簡日雙語][招募翻譯]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4434,7 +4434,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `619944_SPY_FAMILY_18_1080P_AVC`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][18集][1080P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][18集][1080P][AVC][簡日雙語]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4445,7 +4445,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `619943_SPY_FAMILY_18_720P_AVC`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][18集][720P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][18集][720P][AVC][簡日雙語]")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4456,7 +4456,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `619876_NC_Raws_SPY_FAMILY___18_CR_1920x1080_AVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 18 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 18 (CR 1920x1080 AVC AAC MKV)")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4467,7 +4467,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `619864_NC_Raws_SPY_FAMILY___18_B_Global_3840x2160_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 18 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 18 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("18..18", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -4478,7 +4478,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `619640_404_17_1080P_WebRip_AVC_AAC_MP4`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][17][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][17][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4489,7 +4489,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `619546_SPY_FAMILY_16_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [16][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [16][簡體雙語][1080p]招募時軸後期")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4522,7 +4522,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `619459_V2_SPY_FAMILY_13_1080P_AVC`() {
kotlin.run {
- val r = parse("[V2][织梦字幕组][间谍过家家 SPY×FAMILY][13集][1080P][AVC][简日双语]")
+ val r = parse("[V2][織夢字幕組][間諜過家家 SPY×FAMILY][13集][1080P][AVC][簡日雙語]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4533,7 +4533,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `619458_V2_SPY_FAMILY_13_720P_AVC`() {
kotlin.run {
- val r = parse("[V2][织梦字幕组][间谍过家家 SPY×FAMILY][13集][720P][AVC][简日双语]")
+ val r = parse("[V2][織夢字幕組][間諜過家家 SPY×FAMILY][13集][720P][AVC][簡日雙語]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4544,7 +4544,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `619414_10_Spy_x_Family_17_1080p_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][17][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][17][1080p][MP4][GB][簡中]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4556,7 +4556,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `619401_LoliHouse_Spy_x_Family___15_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 15 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 15 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4578,7 +4578,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `619375_10_SPY_FAMILY_16_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻櫻字幕組】【10月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【16】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【10月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【16】【GB_MP4】【1280X720】")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4614,7 +4614,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `619369_Studio_10_SPY_FAMILY_Part_2_17_1080p_HEVC_GB_MP4`() {
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][17][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][17][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4625,7 +4625,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `619368_Studio_10_SPY_FAMILY_Part_2_17_1080p_AVC_GB_MP4`() {
kotlin.run {
- val r = parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][17][1080p][AVC][GB][MP4][招募翻译校对]")
+ val r = parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][17][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4636,7 +4636,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `619364_Spy_x_Family_17_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [17][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [17][1080p][簡體內嵌]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4647,7 +4647,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `619363_Spy_x_Family_17_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [17][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [17][1080p][簡繁內封]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4658,7 +4658,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `619361_Spy_x_Family_17_1080p_2022_10`() {
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [17] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [17] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4680,7 +4680,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `619297_10_SPYxFAMILY_16_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][16][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][16][1080p][簡日雙語][招募翻譯]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4702,7 +4702,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `619295_10_SPYxFAMILY_16_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][16][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][16][720p][簡日雙語][招募翻譯]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4713,7 +4713,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `619249_Spy_x_Family_17_1080P_WEBrip_MP4`() {
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][17][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][17][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4746,7 +4746,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `619038_SPY_FAMILY_17_1080P_AVC`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][17集][1080P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][17集][1080P][AVC][簡日雙語]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4757,7 +4757,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `619037_SPY_FAMILY_17_720P_AVC`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 SPY×FAMILY][17集][720P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 SPY×FAMILY][17集][720P][AVC][簡日雙語]")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4768,7 +4768,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `618988_NC_Raws_SPY_FAMILY___17_CR_1920x1080_AVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 17 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 17 (CR 1920x1080 AVC AAC MKV)")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4779,7 +4779,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `618972_NC_Raws_SPY_FAMILY___17_B_Global_3840x2160_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 17 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 17 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("17..17", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -4790,7 +4790,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `618754_04_SPY_FAMILY_15_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][15][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][15][1080P][簡體][MP4]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4812,7 +4812,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `618752_04_SPY_FAMILY_15_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][15][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][15][720P][簡體][MP4]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4834,7 +4834,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `618715_Spy_x_Family_16_1080P_MKV_HEVC`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][16][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][16][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4845,7 +4845,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `618714_Spy_x_Family_16_720P_CHS_HEVC_MP4`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][16][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][16][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4856,7 +4856,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `618687_404_16_1080P_WebRip_AVC_AAC_MP4`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][16][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][16][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4867,7 +4867,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `618674_10_Spy_x_Family_16_1080p_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][16][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][16][1080p][MP4][GB][簡中]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4878,7 +4878,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `618648_10_SPY_FAMILY_14_15_GB_MP4_720P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【14-15】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【14-15】GB MP4_720P")
assertEquals("14..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -4889,7 +4889,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `618647_10_SPY_FAMILY_14_15_GB_MP4_1080P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【14-15】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【14-15】GB MP4_1080P")
assertEquals("14..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4900,7 +4900,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `618615_Spy_x_Family_16_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [16][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [16][1080p][簡體內嵌]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4911,7 +4911,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `618614_Spy_x_Family_16_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [16][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [16][1080p][簡繁內封]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4947,7 +4947,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `618511_Studio_10_SPY_FAMILY_Part_2_16_1080p_HEVC_GB_MP4`() {
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][16][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][16][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4958,7 +4958,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `618510_Studio_10_SPY_FAMILY_Part_2_16_1080p_AVC_GB_MP4`() {
kotlin.run {
- val r = parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][16][1080p][AVC][GB][MP4][招募翻译校对]")
+ val r = parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][16][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4969,7 +4969,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `618411_Spy_x_Family_16_1080p_2022_10`() {
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [16] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [16] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4980,7 +4980,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `618320_SPY_FAMILY_15_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [15][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [15][簡體雙語][1080p]招募時軸後期")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -4991,7 +4991,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `618252_Spy_x_Family_16_1080P_WEBrip_MP4`() {
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][16][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][16][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5002,7 +5002,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `618104_16_1080P_AVC`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 第二部分][16集][1080P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 第二部分][16集][1080P][AVC][簡日雙語]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5013,7 +5013,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `618103_16_1080P_AVC`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 第二部分][16集][1080P][AVC][繁日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 第二部分][16集][1080P][AVC][繁日雙語]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5024,7 +5024,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `618102_16_720P_AVC`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 第二部分][16集][720P][AVC][简日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 第二部分][16集][720P][AVC][簡日雙語]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5035,7 +5035,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `618101_16_720P_AVC`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 第二部分][16集][720P][AVC][繁日双语]")
+ val r = parse("[織夢字幕組][間諜過家家 第二部分][16集][720P][AVC][繁日雙語]")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5046,7 +5046,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `618049_NC_Raws_SPY_FAMILY___16_CR_1920x1080_AVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 16 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 16 (CR 1920x1080 AVC AAC MKV)")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5057,7 +5057,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `618041_NC_Raws_SPY_FAMILY___16_B_Global_3840x2160_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 16 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 16 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("16..16", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -5068,7 +5068,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `617902_404_15_1080P_WebRip_AVC_AAC_MP4`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][15][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][15][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5079,7 +5079,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `617868_Spy_x_Family_15_1080P_MKV_HEVC`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][15][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][15][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5090,7 +5090,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `617867_Spy_x_Family_15_720P_CHS_HEVC_MP4`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][15][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][15][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5112,7 +5112,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `617846_10_SPY_FAMILY_15_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻櫻字幕組】【10月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【15】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【10月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【15】【GB_MP4】【1280X720】")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5134,7 +5134,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `617649_10_SPY_FAMILY_14_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【10月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【14】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【10月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【14】【GB_MP4】【1280X720】")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5146,7 +5146,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `617636_LoliHouse_Spy_x_Family___14_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 14 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 14 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5158,7 +5158,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `617635_LoliHouse_Spy_x_Family___13_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 13 [WebRip 1080p HEVC-10bit AAC][简繁外挂字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 13 [WebRip 1080p HEVC-10bit AAC][簡繁外掛字幕]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5169,7 +5169,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `617628_10_Spy_x_Family_15_1080p_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][15][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][15][1080p][MP4][GB][簡中]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5180,7 +5180,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `617569_04_SPY_FAMILY_13_14_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][13-14][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][13-14][1080P][簡體][MP4]")
assertEquals("13..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5202,7 +5202,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `617567_04_SPY_FAMILY_13_14_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][13-14][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][13-14][720P][簡體][MP4]")
assertEquals("13..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5224,7 +5224,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `617543_SPY_FAMILY_14_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [14][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [14][簡體雙語][1080p]招募時軸後期")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5246,7 +5246,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `617473_10_SPYxFAMILY_15_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][15][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][15][1080p][簡日雙語][招募翻譯]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5268,7 +5268,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `617471_10_SPYxFAMILY_15_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][15][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][15][720p][簡日雙語][招募翻譯]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5279,7 +5279,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `617444_Spy_x_Family_15_1080p_2022_10`() {
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [15] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [15] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5290,7 +5290,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `617429_Spy_x_Family_15_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [15][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [15][1080p][簡繁內封]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5301,7 +5301,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `617427_Spy_x_Family_15_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [15][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [15][1080p][簡體內嵌]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5337,7 +5337,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `617373_Studio_10_SPY_FAMILY_Part_2_15_1080p_HEVC_GB_MP4`() {
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][15][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][15][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5348,7 +5348,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `617372_Studio_10_SPY_FAMILY_Part_2_15_1080p_AVC_GB_MP4`() {
kotlin.run {
- val r = parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][15][1080p][AVC][GB][MP4][招募翻译校对]")
+ val r = parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][15][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5359,7 +5359,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `617271_Spy_x_Family_15_1080P_WEBrip_MP4`() {
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][15][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][15][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5392,7 +5392,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `617198_SPY_FAMILY_15_AVC_1080P`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 第二部分 SPY×FAMILY][15集][AVC][简日双语][1080P]")
+ val r = parse("[織夢字幕組][間諜過家家 第二部分 SPY×FAMILY][15集][AVC][簡日雙語][1080P]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5403,7 +5403,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `617197_SPY_FAMILY_15_AVC_720P`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 第二部分 SPY×FAMILY][15集][AVC][简日双语][720P]")
+ val r = parse("[織夢字幕組][間諜過家家 第二部分 SPY×FAMILY][15集][AVC][簡日雙語][720P]")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5414,7 +5414,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `617140_NC_Raws_SPY_FAMILY___15_CR_1920x1080_AVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 15 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 15 (CR 1920x1080 AVC AAC MKV)")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5425,7 +5425,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `617129_NC_Raws_SPY_FAMILY___15_B_Global_3840x2160_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 15 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 15 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("15..15", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -5436,7 +5436,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `617090_404_14_1080P_WebRip_AVC_AAC_MP4`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][14][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][14][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5447,7 +5447,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `616930_10_Spy_x_Family_14_1080p_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][14][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][14][1080p][MP4][GB][簡中]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5458,7 +5458,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `616869_SPY_FAMILY_13_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [13][简体双语][1080p]招募时轴后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [13][簡體雙語][1080p]招募時軸後期")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5469,7 +5469,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `616841_Spy_x_Family_14_1080P_MKV_HEVC`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][14][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][14][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5480,7 +5480,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `616840_Spy_x_Family_14_720P_CHS_HEVC_MP4`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][14][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][14][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5491,7 +5491,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `616661_Spy_x_Family_14_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [14][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [14][1080p][簡繁內封]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5502,7 +5502,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `616659_Spy_x_Family_14_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [14][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [14][1080p][簡體內嵌]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5513,7 +5513,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `616645_Spy_x_Family_14_1080p_2022_10`() {
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [14] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [14] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5524,7 +5524,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `616636_Spy_x_Family_14_1080P_WEBrip_MP4`() {
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][14][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][14][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5546,7 +5546,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `616533_10_SPYxFAMILY_14_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][14][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][14][1080p][簡日雙語][招募翻譯]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5568,7 +5568,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `616531_10_SPYxFAMILY_14_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][14][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][14][720p][簡日雙語][招募翻譯]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5579,7 +5579,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `616381_10_SPY_FAMILY_13_GB_MP4_1080P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【13】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【13】GB MP4_1080P")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5590,7 +5590,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `616379_10_SPY_FAMILY_13_GB_MP4_1080P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★10月新番 【间谍过家家】【SPY×FAMILY】【13】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★10月新番 【間諜過家家】【SPY×FAMILY】【13】GB MP4_720P")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5612,7 +5612,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `616369_10_SPY_FAMILY_13_GB_MP4_1280X720_V2`() {
kotlin.run {
- val r = parse("【幻櫻字幕組】【10月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【13】【GB_MP4】【1280X720】【V2】")
+ val r = parse("【幻櫻字幕組】【10月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【13】【GB_MP4】【1280X720】【V2】")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5648,7 +5648,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `616320_Studio_10_SPY_FAMILY_Part_2_14_1080p_HEVC_GB_MP4`() {
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][14][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][14][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5659,7 +5659,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `616317_Studio_10_SPY_FAMILY_Part_2_14_1080p_AVC_GB_MP4`() {
kotlin.run {
- val r = parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][14][1080p][AVC][GB][MP4][招募翻译校对]")
+ val r = parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][14][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5692,7 +5692,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `616223_SPY_FAMILY_14_AVC_1080P`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 第二部分 SPY×FAMILY][14集][AVC][简日双语][1080P]")
+ val r = parse("[織夢字幕組][間諜過家家 第二部分 SPY×FAMILY][14集][AVC][簡日雙語][1080P]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5703,7 +5703,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `616222_SPY_FAMILY_14_AVC_720P`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 第二部分 SPY×FAMILY][14集][AVC][简日双语][720P]")
+ val r = parse("[織夢字幕組][間諜過家家 第二部分 SPY×FAMILY][14集][AVC][簡日雙語][720P]")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5714,7 +5714,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `616197_Spy_x_Family_13_1080P_MKV_HEVC`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][13][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][13][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5725,7 +5725,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `616196_Spy_x_Family_13_720P_CHS_HEVC_MP4`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][13][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][13][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5736,7 +5736,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `616166_NC_Raws_SPY_FAMILY___14_CR_1920x1080_AVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 14 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 14 (CR 1920x1080 AVC AAC MKV)")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5747,7 +5747,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `616150_NC_Raws_SPY_FAMILY___14_B_Global_1920x1080_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 14 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 14 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5758,7 +5758,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `616147_NC_Raws_SPY_FAMILY___14_B_Global_1920x1080_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 14 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 14 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("14..14", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5769,7 +5769,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `615847_Spy_x_Family_13_1080P_WEBrip_MP4`() {
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / Spy x Family][13][简日双语][1080P][WEBrip][MP4](急招翻译、校对)")
+ val r = parse("[星空字幕組][間諜過家家 / Spy x Family][13][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對)")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5780,7 +5780,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `615803_10_Spy_x_Family_13_1080p_MP4_GB`() {
kotlin.run {
- val r = parse("[爱恋字幕社&猫恋汉化组][10月新番][间谍过家家][Spy x Family][13][1080p][MP4][GB][简中]")
+ val r = parse("[愛戀字幕社&貓戀漢化組][10月新番][間諜過家家][Spy x Family][13][1080p][MP4][GB][簡中]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5791,7 +5791,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `615737_404_13_1080P_WebRip_AVC_AAC_MP4`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][13][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][13][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5824,7 +5824,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `615604_10_SPYxFAMILY_13_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][13][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][13][1080p][簡日雙語][招募翻譯]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5835,7 +5835,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `615603_10_SPYxFAMILY_13_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★10月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][13][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★10月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][13][720p][簡日雙語][招募翻譯]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5846,7 +5846,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `615602_Spy_x_Family_13_1080p_2022_10`() {
kotlin.run {
- val r = parse("[猎户不鸽压制] 间谍过家家 Spy x Family [13] [1080p] [简日内嵌] [2022年10月番]")
+ val r = parse("[獵戶不鴿壓制] 間諜過家家 Spy x Family [13] [1080p] [簡日內嵌] [2022年10月番]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5857,7 +5857,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `615571_Spy_x_Family_13_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [13][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [13][1080p][簡繁內封]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5868,7 +5868,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `615569_Spy_x_Family_13_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [13][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [13][1080p][簡體內嵌]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5904,7 +5904,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `615566_Studio_10_SPY_FAMILY_Part_2_13_1080p_HEVC_GB_MP4`() {
kotlin.run {
val r =
- parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][13][1080p][HEVC][GB][MP4][招募翻译校对]")
+ parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][13][1080p][HEVC][GB][MP4][招募翻譯校對]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5915,7 +5915,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `615565_Studio_10_SPY_FAMILY_Part_2_13_1080p_AVC_GB_MP4`() {
kotlin.run {
- val r = parse("【爪爪Studio】★10月新番[间谍过家家 第二部分/SPY×FAMILY Part 2][13][1080p][AVC][GB][MP4][招募翻译校对]")
+ val r = parse("【爪爪Studio】★10月新番[間諜過家家 第二部分/SPY×FAMILY Part 2][13][1080p][AVC][GB][MP4][招募翻譯校對]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5948,7 +5948,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `615365_SPY_FAMILY_13_AVC_720P`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 第二部分 SPY×FAMILY][13集][AVC][简日双语][720P]")
+ val r = parse("[織夢字幕組][間諜過家家 第二部分 SPY×FAMILY][13集][AVC][簡日雙語][720P]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -5959,7 +5959,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `615364_SPY_FAMILY_13_AVC_1080P`() {
kotlin.run {
- val r = parse("[织梦字幕组][间谍过家家 第二部分 SPY×FAMILY][13集][AVC][简日双语][1080P]")
+ val r = parse("[織夢字幕組][間諜過家家 第二部分 SPY×FAMILY][13集][AVC][簡日雙語][1080P]")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5970,7 +5970,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `615284_NC_Raws_SPY_FAMILY___13_CR_1920x1080_AVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 13 (CR 1920x1080 AVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 13 (CR 1920x1080 AVC AAC MKV)")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -5981,7 +5981,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `615279_NC_Raws_SPY_FAMILY___13_B_Global_1920x1080_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 13 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 13 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("13..13", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6003,7 +6003,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `609031_04_SPYxFAMILY_01_12_1080p_v2`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][01-12][1080p][简日双语][v2][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][01-12][1080p][簡日雙語][v2][招募翻譯]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6025,7 +6025,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `609029_04_SPYxFAMILY_01_12_720p_v2`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][01-12][720p][简日双语][v2][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][01-12][720p][簡日雙語][v2][招募翻譯]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6047,7 +6047,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `608943_04_SPYxFAMILY_01_12_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][01-12][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][01-12][1080p][簡日雙語][招募翻譯]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6069,7 +6069,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `608941_04_SPYxFAMILY_01_12_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][01-12][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][01-12][720p][簡日雙語][招募翻譯]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6080,7 +6080,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `608760_4K___2160p_Spy_Family`() {
kotlin.run {
- val r = parse("V2 间谍过家家4K 粤日双语 - 2160p Spy × Family 附加字体 外挂楷体字幕")
+ val r = parse("V2 間諜過家家4K 粵日雙語 - 2160p Spy × Family 附加字體 外掛楷體字幕")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHC, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -6151,7 +6151,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `607447_404_01_12_1080P_WebRip_AVC_AAC_MP4`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][01-12][1080P][WebRip][简日双语(内嵌+外挂)][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][01-12][1080P][WebRip][簡日雙語(內嵌+外掛)][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6235,7 +6235,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `604907_LoliHouse_Spy_x_Family___12_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 12 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 12 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6246,7 +6246,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604895_04_SPY_FAMILY_12_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][12][1080P][简体][MP4](前半完)")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][12][1080P][簡體][MP4](前半完)")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6268,7 +6268,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604893_04_SPY_FAMILY_12_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][12][720P][简体][MP4](前半完)")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][12][720P][簡體][MP4](前半完)")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6290,7 +6290,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604887_SPY_FAMILY_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [合集][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [合集][簡體雙語][1080p]招募翻譯")
assertEquals("null", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6301,7 +6301,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604884_SPY_FAMILY_12_END_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [12][END][简体双语][1080p]招募后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [12][END][簡體雙語][1080p]招募後期")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6312,7 +6312,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604830_Spy_x_Family_01_12_Fin_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [01-12 Fin][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [01-12 Fin][1080p][簡繁內封]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6323,7 +6323,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604827_Spy_x_Family_01_12_Fin_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [01-12 Fin][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [01-12 Fin][1080p][簡體內嵌]")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6346,7 +6346,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604792_4_SPY_FAMILY_12_END_GB_MP4_720P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【12】【END】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【12】【END】GB MP4_720P")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6357,7 +6357,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604791_4_SPY_FAMILY_12_END_GB_MP4_1080P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【12】【END】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【12】【END】GB MP4_1080P")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6368,7 +6368,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604712_4_SPY_FAMILY_11_GB_MP4_720P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【11】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【11】GB MP4_720P")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6379,7 +6379,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604711_4_SPY_FAMILY_11_GB_MP4_1080P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【11】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【11】GB MP4_1080P")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6390,7 +6390,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604706_4_SPY_FAMILY_10_GB_MP4_720P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【10】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【10】GB MP4_720P")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6401,7 +6401,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604705_4_SPY_FAMILY_10_GB_MP4_1080P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【10】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【10】GB MP4_1080P")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6434,7 +6434,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604401_404_12_1080P_WebRip_AVC_AAC_MP4`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][12][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][12][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6456,7 +6456,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604340_4_SPY_FAMILY_12_END_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【12】【END】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【12】【END】【GB_MP4】【1280X720】")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6478,7 +6478,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604269_4_Spy_X_Family_GB_10_1080P`() {
kotlin.run {
- val r = parse("[动漫萌][4月新番][间谍过家家/间谍家家酒/Spy X Family ][GB][10][1080P](字幕组招募内详)")
+ val r = parse("[動漫萌][4月新番][間諜過家家/間諜家家酒/Spy X Family ][GB][10][1080P](字幕組招募內詳)")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6489,7 +6489,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604268_SPY_FAMILY_01_12Fin_WEBRIP_1080p_AVC_AAC_2022_4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组] 间谍过家家/SPY × FAMILY (01-12Fin WEBRIP 1080p AVC AAC 2022年4月 简中)")
+ val r = parse("[愛戀&漫貓字幕組] 間諜過家家/SPY × FAMILY (01-12Fin WEBRIP 1080p AVC AAC 2022年4月 簡中)")
assertEquals("01..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6500,7 +6500,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604266_4_SPY_FAMILY_12_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][间谍过家家][SPY × FAMILY][12][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][間諜過家家][SPY × FAMILY][12][1080p][MP4][簡中]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6522,7 +6522,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604258_4_Spy_X_Family_GB_09_1080P`() {
kotlin.run {
- val r = parse("[动漫萌][4月新番][间谍过家家/间谍家家酒/Spy X Family ][GB][09][1080P](字幕组招募内详)")
+ val r = parse("[動漫萌][4月新番][間諜過家家/間諜家家酒/Spy X Family ][GB][09][1080P](字幕組招募內詳)")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6544,7 +6544,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604248_4_Spy_X_Family_GB_08_1080P`() {
kotlin.run {
- val r = parse("[动漫萌][4月新番][间谍过家家/间谍家家酒/Spy X Family ][GB][08][1080P](字幕组招募内详)")
+ val r = parse("[動漫萌][4月新番][間諜過家家/間諜家家酒/Spy X Family ][GB][08][1080P](字幕組招募內詳)")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6566,7 +6566,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604239_4_Spy_X_Family_GB_07_1080P`() {
kotlin.run {
- val r = parse("动漫萌][4月新番][间谍过家家/间谍家家酒/Spy X Family ][GB][07][1080P](字幕组招募内详)")
+ val r = parse("動漫萌][4月新番][間諜過家家/間諜家家酒/Spy X Family ][GB][07][1080P](字幕組招募內詳)")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6577,7 +6577,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604216_4_SPY_FAMILY_09_GB_MP4_720P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【09】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【09】GB MP4_720P")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6588,7 +6588,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604215_4_SPY_FAMILY_09_GB_MP4_1080P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【09】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【09】GB MP4_1080P")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6599,7 +6599,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604190_Spy_x_Family_12_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [12][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [12][1080p][簡體內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6610,7 +6610,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604183_Spy_x_Family_12_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [12][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [12][1080p][簡繁內封]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6621,7 +6621,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604158_4_SPY_FAMILY_08_GB_MP4_720P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【08】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【08】GB MP4_720P")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6632,7 +6632,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604157_4_SPY_FAMILY_08_GB_MP4_1080P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【08】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【08】GB MP4_1080P")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6644,7 +6644,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `604131_LoliHouse_Spy_x_Family___11_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 11 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 11 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6655,7 +6655,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604122_SPY_FAMILY_11_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [11][简体双语][1080p]招募后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [11][簡體雙語][1080p]招募後期")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6666,7 +6666,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604117_04_SPY_FAMILY_11_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][11][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][11][1080P][簡體][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6688,7 +6688,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604115_04_SPY_FAMILY_11_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][11][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][11][720P][簡體][MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6710,7 +6710,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604025_Spy_x_Family_12_1080P_MKV_HEVC`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][12][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][12][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6721,7 +6721,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604024_Spy_x_Family_12_720P_CHS_HEVC_MP4`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][12][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][12][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6732,7 +6732,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `604008_MingY_Spy_x_Family_12_1080p`() {
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [12][1080p][简日内嵌]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [12][1080p][簡日內嵌]")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6743,7 +6743,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603990_04_SPYxFAMILY_11_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][11][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][11][1080p][簡日雙語][招募翻譯]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6754,7 +6754,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603989_04_SPYxFAMILY_11_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][11][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][11][720p][簡日雙語][招募翻譯]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6765,7 +6765,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603927_NC_Raws_SPY_FAMILY___12_B_Global_3840x2160_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 12 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 12 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("12..12", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -6776,7 +6776,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603775_404_11_1080P_WebRip_AVC_AAC_MP4`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][11][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][11][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6798,7 +6798,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603706_4_SPY_FAMILY_11_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【11】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【11】【GB_MP4】【1280X720】")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6809,7 +6809,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603593_4_SPY_FAMILY_11_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][间谍过家家][SPY × FAMILY][11][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][間諜過家家][SPY × FAMILY][11][1080p][MP4][簡中]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6842,7 +6842,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603569_Spy_x_Family_04_1080p_AVC`() {
kotlin.run {
- val r = parse("【千夏字幕组】【间谍过家家_Spy x Family】[第04话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【間諜過家家_Spy x Family】[第04話][1080p_AVC][簡體]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6853,7 +6853,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603549_Spy_x_Family_11_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [11][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [11][1080p][簡繁內封]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6864,7 +6864,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603545_Spy_x_Family_11_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [11][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [11][1080p][簡體內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6897,7 +6897,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603540_Spy_x_Family_03_1080p_AVC`() {
kotlin.run {
- val r = parse("【千夏字幕组】【间谍过家家_Spy x Family】[第03话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【間諜過家家_Spy x Family】[第03話][1080p_AVC][簡體]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6909,7 +6909,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `603441_LoliHouse_Spy_x_Family___10_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 10 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 10 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6920,7 +6920,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603438_Spy_x_Family_11_1080P_MKV_HEVC`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][11][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][11][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6931,7 +6931,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603437_Spy_x_Family_11_720P_CHS_HEVC_MP4`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][11][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][11][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6942,7 +6942,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603436_04_SPY_FAMILY_10_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][10][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][10][1080P][簡體][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6964,7 +6964,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603434_04_SPY_FAMILY_10_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][10][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][10][720P][簡體][MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -6986,7 +6986,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603376_MingY_Spy_x_Family_11_1080p`() {
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [11][1080p][简日内嵌]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [11][1080p][簡日內嵌]")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -6997,7 +6997,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603332_NC_Raws_SPY_FAMILY___11_B_Global_3840x2160_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 11 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 11 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("11..11", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -7008,7 +7008,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603305_Spy_x_Family_10_1080P_MKV_HEVC`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][10][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][10][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7019,7 +7019,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603304_Spy_x_Family_10_720P_CHS_HEVC_MP4`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][10][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][10][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7030,7 +7030,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603161_SPY_FAMILY_10_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [10][简体双语][1080p]招募后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [10][簡體雙語][1080p]招募後期")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7041,7 +7041,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603149_4_SPY_FAMILY_07_GB_MP4_720P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【07】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【07】GB MP4_720P")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7052,7 +7052,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603148_4_SPY_FAMILY_07_GB_MP4_1080P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【07】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【07】GB MP4_1080P")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7063,7 +7063,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603142_04_SPYxFAMILY_10_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][10][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][10][1080p][簡日雙語][招募翻譯]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7074,7 +7074,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603141_04_SPYxFAMILY_10_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][10][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][10][720p][簡日雙語][招募翻譯]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7096,7 +7096,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603128_4_SPY_FAMILY_10_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【10】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【10】【GB_MP4】【1280X720】")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7107,7 +7107,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `603055_404_10_1080P_WebRip_AVC_AAC_MP4`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][10][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][10][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7118,7 +7118,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602892_Spy_x_Family_10_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [10][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [10][1080p][簡繁內封]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7129,7 +7129,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602890_Spy_x_Family_10_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [10][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [10][1080p][簡體內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7140,7 +7140,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602837_404_09_1080P_WebRip_AVC_AAC_MP4`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][09][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][09][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7151,7 +7151,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602807_MingY_Spy_x_Family_10_1080p`() {
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [10][1080p][简日内嵌]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [10][1080p][簡日內嵌]")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7163,7 +7163,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `602730_LoliHouse_Spy_x_Family___09_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 09 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 09 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7174,7 +7174,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602729_04_SPY_FAMILY_09_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][09][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][09][1080P][簡體][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7196,7 +7196,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602727_04_SPY_FAMILY_09_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][09][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][09][720P][簡體][MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7218,7 +7218,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602718_NC_Raws_SPY_FAMILY___10_B_Global_3840x2160_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 10 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 10 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("10..10", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -7229,7 +7229,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602684_4_SPY_FAMILY_06_GB_MP4_720P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【06】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【06】GB MP4_720P")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7240,7 +7240,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602683_4_SPY_FAMILY_06_GB_MP4_1080P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【06】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【06】GB MP4_1080P")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7252,7 +7252,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `602665_LoliHouse_Spy_x_Family___08_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 08 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 08 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7263,7 +7263,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602649_SPY_FAMILY_09_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [09][简体双语][1080p]招募后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [09][簡體雙語][1080p]招募後期")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7274,7 +7274,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602504_Spy_x_Family_06_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[间谍过家家 / Spy x Family][06][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[間諜過家家 / Spy x Family][06][x264 1080p][CHS]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7296,7 +7296,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602498_4_SPY_FAMILY_09_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【09】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【09】【GB_MP4】【1280X720】")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7318,7 +7318,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602491_04_SPYxFAMILY_09_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][09][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][09][1080p][簡日雙語][招募翻譯]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7340,7 +7340,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602489_04_SPYxFAMILY_09_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][09][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][09][720p][簡日雙語][招募翻譯]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7351,7 +7351,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602424_Spy_x_Family_09v2_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [09v2][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [09v2][1080p][簡繁內封]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7362,7 +7362,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602358_4_SPY_FAMILY_09_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][间谍过家家][SPY × FAMILY][09][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][間諜過家家][SPY × FAMILY][09][1080p][MP4][簡中]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7373,7 +7373,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602334_Spy_x_Family_09_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [09][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [09][1080p][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7384,7 +7384,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602254_SPY_FAMILY_08_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [08][简体双语][1080p]招募后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [08][簡體雙語][1080p]招募後期")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7395,7 +7395,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602240_Spy_x_Family_09_1080P_MKV_HEVC`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][09][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][09][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7406,7 +7406,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602239_Spy_x_Family_09_720P_CHS_HEVC_MP4`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][09][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][09][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7417,7 +7417,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602237_404_08_1080P_WebRip_AVC_AAC_MP4`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][08][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][08][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7428,7 +7428,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602158_MingY_Spy_x_Family_09_1080p`() {
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [09][1080p][简体内嵌]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [09][1080p][簡體內嵌]")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7439,7 +7439,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602121_04_SPY_FAMILY_08_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][08][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][08][1080P][簡體][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7461,7 +7461,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602119_04_SPY_FAMILY_08_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][08][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][08][720P][簡體][MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7483,7 +7483,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602109_NC_Raws_SPY_FAMILY___09_B_Global_3840x2160_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 09 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 09 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("09..09", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -7494,7 +7494,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602058_Spy_x_Family_08_1080P_MKV_HEVC`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][08][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][08][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7505,7 +7505,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `602057_Spy_x_Family_08_720P_CHS_HEVC_MP4`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][08][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][08][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7538,7 +7538,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601798_4_SPY_FAMILY_08_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][间谍过家家][SPY × FAMILY][08][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][間諜過家家][SPY × FAMILY][08][1080p][MP4][簡中]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7560,7 +7560,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601785_4_SPY_FAMILY_08_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【08】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【08】【GB_MP4】【1280X720】")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7571,7 +7571,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601727_04_SPYxFAMILY_08_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][08][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][08][1080p][簡日雙語][招募翻譯]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7582,7 +7582,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601726_04_SPYxFAMILY_08_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][08][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][08][720p][簡日雙語][招募翻譯]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7593,7 +7593,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601685_Spy_x_Family_08_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [08][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [08][1080p][簡繁內封]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7604,7 +7604,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601683_Spy_x_Family_08_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [08][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [08][1080p][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7615,7 +7615,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601659_4_SPY_FAMILY_05_GB_MP4_720P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【05】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【05】GB MP4_720P")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7626,7 +7626,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601658_4_SPY_FAMILY_05_GB_MP4_1080P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【05】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【05】GB MP4_1080P")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7638,7 +7638,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `601607_LoliHouse_Spy_x_Family___07_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 07 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 07 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7649,7 +7649,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601587_04_SPY_FAMILY_07_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][07][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][07][1080P][簡體][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7671,7 +7671,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601585_04_SPY_FAMILY_07_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][07][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][07][720P][簡體][MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7693,7 +7693,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601576_MingY_Spy_x_Family_08_1080p`() {
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [08][1080p][简体内嵌]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [08][1080p][簡體內嵌]")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7704,7 +7704,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601488_NC_Raws_SPY_FAMILY___08_B_Global_3840x2160_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 08 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 08 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("08..08", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -7726,7 +7726,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601367_4_SPY_FAMILY_07_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【07】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【07】【GB_MP4】【1280X720】")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7748,7 +7748,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601281_04_SPYxFAMILY_07_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][07][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][07][1080p][簡日雙語][招募翻譯]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7770,7 +7770,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601279_04_SPYxFAMILY_07_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][07][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][07][720p][簡日雙語][招募翻譯]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7781,7 +7781,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601273_SPY_FAMILY_07_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [07][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [07][簡體雙語][1080p]招募翻譯")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7792,7 +7792,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601252_404_07_1080P_WebRip_AVC_AAC_MP4`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][07][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][07][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7803,7 +7803,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601212_4_SPY_FAMILY_07_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][间谍过家家][SPY × FAMILY][07][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][間諜過家家][SPY × FAMILY][07][1080p][MP4][簡中]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7825,7 +7825,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601168_4_Spy_X_Family_GB_05_1080P`() {
kotlin.run {
- val r = parse("[动漫萌][4月新番][间谍过家家/间谍家家酒/Spy X Family ][GB][05][1080P](字幕组招募内详)")
+ val r = parse("[動漫萌][4月新番][間諜過家家/間諜家家酒/Spy X Family ][GB][05][1080P](字幕組招募內詳)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7836,7 +7836,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601167_Spy_x_Family_07_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [07][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [07][1080p][簡繁內封]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7847,7 +7847,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601165_Spy_x_Family_07_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [07][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [07][1080p][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7858,7 +7858,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601152_4_Spy_X_Family_GB_04_1080P`() {
kotlin.run {
- val r = parse("[动漫萌][4月新番][间谍过家家/间谍家家酒/Spy X Family ][GB][04][1080P]")
+ val r = parse("[動漫萌][4月新番][間諜過家家/間諜家家酒/Spy X Family ][GB][04][1080P]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7869,7 +7869,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601144_Spy_x_Family_07_1080P_MKV_HEVC`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][07][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][07][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7880,7 +7880,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601141_Spy_x_Family_07_720P_CHS_HEVC_MP4`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][07][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][07][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7891,7 +7891,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `601107_Spy_x_Family_05_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[间谍过家家 / Spy x Family][05][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[間諜過家家 / Spy x Family][05][x264 1080p][CHS]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7902,7 +7902,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600958_MingY_Spy_x_Family_07_1080p`() {
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [07][1080p][简体内嵌]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [07][1080p][簡體內嵌]")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7913,7 +7913,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600864_NC_Raws_SPY_FAMILY___07_B_Global_3840x2160_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 07 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 07 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("07..07", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -7924,7 +7924,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600862_SPY_FAMILY_06_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [06][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [06][簡體雙語][1080p]招募翻譯")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7957,7 +7957,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600842_04_SPYxFAMILY_06_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][06][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][06][1080p][簡日雙語][招募翻譯]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7968,7 +7968,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600841_04_SPYxFAMILY_06_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][06][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][06][720p][簡日雙語][招募翻譯]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -7980,7 +7980,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `600810_LoliHouse_Spy_x_Family___06_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 06 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 06 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -7991,7 +7991,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600788_04_SPY_FAMILY_06_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][06][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][06][1080P][簡體][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8013,7 +8013,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600786_04_SPY_FAMILY_06_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][06][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][06][720P][簡體][MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8035,7 +8035,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600782_Spy_x_Family_06_1080P_MKV_HEVC`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][06][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][06][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8046,7 +8046,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600781_Spy_x_Family_06_720P_CHS_HEVC_MP4`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][06][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][06][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8068,7 +8068,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600775_4_SPY_FAMILY_04v2_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【04v2】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【04v2】【GB_MP4】【1280X720】")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8090,7 +8090,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600745_4_SPY_FAMILY_06_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【06】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【06】【GB_MP4】【1280X720】")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8101,7 +8101,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600625_404_06_1080P_WebRip_AVC_AAC_MP4`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][06][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][06][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8112,7 +8112,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600605_4_SPY_FAMILY_06_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][间谍过家家][SPY × FAMILY][06][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][間諜過家家][SPY × FAMILY][06][1080p][MP4][簡中]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8123,7 +8123,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600510_Spy_x_Family_06_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [06][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [06][1080p][簡繁內封]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8134,7 +8134,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600509_Spy_x_Family_06_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [06][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [06][1080p][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8145,7 +8145,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600436_Spy_x_Family_04_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[间谍过家家 / Spy x Family][04][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[間諜過家家 / Spy x Family][04][x264 1080p][CHS]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8156,7 +8156,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600374_MingY_Spy_x_Family_06_1080p`() {
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [06][1080p][简体内嵌]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [06][1080p][簡體內嵌]")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8168,7 +8168,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `600354_LoliHouse_Spy_x_Family___05_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 05 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 05 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8179,7 +8179,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600320_04_SPY_FAMILY_05_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][05][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][05][1080P][簡體][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8201,7 +8201,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600318_04_SPY_FAMILY_05_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][05][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][05][720P][簡體][MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8223,7 +8223,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600280_NC_Raws_SPY_FAMILY___06_B_Global_3840x2160_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 06 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 06 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("06..06", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -8234,7 +8234,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600208_SPY_FAMILY_05_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [05][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [05][簡體雙語][1080p]招募翻譯")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8256,7 +8256,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600099_4_SPY_FAMILY_05_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【05】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【05】【GB_MP4】【1280X720】")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8267,7 +8267,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600087_4_SPY_FAMILY_04_GB_MP4_720P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【04】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【04】GB MP4_720P")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8278,7 +8278,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600086_4_SPY_FAMILY_04_GB_MP4_1080P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【04】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【04】GB MP4_1080P")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8289,7 +8289,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600076_4_SPY_FAMILY_03_GB_MP4_720P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【03】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【03】GB MP4_720P")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8300,7 +8300,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `600075_4_SPY_FAMILY_03_GB_MP4_1080P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【03】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【03】GB MP4_1080P")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8333,7 +8333,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599970_404_05_1080P_WebRip_AVC_AAC_MP4`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][05][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][05][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8344,7 +8344,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599946_4_SPY_FAMILY_05_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][间谍过家家][SPY × FAMILY][05][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][間諜過家家][SPY × FAMILY][05][1080p][MP4][簡中]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8355,7 +8355,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599899_Spy_x_Family_05_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [05][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [05][1080p][簡繁內封]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8366,7 +8366,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599897_Spy_x_Family_05_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [05][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [05][1080p][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8377,7 +8377,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599865_Spy_x_Family_05_1080P_MKV_HEVC`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][05][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][05][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8388,7 +8388,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599864_Spy_x_Family_05_720P_CHS_HEVC_MP4`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][05][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][05][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8399,7 +8399,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599863_04_SPYxFAMILY_05_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][05][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][05][1080p][簡日雙語][招募翻譯]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8410,7 +8410,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599862_04_SPYxFAMILY_05_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][05][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][05][720p][簡日雙語][招募翻譯]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8443,7 +8443,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599750_MingY_Spy_x_Family_05_1080p`() {
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [05][1080p][简体内嵌]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [05][1080p][簡體內嵌]")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8454,7 +8454,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599714_SPY_FAMILY_04_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [04][简体双语][1080p]招募翻译后期")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [04][簡體雙語][1080p]招募翻譯後期")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8465,7 +8465,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599649_NC_Raws_SPY_FAMILY___05_B_Global_3840x2160_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 05 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 05 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("05..05", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -8477,7 +8477,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `599490_LoliHouse_Spy_x_Family___04_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 04 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 04 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8488,7 +8488,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599478_04_SPY_FAMILY_04_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][04][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][04][1080P][簡體][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8510,7 +8510,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599476_04_SPY_FAMILY_04_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][04][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][04][720P][簡體][MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8532,7 +8532,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599433_SPY_FAMILY_04_1080P_WEBrip_MP4`() {
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / SPY×FAMILY][04][简日双语][1080P][WEBrip][MP4](急招翻译、校对、时轴)")
+ val r = parse("[星空字幕組][間諜過家家 / SPY×FAMILY][04][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對、時軸)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8543,7 +8543,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599431_SPY_FAMILY_03_1080P_WEBrip_MP4`() {
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / SPY×FAMILY][03][简日双语][1080P][WEBrip][MP4](急招翻译、校对、时轴)")
+ val r = parse("[星空字幕組][間諜過家家 / SPY×FAMILY][03][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對、時軸)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8565,7 +8565,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599416_4_SPY_FAMILY_04_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 / 间谍家家酒 SPY×FAMILY】【04】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 / 間諜家家酒 SPY×FAMILY】【04】【GB_MP4】【1280X720】")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8576,7 +8576,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599410_04_SPYxFAMILY_04_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][04][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][04][1080p][簡日雙語][招募翻譯]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8587,7 +8587,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599409_04_SPYxFAMILY_04_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][04][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][04][720p][簡日雙語][招募翻譯]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8598,7 +8598,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599382_Spy_x_Family_03_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[间谍过家家 / Spy x Family][03][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[間諜過家家 / Spy x Family][03][x264 1080p][CHS]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8609,7 +8609,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599346_4_SPY_FAMILY_04_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][间谍过家家][SPY × FAMILY][04][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][間諜過家家][SPY × FAMILY][04][1080p][MP4][簡中]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8620,7 +8620,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599326_SPY_FAMILY_03_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [03][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [03][簡體雙語][1080p]招募翻譯")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8631,7 +8631,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599313_Spy_x_Family_04_1080P_MKV_HEVC`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][04][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][04][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8642,7 +8642,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599310_Spy_x_Family_04_720P_CHS_HEVC_MP4`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][04][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][04][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8653,7 +8653,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599304_404_04_1080P_WebRip_AVC_AAC_MP4`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][04][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][04][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8665,7 +8665,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `599286_LuoXinSpot_MingYSub_Spy_x_Family_04_WEBRip_2160p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LuoXinSpot & MingYSub] 间谍过家家 / Spy x Family [04][WEBRip 2160p HEVC 10bit AAC][简体内封]")
+ parse("[LuoXinSpot & MingYSub] 間諜過家家 / Spy x Family [04][WEBRip 2160p HEVC 10bit AAC][簡體內封]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -8676,7 +8676,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599274_Spy_x_Family_04_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [04][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [04][1080p][簡繁內封]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8687,7 +8687,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599272_Spy_x_Family_04_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [04][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [04][1080p][簡體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8698,7 +8698,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599270_4_SPY_FAMILY_03v2_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 SPY×FAMILY】【03v2】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 SPY×FAMILY】【03v2】【GB_MP4】【1280X720】")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8709,7 +8709,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599269_4_SPY_FAMILY_03v2_BIG5_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 SPY×FAMILY】【03v2】【BIG5_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 SPY×FAMILY】【03v2】【BIG5_MP4】【1280X720】")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8742,7 +8742,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599171_Spy_x_Family_02_1080p_AVC`() {
kotlin.run {
- val r = parse("【千夏字幕组】【间谍过家家_Spy x Family】[第02话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【間諜過家家_Spy x Family】[第02話][1080p_AVC][簡體]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8753,7 +8753,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599144_4_SPY_FAMILY_02_GB_MP4_720P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【02】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【02】GB MP4_720P")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8764,7 +8764,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599143_4_SPY_FAMILY_01_GB_MP4_1080P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【02】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【02】GB MP4_1080P")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8775,7 +8775,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599126_MingY_Spy_x_Family_04_1080p`() {
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [04][1080p][简体内嵌]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [04][1080p][簡體內嵌]")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8787,7 +8787,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `599086_LoliHouse_Spy_x_Family___03_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 03 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 03 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8798,7 +8798,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `599064_NC_Raws_SPY_FAMILY___04_B_Global_1920x1080_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 04 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 04 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("04..04", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8809,7 +8809,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598934_04_SPY_FAMILY_03_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][03][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][03][1080P][簡體][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8831,7 +8831,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598932_04_SPY_FAMILY_03_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][03][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][03][720P][簡體][MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8853,7 +8853,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598899_Spy_x_Family_02_x264_1080p_CHS`() {
kotlin.run {
- val r = parse("【悠哈璃羽字幕社】[间谍过家家 / Spy x Family][02][x264 1080p][CHS]")
+ val r = parse("【悠哈璃羽字幕社】[間諜過家家 / Spy x Family][02][x264 1080p][CHS]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8864,7 +8864,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598794_404_03_1080P_WebRip_AVC_AAC_MP4`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][03][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][03][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8875,7 +8875,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598787_4_SPY_FAMILY_03_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][间谍过家家][SPY × FAMILY][03][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][間諜過家家][SPY × FAMILY][03][1080p][MP4][簡中]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8886,7 +8886,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598755_Spy_x_Family_03_1080P_MKV_HEVC`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][03][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][03][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8897,7 +8897,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598754_Spy_x_Family_03_720P_CHS_HEVC_MP4`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][03][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][03][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8930,7 +8930,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598694_04_SPYxFAMILY_03_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][03][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][03][1080p][簡日雙語][招募翻譯]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8941,7 +8941,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598693_04_SPYxFAMILY_03_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][03][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][03][720p][簡日雙語][招募翻譯]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -8952,7 +8952,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598593_Spy_x_Family_03_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [03][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [03][1080p][簡繁內封]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8963,7 +8963,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598591_Spy_x_Family_03_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [03][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [03][1080p][簡體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8975,7 +8975,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `598522_LuoXinSpot_MingYSub_Spy_x_Family_02_WEBRip_2160p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LuoXinSpot & MingYSub] 间谍过家家 / Spy x Family [03][WEBRip 2160p HEVC 10bit AAC][简体内封]")
+ parse("[LuoXinSpot & MingYSub] 間諜過家家 / Spy x Family [03][WEBRip 2160p HEVC 10bit AAC][簡體內封]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -8986,7 +8986,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598453_MingY_Spy_x_Family_03_1080p`() {
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [03][1080p][简体内嵌]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [03][1080p][簡體內嵌]")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -8997,7 +8997,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598388_NC_Raws_SPY_FAMILY___03_B_Global_3840x2160_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 03 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 03 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("03..03", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -9009,7 +9009,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `598317_LuoXinSpot_MingYSub_Spy_x_Family_01_WEBRip_2160p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[LuoXinSpot & MingYSub] 间谍过家家 / Spy x Family [01][WEBRip 2160p HEVC 10bit AAC][简体内封]")
+ parse("[LuoXinSpot & MingYSub] 間諜過家家 / Spy x Family [01][WEBRip 2160p HEVC 10bit AAC][簡體內封]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -9020,7 +9020,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598283_SPY_FAMILY_02_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [02][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [02][簡體雙語][1080p]招募翻譯")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9031,7 +9031,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598156_SPY_FAMILY_02_1080P_WEBrip_MP4`() {
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / SPY×FAMILY][02][简日双语][1080P][WEBrip][MP4](急招翻译、校对、时轴)")
+ val r = parse("[星空字幕組][間諜過家家 / SPY×FAMILY][02][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對、時軸)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9042,7 +9042,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598154_SPY_FAMILY_01_1080P_WEBrip_MP4`() {
kotlin.run {
- val r = parse("[星空字幕组][间谍过家家 / SPY×FAMILY][01][简日双语][1080P][WEBrip][MP4](急招翻译、校对、时轴)")
+ val r = parse("[星空字幕組][間諜過家家 / SPY×FAMILY][01][簡日雙語][1080P][WEBrip][MP4](急招翻譯、校對、時軸)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9053,7 +9053,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598151_4_SPY_FAMILY_02_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 SPY×FAMILY】【02】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 SPY×FAMILY】【02】【GB_MP4】【1280X720】")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -9064,7 +9064,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598150_4_SPY_FAMILY_02_BIG5_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 SPY×FAMILY】【02】【BIG5_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 SPY×FAMILY】【02】【BIG5_MP4】【1280X720】")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -9076,7 +9076,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `598147_LoliHouse_Spy_x_Family___02_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 02 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 02 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9087,7 +9087,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598102_04_SPY_FAMILY_02_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][02][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][02][1080P][簡體][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9109,7 +9109,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598100_04_SPY_FAMILY_02_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][02][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][02][720P][簡體][MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -9131,7 +9131,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598009_NC_Raws_SPY_FAMILY___01_B_Global_3840x2160_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 01 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 01 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -9142,7 +9142,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598006_NC_Raws_SPY_FAMILY___02_B_Global_3840x2160_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 02 (B-Global 3840x2160 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 02 (B-Global 3840x2160 HEVC AAC MKV)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -9175,7 +9175,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598002_04_SPYxFAMILY_02_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][02][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][02][1080p][簡日雙語][招募翻譯]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9186,7 +9186,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `598001_4_SPY_FAMILY_02_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][间谍过家家][SPY × FAMILY][02][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][間諜過家家][SPY × FAMILY][02][1080p][MP4][簡中]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9197,7 +9197,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597966_404_02_1080P_WebRip_AVC_AAC_MP4`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][02][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][02][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9208,7 +9208,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597898_04_SPYxFAMILY_02_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][02][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][02][720p][簡日雙語][招募翻譯]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -9219,7 +9219,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597894_Spy_x_Family_02_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [02][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [02][1080p][簡體內嵌]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9230,7 +9230,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597891_Spy_x_Family_02_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [02][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [02][1080p][簡繁內封]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9263,7 +9263,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597821_Spy_x_Family_01_1080p_AVC`() {
kotlin.run {
- val r = parse("【千夏字幕组】【间谍过家家_Spy x Family】[第01话][1080p_AVC][简体]")
+ val r = parse("【千夏字幕組】【間諜過家家_Spy x Family】[第01話][1080p_AVC][簡體]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9274,7 +9274,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597820_Spy_x_Family_02_1080P_MKV_HEVC`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][02][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][02][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9285,7 +9285,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597819_Spy_x_Family_02_720P_CHS_HEVC_MP4`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][02][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][02][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -9296,7 +9296,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597723_SPY_FAMILY_01_1080p`() {
kotlin.run {
- val r = parse("[云光字幕组]间谍过家家 SPY×FAMILY [01][简体双语][1080p]招募翻译")
+ val r = parse("[雲光字幕組]間諜過家家 SPY×FAMILY [01][簡體雙語][1080p]招募翻譯")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9308,7 +9308,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `597717_LuoXinSpot_MingYSub_Spy_x_Family_02_WEBRip_2160p_AVC_8bit_AAC`() {
kotlin.run {
val r =
- parse("[LuoXinSpot & MingYSub] 间谍过家家 / Spy x Family [02][WEBRip 2160p AVC 8bit AAC][简体内封]")
+ parse("[LuoXinSpot & MingYSub] 間諜過家家 / Spy x Family [02][WEBRip 2160p AVC 8bit AAC][簡體內封]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("4K", r.resolution.toString())
@@ -9319,7 +9319,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597695_MingY_Spy_x_Family_02v2_1080p_CHS`() {
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [02v2][1080p][CHS]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [02v2][1080p][CHS]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9330,7 +9330,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597655_MingY_Spy_x_Family_02_1080p_CHS`() {
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [02][1080p][CHS]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [02][1080p][CHS]")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9341,7 +9341,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597628_NC_Raws_SPY_FAMILY___02_B_Global_1920x1080_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 02 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 02 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("02..02", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9352,7 +9352,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597610_404_01_1080P_WebRip_AVC_AAC_MP4`() {
kotlin.run {
- val r = parse("[酷漫404][间谍过家家][01][1080P][WebRip][简日双语][AVC AAC][MP4][字幕组招人内详]")
+ val r = parse("[酷漫404][間諜過家家][01][1080P][WebRip][簡日雙語][AVC AAC][MP4][字幕組招人內詳]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9364,7 +9364,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
public fun `597428_LoliHouse_Spy_x_Family___01_WebRip_1080p_HEVC_10bit_AAC`() {
kotlin.run {
val r =
- parse("[动漫国字幕组&LoliHouse] Spy x Family / 间谍过家家 - 01 [WebRip 1080p HEVC-10bit AAC][简繁内封字幕]")
+ parse("[動漫國字幕組&LoliHouse] Spy x Family / 間諜過家家 - 01 [WebRip 1080p HEVC-10bit AAC][簡繁內封字幕]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9375,7 +9375,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597409_Spy_x_Family_01_1080P_MKV_HEVC`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][01][简繁日语字幕][1080P][MKV HEVC]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][01][簡繁日語字幕][1080P][MKV HEVC]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9386,7 +9386,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597408_Spy_x_Family_01_720P_CHS_HEVC_MP4`() {
kotlin.run {
- val r = parse("[诸神字幕组][间谍过家家][Spy x Family][01][简日双语字幕][720P][CHS HEVC MP4]")
+ val r = parse("[諸神字幕組][間諜過家家][Spy x Family][01][簡日雙語字幕][720P][CHS HEVC MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -9397,7 +9397,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597393_04_SPY_FAMILY_01_1080P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][01][1080P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][01][1080P][簡體][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9419,7 +9419,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597391_04_SPY_FAMILY_01_720P_MP4`() {
kotlin.run {
- val r = parse("【动漫国字幕组】★04月新番[SPY×FAMILY间谍家家酒 / 间谍过家家][01][720P][简体][MP4]")
+ val r = parse("【動漫國字幕組】★04月新番[SPY×FAMILY間諜家家酒 / 間諜過家家][01][720P][簡體][MP4]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -9441,7 +9441,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597355_4_SPY_FAMILY_01_1080p_MP4`() {
kotlin.run {
- val r = parse("[爱恋&漫猫字幕组][4月新番][间谍过家家][SPY × FAMILY][01][1080p][MP4][简中]")
+ val r = parse("[愛戀&漫貓字幕組][4月新番][間諜過家家][SPY × FAMILY][01][1080p][MP4][簡中]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9452,7 +9452,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597343_4_Spy_Family_01_GB_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 Spy × Family】【01】【GB_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 Spy × Family】【01】【GB_MP4】【1280X720】")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -9463,7 +9463,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597342_4_Spy_Family_01_BIG5_MP4_1280X720`() {
kotlin.run {
- val r = parse("【幻樱字幕组】【4月新番】【间谍过家家 Spy × Family】【01】【BIG5_MP4】【1280X720】")
+ val r = parse("【幻櫻字幕組】【4月新番】【間諜過家家 Spy × Family】【01】【BIG5_MP4】【1280X720】")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -9496,7 +9496,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597248_4_SPY_FAMILY_01_GB_MP4_720P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【01】GB MP4_720P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【01】GB MP4_720P")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -9507,7 +9507,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597247_4_SPY_FAMILY_01_GB_MP4_1080P`() {
kotlin.run {
- val r = parse("【极影字幕社】 ★4月新番 【间谍过家家】【SPY×FAMILY】【01】GB MP4_1080P")
+ val r = parse("【極影字幕社】 ★4月新番 【間諜過家家】【SPY×FAMILY】【01】GB MP4_1080P")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9518,7 +9518,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597238_04_SPYxFAMILY_01_1080p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][01][1080p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][01][1080p][簡日雙語][招募翻譯]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9529,7 +9529,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597237_04_SPYxFAMILY_01_720p`() {
kotlin.run {
- val r = parse("【喵萌奶茶屋】★04月新番★[间谍过家家/间谍家家酒/SPYxFAMILY][01][720p][简日双语][招募翻译]")
+ val r = parse("【喵萌奶茶屋】★04月新番★[間諜過家家/間諜家家酒/SPYxFAMILY][01][720p][簡日雙語][招募翻譯]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, JPN", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("720P", r.resolution.toString())
@@ -9540,7 +9540,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597229_MingY_Spy_x_Family_01_1080p_CHS`() {
kotlin.run {
- val r = parse("[MingY] 间谍过家家 / Spy x Family [01][1080p][CHS]")
+ val r = parse("[MingY] 間諜過家家 / Spy x Family [01][1080p][CHS]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9551,7 +9551,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597154_Spy_x_Family_01_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [01][1080p][简繁内封]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [01][1080p][簡繁內封]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS, CHT", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9562,7 +9562,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `597152_Spy_x_Family_01_1080p`() {
kotlin.run {
- val r = parse("[桜都字幕组] 间谍过家家 / Spy x Family [01][1080p][简体内嵌]")
+ val r = parse("[桜都字幕組] 間諜過家家 / Spy x Family [01][1080p][簡體內嵌]")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("CHS", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
@@ -9573,7 +9573,7 @@ public class PatternTitleParserTest间谍过家家 : PatternBasedTitleParserTest
@Test
public fun `596979_NC_Raws_SPY_FAMILY___01_B_Global_1920x1080_HEVC_AAC_MKV`() {
kotlin.run {
- val r = parse("[NC-Raws] 间谍过家家 / SPY×FAMILY - 01 (B-Global 1920x1080 HEVC AAC MKV)")
+ val r = parse("[NC-Raws] 間諜過家家 / SPY×FAMILY - 01 (B-Global 1920x1080 HEVC AAC MKV)")
assertEquals("01..01", r.episodeRange.toString())
assertEquals("", r.subtitleLanguages.sortedBy { it.id }.joinToString { it.id })
assertEquals("1080P", r.resolution.toString())
diff --git a/datasource/api/test-codegen/src/TestGenerator.kt b/datasource/api/test-codegen/src/TestGenerator.kt
index 52579ae6f..68bc83c3e 100644
--- a/datasource/api/test-codegen/src/TestGenerator.kt
+++ b/datasource/api/test-codegen/src/TestGenerator.kt
@@ -87,8 +87,8 @@ class TestGenerator(
}.build(),
)
addImport("me.him188.ani.datasources.api.title", "PatternBasedTitleParserTestSuite")
- addImport("kotlin.test", "assertEquals") // 它不允许 "*"
- addImport("me.him188.ani.datasources.api", "SubtitleKind") // 它不允许 "*"
+ addImport("kotlin.test", "assertEquals") // 它不允許 "*"
+ addImport("me.him188.ani.datasources.api", "SubtitleKind") // 它不允許 "*"
addType(
TypeSpec.classBuilder(
ClassName(
diff --git a/datasource/api/test-codegen/src/main/AddMoreData.kt b/datasource/api/test-codegen/src/main/AddMoreData.kt
index 77693a539..c547d0946 100644
--- a/datasource/api/test-codegen/src/main/AddMoreData.kt
+++ b/datasource/api/test-codegen/src/main/AddMoreData.kt
@@ -38,7 +38,7 @@ suspend fun main() {
?: File("testData")
val list = listOf(
- "约会大作战",
+ "約會大作戰",
)
TopicFetcher(output, "dmhy").run {
diff --git a/datasource/bangumi/src/commonMain/kotlin/BangumiClient.kt b/datasource/bangumi/src/commonMain/kotlin/BangumiClient.kt
index 594d3fa96..63fd71006 100644
--- a/datasource/bangumi/src/commonMain/kotlin/BangumiClient.kt
+++ b/datasource/bangumi/src/commonMain/kotlin/BangumiClient.kt
@@ -259,9 +259,9 @@ class BangumiClientImpl(
if (resp.contentType() == ContentType.Text.Html) {
// 对不起,您在 秒内只能进行一次搜索,请返回。
val text = resp.bodyAsText()
- if (text.contains("内只能进行一次搜索")) {
+ if (text.contains("內只能進行一次搜索")) {
/*
- 用客户端 get, 如果没有搜索结果, 会返回一个 HTML 提示"对不起,您在 秒内只能进行一次搜索,请返回。", 但是用 chrome 就正常返回了 404
+ 用客户端 get, 如果没有搜索结果, 会返回一个 HTML 提示"對不起,您在 秒內只能進行一次搜索,請返回。", 但是用 chrome 就正常返回了 404
https://api.bgm.tv/search/subject/%E6%90%9C%E7%B4%A2%E4%B8%8D%E5%88%B0%E6%90%9C%E7%B4%A2%E4%B8%8D%E5%88%B0%E6%90%9C%E7%B4%A2%E4%B8%8D%E5%88%B0%E6%B5%8B%E8%AF%95?type=2&responseGroup=SMALL&start=0&max_results=90
*/
diff --git a/datasource/bangumi/src/commonMain/kotlin/client/BangumiSearchApi.kt b/datasource/bangumi/src/commonMain/kotlin/client/BangumiSearchApi.kt
index b679f2d82..715a0ebf2 100644
--- a/datasource/bangumi/src/commonMain/kotlin/client/BangumiSearchApi.kt
+++ b/datasource/bangumi/src/commonMain/kotlin/client/BangumiSearchApi.kt
@@ -34,7 +34,7 @@ interface BangumiSearchApi {
limit: Int? = null,
sort: BangumiSort? = null,
types: List? = null,
- tags: List? = null, // "童年", "原创"
+ tags: List? = null, // "童年", "原創"
airDates: List? = null, // YYYY-MM-DD
ratings: List? = null, // ">=6", "<8"
ranks: List? = null,
diff --git a/datasource/bt/dmhy/dataset-tools/src/DumpDataset.kt b/datasource/bt/dmhy/dataset-tools/src/DumpDataset.kt
index 02827c28a..1f68b26cd 100644
--- a/datasource/bt/dmhy/dataset-tools/src/DumpDataset.kt
+++ b/datasource/bt/dmhy/dataset-tools/src/DumpDataset.kt
@@ -57,7 +57,7 @@
// val client = DmhyClient.Factory.create {
// }
//
-// val query = "葬送的芙莉莲"
+// val query = "葬送的芙莉蓮"
// val session = client.startSearchSession(
// DownloadSearchQuery(
// keywords = query,
@@ -347,9 +347,9 @@
//// println(
//// GenerateDataset().generate(
//// One(
-//// input = "【喵萌奶茶屋】★4月新番★[葬送的芙莉莲/Sousou no Frieren][01][GB][1080P][AVC_AAC][MP4].mp4",
+//// input = "【喵萌奶茶屋】★4月新番★[葬送的芙莉蓮/Sousou no Frieren][01][GB][1080P][AVC_AAC][MP4].mp4",
//// output = Output(
-//// titles = listOf("葬送的芙莉莲", "Sousou no Frieren"),
+//// titles = listOf("葬送的芙莉蓮", "Sousou no Frieren"),
//// episode = Episode("01"),
//// resolution = Resolution.R1080P,
//// subtitleLanguages = listOf(SubtitleLanguage.ChineseSimplified),
diff --git a/datasource/bt/dmhy/src/jvmMain/kotlin/DmhyMediaSource.kt b/datasource/bt/dmhy/src/jvmMain/kotlin/DmhyMediaSource.kt
index 9d7bb8430..4a8def17b 100644
--- a/datasource/bt/dmhy/src/jvmMain/kotlin/DmhyMediaSource.kt
+++ b/datasource/bt/dmhy/src/jvmMain/kotlin/DmhyMediaSource.kt
@@ -33,7 +33,7 @@ class DmhyMediaSource(
const val ID = "dmhy"
val INFO = MediaSourceInfo(
displayName = "動漫花園",
- description = "动漫资源聚合网站",
+ description = "動漫資源聚合網站",
iconUrl = "https://dmhy.org/favicon.ico",
iconResourceId = "dmhy.png",
)
diff --git a/datasource/bt/mikan/src/commonMain/kotlin/MikanMediaSource.kt b/datasource/bt/mikan/src/commonMain/kotlin/MikanMediaSource.kt
index 53cf3d731..dcf6aed41 100644
--- a/datasource/bt/mikan/src/commonMain/kotlin/MikanMediaSource.kt
+++ b/datasource/bt/mikan/src/commonMain/kotlin/MikanMediaSource.kt
@@ -86,7 +86,7 @@ class MikanCNMediaSource(
const val ID = "mikan-mikanime-tv"
const val BASE_URL = "https://mikanime.tv"
val INFO = MediaSourceInfo(
- displayName = "蜜柑计划 (CN)",
+ displayName = "蜜柑計劃 (CN)",
websiteUrl = BASE_URL,
iconUrl = "https://mikanani.me/images/mikan-pic.png",
iconResourceId = "mikan.png",
@@ -123,7 +123,7 @@ class MikanMediaSource(
const val ID = "mikan"
const val BASE_URL = "https://mikanani.me"
val INFO = MediaSourceInfo(
- displayName = "蜜柑计划",
+ displayName = "蜜柑計劃",
websiteUrl = BASE_URL,
iconUrl = "https://mikanani.me/images/mikan-pic.png",
iconResourceId = "mikan.png",
@@ -213,7 +213,7 @@ abstract class AbstractMikanMediaSource(
private suspend fun HttpClient.searchByIndexOrNull(request: MediaFetchRequest): List? {
val client = this
// 长度限制:
- // "无职转生Ⅱ ~到了异世界就拿出真本事~" 19 chars, 可以搜索, 再长的就会直接没有结果
+ // "無職轉生Ⅱ ~到了異世界就拿出真本事~" 19 chars, 可以搜索, 再长的就会直接没有结果
val bangumiSubjectId = request.subjectId
@@ -340,7 +340,7 @@ abstract class AbstractMikanMediaSource(
document.getElementsByClass("bangumi-info")
.filter(
predicate = {
- it.text().contains("Bangumi番组计划链接:")
+ it.text().contains("Bangumi番組計劃鏈接:")
},
).firstNotNullOfOrNull { element ->
element.getElementsByTag("a").attr("href").substringAfter("subject/", "")
diff --git a/datasource/bt/mikan/src/commonTest/kotlin/MikanSubjectIndexTest.kt b/datasource/bt/mikan/src/commonTest/kotlin/MikanSubjectIndexTest.kt
index 3ae984acb..2d013ef2b 100644
--- a/datasource/bt/mikan/src/commonTest/kotlin/MikanSubjectIndexTest.kt
+++ b/datasource/bt/mikan/src/commonTest/kotlin/MikanSubjectIndexTest.kt
@@ -13,7 +13,7 @@ class MikanSubjectIndexTest {
fun `can parse subject index`() {
val ids = AbstractMikanMediaSource.parseMikanSubjectIdsFromSearch(
Xml.parse(
- readTestResourceAsString("/mikan-search-无职转生.txt"),
+ readTestResourceAsString("/mikan-search-無職轉生.txt"),
),
)
assertEquals(listOf(3060, 2353, 2549, 3344).map { it.toString() }, ids)
@@ -23,7 +23,7 @@ class MikanSubjectIndexTest {
fun `can parse bangumi subject id`() {
val id = AbstractMikanMediaSource.parseBangumiSubjectIdFromMikanSubjectDetails(
Xml.parse(
- readTestResourceAsString("/mikan-bangumi-无职转生.txt"),
+ readTestResourceAsString("/mikan-bangumi-無職轉生.txt"),
),
)
assertEquals("373247", id)
@@ -33,7 +33,7 @@ class MikanSubjectIndexTest {
fun `can parse subject rss`() {
val list = AbstractMikanMediaSource.parseRssTopicList(
Xml.parse(
- readTestResourceAsString("/mikan-subject-rss-无职转生.txt"),
+ readTestResourceAsString("/mikan-subject-rss-無職轉生.txt"),
),
TopicCriteria.ANY,
allowEpMatch = false, // doesn't matter
diff --git a/datasource/ikaros/src/commonMain/kotlin/AssNameParser.kt b/datasource/ikaros/src/commonMain/kotlin/AssNameParser.kt
index b1579ef35..a4d649ddc 100644
--- a/datasource/ikaros/src/commonMain/kotlin/AssNameParser.kt
+++ b/datasource/ikaros/src/commonMain/kotlin/AssNameParser.kt
@@ -27,7 +27,7 @@ internal class AssNameParser {
val removeSuffix = name.removeSuffix(".ass")
val language = removeSuffix.substringAfterLast('.', "")
if (language.isEmpty()) return removeSuffix
- if (scCnLowerCaseList.contains(language.toLowerCasePreservingASCIIRules())) return "简中"
+ if (scCnLowerCaseList.contains(language.toLowerCasePreservingASCIIRules())) return "簡中"
if (tcCnLowerCaseList.contains(language.toLowerCasePreservingASCIIRules())) return "繁中"
return language;
}
diff --git a/datasource/ikaros/src/commonMain/kotlin/IkarosMediaSource.kt b/datasource/ikaros/src/commonMain/kotlin/IkarosMediaSource.kt
index 0348f70e8..0aa482e4e 100644
--- a/datasource/ikaros/src/commonMain/kotlin/IkarosMediaSource.kt
+++ b/datasource/ikaros/src/commonMain/kotlin/IkarosMediaSource.kt
@@ -41,7 +41,7 @@ class IkarosMediaSource(
const val ID = "ikaros"
val INFO = MediaSourceInfo(
displayName = "Ikaros",
- description = "专注于 ACGMN 的内容管理系统 (CMS)",
+ description = "專注於 ACGMN 的內容管理系統 (CMS)",
websiteUrl = "https://docs.ikaros.run",
iconUrl = "https://docs.ikaros.run/img/favicon.ico",
)
@@ -65,8 +65,8 @@ class IkarosMediaSource(
object Parameters : MediaSourceParametersBuilder() {
val baseUrl = string("baseUrl", description = "API base URL")
- val username = string("username", description = "用户名")
- val password = string("password", description = "密码")
+ val username = string("username", description = "用戶名")
+ val password = string("password", description = "密碼")
}
class Factory : MediaSourceFactory {
diff --git a/datasource/jellyfin/src/commonMain/kotlin/BaseJellyfinMediaSource.kt b/datasource/jellyfin/src/commonMain/kotlin/BaseJellyfinMediaSource.kt
index 8cf888ce5..2d414b362 100644
--- a/datasource/jellyfin/src/commonMain/kotlin/BaseJellyfinMediaSource.kt
+++ b/datasource/jellyfin/src/commonMain/kotlin/BaseJellyfinMediaSource.kt
@@ -54,7 +54,7 @@ abstract class BaseJellyfinMediaSource(
override suspend fun checkConnection(): ConnectionStatus {
try {
- doSearch("AA测试BB")
+ doSearch("AA測試BB")
return ConnectionStatus.SUCCESS
} catch (e: CancellationException) {
throw e
diff --git a/datasource/jellyfin/src/commonMain/kotlin/EmbyMediaSource.kt b/datasource/jellyfin/src/commonMain/kotlin/EmbyMediaSource.kt
index 3373e02dd..0d0064afa 100644
--- a/datasource/jellyfin/src/commonMain/kotlin/EmbyMediaSource.kt
+++ b/datasource/jellyfin/src/commonMain/kotlin/EmbyMediaSource.kt
@@ -38,11 +38,11 @@ class EmbyMediaSource(
val baseUrl = string(
"baseUrl",
defaultProvider = { "http://localhost:8096" },
- description = "服务器地址\n示例: http://localhost:8096",
+ description = "服務器地址\n示例: http://localhost:8096",
)
val userId = string(
"userId",
- description = "User ID, 可在 Emby \"控制台 - 用户\" 中选择一个用户, 在浏览器地址栏找到 \"userId=\" 后面的内容\n示例: cc91f58d951648829c90115520f6adec",
+ description = "User ID, 可在 Emby \"控制台 - 用户\" 中選擇一個用戶, 在瀏覽器地址欄找到 \"userId=\" 後面的內容\n示例: cc91f58d951648829c90115520f6adec",
)
val apikey = string(
"apikey",
diff --git a/datasource/jellyfin/src/commonMain/kotlin/JellyfinMediaSource.kt b/datasource/jellyfin/src/commonMain/kotlin/JellyfinMediaSource.kt
index aaa1655a7..91808fcf1 100644
--- a/datasource/jellyfin/src/commonMain/kotlin/JellyfinMediaSource.kt
+++ b/datasource/jellyfin/src/commonMain/kotlin/JellyfinMediaSource.kt
@@ -36,11 +36,11 @@ class JellyfinMediaSource(config: MediaSourceConfig, client: ScopedHttpClient) :
val baseUrl = string(
"baseUrl",
defaultProvider = { "http://localhost:8096" },
- description = "服务器地址\n示例: http://localhost:8096",
+ description = "服務器地址\n示例: http://localhost:8096",
)
val userId = string(
"userId",
- description = "User ID, 可在 Jellyfin \"控制台 - 用户\" 中选择一个用户, 在浏览器地址栏找到 \"userId=\" 后面的内容\n示例: cc91f58d951648829c90115520f6adec",
+ description = "User ID, 可在 Jellyfin \"控制台 - 用户\" 中選擇一個用戶, 在瀏覽器地址欄找到 \"userId=\" 後面的內容\n示例: cc91f58d951648829c90115520f6adec",
)
val apikey = string(
"apikey",
diff --git a/datasource/web/web-base/src/TreeStepWebMediaSource.kt b/datasource/web/web-base/src/TreeStepWebMediaSource.kt
index dc441dbd0..ab62bd755 100644
--- a/datasource/web/web-base/src/TreeStepWebMediaSource.kt
+++ b/datasource/web/web-base/src/TreeStepWebMediaSource.kt
@@ -99,7 +99,7 @@ abstract class ThreeStepWebMediaSource : WebMediaSource() {
}
private fun isPossiblyMovie(title: String): Boolean {
- return ("简" in title || "繁" in title) &&
+ return ("簡" in title || "繁" in title) &&
("2160P" in title || "1440P" in title || "2K" in title || "4K" in title || "1080P" in title || "720P" in title)
}
diff --git a/torrent/api/src/jvmMain/kotlin/TorrentInput.jvm.kt b/torrent/api/src/jvmMain/kotlin/TorrentInput.jvm.kt
index fb3d29912..c77525fb7 100644
--- a/torrent/api/src/jvmMain/kotlin/TorrentInput.jvm.kt
+++ b/torrent/api/src/jvmMain/kotlin/TorrentInput.jvm.kt
@@ -71,7 +71,7 @@ class TorrentInput(
/**
* 逻辑上的偏移量, 也就是当 [seekTo] `k` 时, 实际上是在 `logicalStartOffset + k` 处.
*
- * 这里的 "逻辑上" 的第一个 piece 指的是包含文件的第一个 byte 的 piece.
+ * 这里的 "邏輯上" 的第一个 piece 指的是包含文件的第一个 byte 的 piece.
*/
private val logicalStartOffset: Long = pieces.minOf { it.dataStartOffset }, // 默认为第一个 piece 开头
private val onWait: suspend (Piece) -> Unit = { },
diff --git a/translate_animeko.py b/translate_animeko.py
new file mode 100644
index 000000000..985f472d9
--- /dev/null
+++ b/translate_animeko.py
@@ -0,0 +1,54 @@
+import os
+import re
+import opencc
+
+def translate_sc_to_tc(directory):
+ cc = opencc.OpenCC('s2t')
+ # Regex to match double-quoted strings containing at least one Chinese character.
+ # It accounts for escaped quotes within the string (simple handling).
+ # We are looking for " ... " where ... contains Chinese.
+ # [^"\\] means any character except " or \
+ # \\. means any escaped character
+ # The regex below simplifies to: match " followed by any number of (non-quote OR escaped char), containing at least one Chinese char, followed by "
+ # But for simplicity and robustness in this specific codebase, we'll stick to the simpler version which handles most cases without getting stuck in catastrophic backtracking.
+ # string_pattern = re.compile(r'"([^"\n\\]*(?:\\.[^"\n\\]*)*[\u4e00-\u9fa5]+[^"\n\\]*(?:\\.[^"\n\\]*)*)"')
+
+ # Let's use a simpler one that worked in previous search logic but slightly more robust for python re
+ string_pattern = re.compile(r'"([^"\n]*[\u4e00-\u9fa5]+[^"\n]*)"')
+
+ for root, dirs, files in os.walk(directory):
+ # Exclude build directories and hidden directories
+ if 'build' in root.split(os.sep) or '.git' in root.split(os.sep) or '.idea' in root.split(os.sep):
+ continue
+
+ for file in files:
+ if file.endswith(".kt"):
+ file_path = os.path.join(root, file)
+
+ try:
+ with open(file_path, 'r', encoding='utf-8') as f:
+ content = f.read()
+ except Exception as e:
+ print(f"Error reading {file_path}: {e}")
+ continue
+
+ def replace_match(match):
+ original_string = match.group(1)
+ converted_string = cc.convert(original_string)
+ # Reconstruct the string with quotes
+ return f'"{converted_string}"'
+
+ new_content, count = string_pattern.subn(replace_match, content)
+
+ if count > 0:
+ print(f"Translating {file_path} ({count} strings)...")
+ try:
+ with open(file_path, 'w', encoding='utf-8') as f:
+ f.write(new_content)
+ except Exception as e:
+ print(f"Error writing {file_path}: {e}")
+
+if __name__ == "__main__":
+ target_dir = os.getcwd()
+ print(f"Scanning directory: {target_dir}")
+ translate_sc_to_tc(target_dir)
diff --git a/utils/platform/src/commonMain/kotlin/Strings.kt b/utils/platform/src/commonMain/kotlin/Strings.kt
index ea5d7aff6..81b6b572d 100644
--- a/utils/platform/src/commonMain/kotlin/Strings.kt
+++ b/utils/platform/src/commonMain/kotlin/Strings.kt
@@ -43,7 +43,7 @@ fun String.Companion.format2f(value: Float): String {
* 示例:
* ```kotlin
* val sb = StringBuilder("abc123def456ghi")
- * sb.deleteMatches(Regex("\\d+")) // 结果为 "abcdefghi"
+ * sb.deleteMatches(Regex("\\d+")) // 結果爲 "abcdefghi"
* ```
*/
fun StringBuilder.deleteMatches(regex: Regex): StringBuilder {