feat(file_renamer): Support more formats

This commit is contained in:
2026-07-24 15:56:38 +02:00
parent d0c1f1ab8a
commit b0088aeeef
3 changed files with 1182 additions and 91 deletions
+148 -62
View File
@@ -43,8 +43,8 @@ from file_renamer import Release
],
[
"DadCrush.21.10.09.Ailee.Anne.My.Stepdaughters.Hot.XXX.1080p.HEVC.x265.PRT.mp4",
datetime.date(2021, 10, 9)
]
datetime.date(2021, 10, 9),
],
],
)
def test_parse_date(filename: str, date: datetime.date | None):
@@ -57,68 +57,154 @@ def test_parse_date(filename: str, date: datetime.date | None):
assert parsed.date == date
@pytest.mark.parametrize(['filename', 'expected'], [
@pytest.mark.parametrize(
["filename", "expected"],
[
'PenthouseGold.23.02.05.Tiffany.Tatum.XXX.720p.HEVC.x265.PRT',
Release(studio='DoctorAdventures', actors=['Jamie Michelle'], title='Nurse Jamie Knows Best', released_at=datetime.date(2021, 5, 26)),
[
"PornFidelity.E1109.Uma.Jolie.XXX.720p.HEVC.x265.PRT",
Release(
studio="PornFidelity",
actors=["Uma Jolie"],
title="E1109",
),
],
[
"PenthouseGold.23.02.05.Tiffany.Tatum.XXX.720p.HEVC.x265.PRT",
Release(
studio="DoctorAdventures",
actors=["Jamie Michelle"],
title="Nurse Jamie Knows Best",
released_at=datetime.date(2021, 5, 26),
),
],
[
"Rebecca Volpetti -- @RealityKings -- Driving Him Crazy [1080p, x265] -- 2019-04-10",
Release(
actors=["Rebecca Volpetti"],
studio="RealityKings",
title="Driving Him Crazy",
released_at=datetime.date(2019, 4, 10),
),
],
[
"Liz Jordan -- @Lubed -- Sopping Oil -- 2023-02-07 [1080p, x265]",
Release(
actors=["Liz Jordan"],
studio="Lubed",
title="Sopping Oil",
released_at=datetime.date(2023, 2, 7),
),
],
[
"Liz Jordan--@Lubed--Sopping Oil--2023-02-07 [1080p, x265]",
Release(
actors=["Liz Jordan"],
studio="Lubed",
title="Sopping Oil",
released_at=datetime.date(2023, 2, 7),
),
],
[
"Liz Jordan -- @Lubed -- 2023-02-07 [1080p, x265]",
Release(
actors=["Liz Jordan"],
studio="Lubed",
title=None,
released_at=datetime.date(2023, 2, 7),
),
],
[
"Liz Jordan -- Sopping Oil -- 2023-02-07 [1080p, x265]",
Release(
actors=["Liz Jordan"],
studio=None,
title="Sopping Oil",
released_at=datetime.date(2023, 2, 7),
),
],
[
"Liz Jordan -- Sopping Oil",
Release(
actors=["Liz Jordan"],
studio=None,
title="Sopping Oil",
released_at=None,
),
],
[
"DadCrush.21.10.09.Ailee.Anne.My.Stepdaughters.Hot.XXX.1080p.HEVC.x265.PRT.mp4",
Release(
studio="DadCrush",
actors=["Ailee Anne"],
title="My Stepdaughters Hot",
released_at=datetime.date(2021, 10, 9),
),
],
[
"Deeper.21.11.11.Kenzie.Anne.XXX.1080p.HEVC.x265.PRT.mkv",
Release(
studio="Deeper",
actors=["Kenzie Anne"],
title=None,
released_at=datetime.date(2021, 11, 11),
),
],
[
"DevilsFilm.22.03.19.Kira.Noir.Wife.Swap.Schemes.2.XXX.1080p.HEVC.x265.PRT.mkv",
Release(
studio="DevilsFilm",
actors=["Kira Noir"],
title="Wife Swap Schemes 2",
released_at=datetime.date(2022, 3, 19),
),
],
[
"DogHouseDigital.22.04.06.Maddy.May.Full.Service.Massage.XXX.1080p.HEVC.x265.PRT.mkv",
Release(
studio="DogHouseDigital",
actors=["Maddy May"],
title="Full Service Massage",
released_at=datetime.date(2022, 4, 6),
),
],
[
"EvilAngel.22.04.05.Diana.Grace.XXX.1080p.HEVC.x265.PRT.mkv",
Release(
studio="EvilAngel",
actors=["Diana Grace"],
title=None,
released_at=datetime.date(2022, 4, 5),
),
],
[
"Slayed.21.10.07.Izzy.Lush.And.Aidra.Fox.XXX.1080p.HEVC.x265.PRT.mkv",
Release(
studio="Slayed",
actors=["Aidra Fox", "Izzy Lush"],
title=None,
released_at=datetime.date(2021, 10, 7),
),
],
[
"ExploitedCollegeGirls.22.06.30.Gaby.XXX.1080p.HEVC.x265.PRT.mkv",
Release(
studio="ExploitedCollegeGirls",
actors=["Gaby"],
title=None,
released_at=datetime.date(2022, 6, 30),
),
],
[
"DoctorAdventures.21.05.26.Jamie.Michelle.Nurse.Jamie.Knows.Best.PRT.mp4",
Release(
studio="DoctorAdventures",
actors=["Jamie Michelle"],
title="Nurse Jamie Knows Best",
released_at=datetime.date(2021, 5, 26),
),
],
],
[
'Rebecca Volpetti -- @RealityKings -- Driving Him Crazy [1080p, x265] -- 2019-04-10',
Release(actors=['Rebecca Volpetti'], studio='RealityKings', title='Driving Him Crazy', released_at=datetime.date(2019, 4, 10)),
],
[
'Liz Jordan -- @Lubed -- Sopping Oil -- 2023-02-07 [1080p, x265]',
Release(actors=['Liz Jordan'], studio='Lubed', title='Sopping Oil', released_at=datetime.date(2023, 2, 7)),
],
[
'Liz Jordan--@Lubed--Sopping Oil--2023-02-07 [1080p, x265]',
Release(actors=['Liz Jordan'], studio='Lubed', title='Sopping Oil', released_at=datetime.date(2023, 2, 7)),
],
[
'Liz Jordan -- @Lubed -- 2023-02-07 [1080p, x265]',
Release(actors=['Liz Jordan'], studio='Lubed', title=None, released_at=datetime.date(2023, 2, 7)),
],
[
'Liz Jordan -- Sopping Oil -- 2023-02-07 [1080p, x265]',
Release(actors=['Liz Jordan'], studio=None, title='Sopping Oil', released_at=datetime.date(2023, 2, 7)),
],
[
'Liz Jordan -- Sopping Oil',
Release(actors=['Liz Jordan'], studio=None, title='Sopping Oil', released_at=None),
],
[
'DadCrush.21.10.09.Ailee.Anne.My.Stepdaughters.Hot.XXX.1080p.HEVC.x265.PRT.mp4',
Release(studio='DadCrush', actors=['Ailee Anne'], title='My Stepdaughters Hot', released_at=datetime.date(2021, 10, 9))
],
[
'Deeper.21.11.11.Kenzie.Anne.XXX.1080p.HEVC.x265.PRT.mkv',
Release(studio='Deeper', actors=['Kenzie Anne'], title=None, released_at=datetime.date(2021, 11, 11)),
],
[
'DevilsFilm.22.03.19.Kira.Noir.Wife.Swap.Schemes.2.XXX.1080p.HEVC.x265.PRT.mkv',
Release(studio='DevilsFilm', actors=['Kira Noir'], title='Wife Swap Schemes 2', released_at=datetime.date(2022, 3, 19)),
],
[
'DogHouseDigital.22.04.06.Maddy.May.Full.Service.Massage.XXX.1080p.HEVC.x265.PRT.mkv',
Release(studio='DogHouseDigital', actors=['Maddy May'], title='Full Service Massage', released_at=datetime.date(2022, 4, 6)),
],
[
'EvilAngel.22.04.05.Diana.Grace.XXX.1080p.HEVC.x265.PRT.mkv',
Release(studio='EvilAngel', actors=['Diana Grace'], title=None, released_at=datetime.date(2022, 4, 5)),
],
[
'Slayed.21.10.07.Izzy.Lush.And.Aidra.Fox.XXX.1080p.HEVC.x265.PRT.mkv',
Release(studio='Slayed', actors=['Aidra Fox', 'Izzy Lush'], title=None, released_at=datetime.date(2021, 10, 7)),
],
[
'ExploitedCollegeGirls.22.06.30.Gaby.XXX.1080p.HEVC.x265.PRT.mkv',
Release(studio='ExploitedCollegeGirls', actors=['Gaby'], title=None, released_at=datetime.date(2022, 6, 30)),
],
[
'DoctorAdventures.21.05.26.Jamie.Michelle.Nurse.Jamie.Knows.Best.PRT.mp4',
Release(studio='DoctorAdventures', actors=['Jamie Michelle'], title='Nurse Jamie Knows Best', released_at=datetime.date(2021, 5, 26)),
],
])
)
def test_parse_release(filename: str, expected):
parsed = file_renamer.parse_release(filename)
assert parsed == expected