From 2bcfb88c75763e09b594b428150cfeac9646214c Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Thu, 4 May 2023 22:19:22 +0800 Subject: [PATCH 01/18] Update notification --- src/main.py | 14 +++++++++++++- src/module/api.py | 9 --------- src/module/manager/renamer.py | 6 +++--- src/module/parser/analyser/torrent_parser.py | 20 ++++++++++++-------- 4 files changed, 28 insertions(+), 21 deletions(-) diff --git a/src/main.py b/src/main.py index 435389d2..bcb2b773 100644 --- a/src/main.py +++ b/src/main.py @@ -19,6 +19,19 @@ logger = logging.getLogger(__name__) main_process = multiprocessing.Process(target=app.run, args=(settings,)) +@router.on_event("startup") +async def startup(): + global main_process + main_process.start() + + +@router.on_event("shutdown") +async def shutdown(): + global main_process + if main_process.is_alive(): + os.kill(main_process.pid, signal.SIGTERM) + + @router.get("/api/v1/restart", tags=["program"]) async def restart(): global main_process @@ -85,6 +98,5 @@ else: if __name__ == "__main__": log_config = uvicorn.config.LOGGING_CONFIG log_config["formatters"]["default"]["fmt"] = "[%(asctime)s] %(levelname)-8s %(message)s" - main_process.start() uvicorn.run(router, host="0.0.0.0", port=settings.program.webui_port, log_config=log_config) diff --git a/src/module/api.py b/src/module/api.py index 48c66129..9d80015c 100644 --- a/src/module/api.py +++ b/src/module/api.py @@ -15,15 +15,6 @@ router = FastAPI() api_func = APIProcess(settings) -@router.on_event("startup") -async def startup_event(): - logger = logging.getLogger("uvicorn.access") - handler = logging.StreamHandler() - handler.setLevel(logging.INFO) - handler.setFormatter(logging.Formatter("[%(asctime)s] %(levelname)-8s %(message)s")) - logger.addHandler(handler) - - @router.get("/api/v1/data", tags=["info"]) async def get_data(): try: diff --git a/src/module/manager/renamer.py b/src/module/manager/renamer.py index 04f68936..417fb106 100644 --- a/src/module/manager/renamer.py +++ b/src/module/manager/renamer.py @@ -47,7 +47,7 @@ class Renamer: torrent_name = info.name suffix = os.path.splitext(media_path)[-1] compare_name = self.get_file_name(media_path) - new_path = self._renamer.torrent_parser( + new_path, episode = self._renamer.torrent_parser( torrent_name=torrent_name, bangumi_name=bangumi_name, season=season, @@ -57,7 +57,7 @@ class Renamer: if compare_name != new_path: try: self._client.rename_torrent_file(_hash=info.hash, old_path=media_path, new_path=new_path) - self._notification.send_msg(bangumi_name, "最新剧集已经更新,已自动重命名。") + self._notification.send_msg(bangumi_name, f"第{episode}集已经更新,已自动重命名。") except Exception as e: logger.warning(f"{torrent_name} rename failed") logger.warning(f"Season name: {bangumi_name}, Season: {season}, Suffix: {suffix}") @@ -72,7 +72,7 @@ class Renamer: if path_len <= 2: suffix = os.path.splitext(media_path)[-1] torrent_name = self.get_file_name(media_path) - new_name = self._renamer.torrent_parser( + new_name, episode = self._renamer.torrent_parser( torrent_name=torrent_name, bangumi_name=bangumi_name, season=season, diff --git a/src/module/parser/analyser/torrent_parser.py b/src/module/parser/analyser/torrent_parser.py index 0b96b7dd..85334d7a 100644 --- a/src/module/parser/analyser/torrent_parser.py +++ b/src/module/parser/analyser/torrent_parser.py @@ -44,9 +44,10 @@ def rename_normal(info: DownloadInfo): for rule in RULES: match_obj = re.match(rule, info.name, re.I) if match_obj is not None: + episode = match_obj.group(2) title = re.sub(r"([Ss]|Season )\d{1,3}", "", match_obj.group(1)).strip() - new_name = f"{title} S{info.season}E{match_obj.group(2)}{match_obj.group(3)}" - return new_name + new_name = f"{title} S{info.season}E{episode}{match_obj.group(3)}" + return new_name, episode def rename_pn(info: DownloadInfo): @@ -55,24 +56,26 @@ def rename_pn(info: DownloadInfo): if match_obj is not None: title = re.sub(r"([Ss]|Season )\d{1,3}", "", match_obj.group(1)).strip() title = title if title != "" else info.folder_name + episode = match_obj.group(2) new_name = re.sub( r"[\[\]]", "", - f"{title} S{info.season}E{match_obj.group(2)}{info.suffix}", + f"{title} S{info.season}E{episode}{info.suffix}", ) - return new_name + return new_name, episode def rename_advance(info: DownloadInfo): for rule in RULES: match_obj = re.match(rule, info.file_name, re.I) if match_obj is not None: + episode = match_obj.group(2) new_name = re.sub( r"[\[\]]", "", - f"{info.folder_name} S{info.season}E{match_obj.group(2)}{info.suffix}", + f"{info.folder_name} S{info.season}E{episode}{info.suffix}", ) - return new_name + return new_name, episode def rename_no_season_pn(info: DownloadInfo): @@ -80,12 +83,13 @@ def rename_no_season_pn(info: DownloadInfo): match_obj = re.match(rule, info.file_name, re.I) if match_obj is not None: title = match_obj.group(1).strip() + episode = match_obj.group(2) new_name = re.sub( r"[\[\]]", "", - f"{title} E{match_obj.group(2)}{info.suffix}", + f"{title} E{episode}{info.suffix}", ) - return new_name + return new_name, episode def rename_none(info: DownloadInfo): From 203de7b9e7ba0c0d886be39a56bc51e691aa9c45 Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Fri, 5 May 2023 10:47:49 +0800 Subject: [PATCH 02/18] Fix jysub problem. Close #231 #137 --- src/module/parser/analyser/raw_parser.py | 11 ++++++++++- src/test/test_raw_parser.py | 12 +++++++++++- src/test/test_torrent_parser.py | 24 ++++++++++++------------ 3 files changed, 33 insertions(+), 14 deletions(-) diff --git a/src/module/parser/analyser/raw_parser.py b/src/module/parser/analyser/raw_parser.py index 68b8eb8f..af89cfe5 100644 --- a/src/module/parser/analyser/raw_parser.py +++ b/src/module/parser/analyser/raw_parser.py @@ -7,7 +7,7 @@ logger = logging.getLogger(__name__) EPISODE_RE = re.compile(r"\d+") TITLE_RE = re.compile( - r"(.*|\[.*])( -? \d+|\[\d+]|\[\d+.?[vV]\d]|[ 第]?\d+[话話集]|\[\d+.?END]|[Ee][Pp]?\d+)(.*)" + r"(.*|\[.*])( -? \d+|\[\d+]|\[\d+.?[vV]\d]|第\d+[话話集]|\[第?\d+[话話集]]|\[\d+.?END]|[Ee][Pp]?\d+)(.*)" ) RESOLUTION_RE = re.compile(r"1080|720|2160|4K") SOURCE_RE = re.compile(r"B-Global|[Bb]aha|[Bb]ilibili|AT-X|Web") @@ -41,6 +41,10 @@ def prefix_process(raw: str, group: str) -> str: raw = re.sub(f".{group}.", "", raw) raw_process = PREFIX_RE.sub("/", raw) arg_group = raw_process.split("/") + while "" in arg_group: + arg_group.remove("") + if len(arg_group) == 1: + arg_group = arg_group[0].split(" ") for arg in arg_group: if re.search(r"新番|月?番", arg) and len(arg) <= 5: raw = re.sub(f".{arg}.", "", raw) @@ -123,6 +127,7 @@ def clean_sub(sub: str | None) -> str | None: return sub return re.sub(r"_MP4|_MKV", "", sub) + def process(raw_title: str): raw_title = raw_title.strip() content_title = pre_process(raw_title) @@ -163,5 +168,9 @@ def raw_parser(raw: str) -> Episode | None: return Episode(name_en, name_zh, name_jp, season, sr, episode, sub, group, dpi, source) +if __name__ == '__main__': + title = "【幻樱字幕组】【4月新番】【古见同学有交流障碍症 第二季 Komi-san wa, Komyushou Desu. S02】【22】【GB_MP4】【1920X1080】" + ep = raw_parser(title) + print(ep) diff --git a/src/test/test_raw_parser.py b/src/test/test_raw_parser.py index 2d619df1..b4c3b446 100644 --- a/src/test/test_raw_parser.py +++ b/src/test/test_raw_parser.py @@ -46,7 +46,8 @@ def test_raw_parser(): content = "[织梦字幕组][尼尔:机械纪元 NieR Automata Ver1.1a][02集][1080P][AVC][简日双语]" info = raw_parser(content) assert info.group == "织梦字幕组" - assert info.title_zh == "尼尔:机械纪元 NieR Automata Ver1.1a" + assert info.title_zh == "尼尔:机械纪元" + assert info.title_en == "NieR Automata Ver1.1a" assert info.resolution == "1080P" assert info.episode == 2 assert info.season == 1 @@ -59,3 +60,12 @@ def test_raw_parser(): assert info.resolution == "1080p" assert info.episode == 33 assert info.season == 1 + + content = "【极影字幕社】★4月新番 天国大魔境 Tengoku Daimakyou 第05话 GB 720P MP4(字幕社招人内详)" + info = raw_parser(content) + assert info.group == "极影字幕社" + assert info.title_zh == "天国大魔境" + assert info.title_en == "Tengoku Daimakyou" + assert info.resolution == "720P" + assert info.episode == 5 + assert info.season == 1 diff --git a/src/test/test_torrent_parser.py b/src/test/test_torrent_parser.py index aa710e41..46d6e281 100644 --- a/src/test/test_torrent_parser.py +++ b/src/test/test_torrent_parser.py @@ -6,8 +6,8 @@ def test_torrent_parser(): folder_name = "我内心的糟糕念头(2023)" season = 1 suffix = ".mp4" - assert torrent_parser(file_name, folder_name, season, suffix, "pn") == "Boku no Kokoro no Yabai Yatsu S01E01.mp4" - assert torrent_parser(file_name, folder_name, season, suffix, "advance") == "我内心的糟糕念头(2023) S01E01.mp4" + assert torrent_parser(file_name, folder_name, season, suffix, "pn")[0] == "Boku no Kokoro no Yabai Yatsu S01E01.mp4" + assert torrent_parser(file_name, folder_name, season, suffix, "advance")[0] == "我内心的糟糕念头(2023) S01E01.mp4" assert torrent_parser(file_name, folder_name, season, suffix, "none") == "[Lilith-Raws] Boku no Kokoro no Yabai Yatsu - 01 [Baha][WEB-DL][1080p][AVC AAC][CHT][MP4].mp4" @@ -15,33 +15,33 @@ def test_torrent_parser(): folder_name = "总之就是非常可爱(2021)" season = 2 suffix = ".mp4" - assert torrent_parser(file_name, folder_name, season, suffix, "pn") == "Tonikaku Kawaii S02E01.mp4" - assert torrent_parser(file_name, folder_name, season, suffix, "advance") == "总之就是非常可爱(2021) S02E01.mp4" + assert torrent_parser(file_name, folder_name, season, suffix, "pn")[0] == "Tonikaku Kawaii S02E01.mp4" + assert torrent_parser(file_name, folder_name, season, suffix, "advance")[0] == "总之就是非常可爱(2021) S02E01.mp4" file_name = "[SweetSub&LoliHouse] Heavenly Delusion - 01 [WebRip 1080p HEVC-10bit AAC ASSx2].mkv" folder_name = "天国大魔境(2023)" season = 1 suffix = ".mkv" - assert torrent_parser(file_name, folder_name, season, suffix, "pn") == "Heavenly Delusion S01E01.mkv" - assert torrent_parser(file_name, folder_name, season, suffix, "advance") == "天国大魔境(2023) S01E01.mkv" + assert torrent_parser(file_name, folder_name, season, suffix, "pn")[0] == "Heavenly Delusion S01E01.mkv" + assert torrent_parser(file_name, folder_name, season, suffix, "advance")[0] == "天国大魔境(2023) S01E01.mkv" file_name = "[SBSUB][Kanojo mo Kanojo][01][GB][1080P](456E234).mp4" folder_name = "女友也要有" season = 1 suffix = ".mp4" - assert torrent_parser(file_name, folder_name, season, suffix, "pn") == "Kanojo mo Kanojo S01E01.mp4" - assert torrent_parser(file_name, folder_name, season, suffix, "advance") == "女友也要有 S01E01.mp4" + assert torrent_parser(file_name, folder_name, season, suffix, "pn")[0] == "Kanojo mo Kanojo S01E01.mp4" + assert torrent_parser(file_name, folder_name, season, suffix, "advance")[0] == "女友也要有 S01E01.mp4" file_name = "[SBSUB][CONAN][1082][V2][1080P][AVC_AAC][CHS_JP](C1E4E331).mp4" folder_name = "名侦探柯南(1996)" season = 1 suffix = ".mp4" - assert torrent_parser(file_name, folder_name, season, suffix, "pn") == "CONAN S01E1082.mp4" - assert torrent_parser(file_name, folder_name, season, suffix, "advance") == "名侦探柯南(1996) S01E1082.mp4" + assert torrent_parser(file_name, folder_name, season, suffix, "pn")[0] == "CONAN S01E1082.mp4" + assert torrent_parser(file_name, folder_name, season, suffix, "advance")[0] == "名侦探柯南(1996) S01E1082.mp4" file_name = "海盗战记 S01E01.mp4" folder_name = "海盗战记(2021)" season = 1 suffix = ".mp4" - assert torrent_parser(file_name, folder_name, season, suffix, "pn") == "海盗战记 S01E01.mp4" - assert torrent_parser(file_name, folder_name, season, suffix, "advance") == "海盗战记(2021) S01E01.mp4" \ No newline at end of file + assert torrent_parser(file_name, folder_name, season, suffix, "pn")[0] == "海盗战记 S01E01.mp4" + assert torrent_parser(file_name, folder_name, season, suffix, "advance")[0] == "海盗战记(2021) S01E01.mp4" \ No newline at end of file From ca8047caaac2603bce845eaaeac6b5b1805980a3 Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Fri, 5 May 2023 10:58:17 +0800 Subject: [PATCH 03/18] Change notification form --- src/module/manager/renamer.py | 4 ++-- src/module/parser/analyser/torrent_parser.py | 8 +++---- src/test/test_torrent_parser.py | 25 ++++++++++---------- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/src/module/manager/renamer.py b/src/module/manager/renamer.py index 417fb106..c5dedc12 100644 --- a/src/module/manager/renamer.py +++ b/src/module/manager/renamer.py @@ -47,7 +47,7 @@ class Renamer: torrent_name = info.name suffix = os.path.splitext(media_path)[-1] compare_name = self.get_file_name(media_path) - new_path, episode = self._renamer.torrent_parser( + new_path = self._renamer.torrent_parser( torrent_name=torrent_name, bangumi_name=bangumi_name, season=season, @@ -57,7 +57,7 @@ class Renamer: if compare_name != new_path: try: self._client.rename_torrent_file(_hash=info.hash, old_path=media_path, new_path=new_path) - self._notification.send_msg(bangumi_name, f"第{episode}集已经更新,已自动重命名。") + self._notification.send_msg(bangumi_name, f"{new_path}已经更新,已自动重命名。") except Exception as e: logger.warning(f"{torrent_name} rename failed") logger.warning(f"Season name: {bangumi_name}, Season: {season}, Suffix: {suffix}") diff --git a/src/module/parser/analyser/torrent_parser.py b/src/module/parser/analyser/torrent_parser.py index 85334d7a..e6a05165 100644 --- a/src/module/parser/analyser/torrent_parser.py +++ b/src/module/parser/analyser/torrent_parser.py @@ -47,7 +47,7 @@ def rename_normal(info: DownloadInfo): episode = match_obj.group(2) title = re.sub(r"([Ss]|Season )\d{1,3}", "", match_obj.group(1)).strip() new_name = f"{title} S{info.season}E{episode}{match_obj.group(3)}" - return new_name, episode + return new_name def rename_pn(info: DownloadInfo): @@ -62,7 +62,7 @@ def rename_pn(info: DownloadInfo): "", f"{title} S{info.season}E{episode}{info.suffix}", ) - return new_name, episode + return new_name def rename_advance(info: DownloadInfo): @@ -75,7 +75,7 @@ def rename_advance(info: DownloadInfo): "", f"{info.folder_name} S{info.season}E{episode}{info.suffix}", ) - return new_name, episode + return new_name def rename_no_season_pn(info: DownloadInfo): @@ -89,7 +89,7 @@ def rename_no_season_pn(info: DownloadInfo): "", f"{title} E{episode}{info.suffix}", ) - return new_name, episode + return new_name def rename_none(info: DownloadInfo): diff --git a/src/test/test_torrent_parser.py b/src/test/test_torrent_parser.py index 46d6e281..a61c96dd 100644 --- a/src/test/test_torrent_parser.py +++ b/src/test/test_torrent_parser.py @@ -6,42 +6,41 @@ def test_torrent_parser(): folder_name = "我内心的糟糕念头(2023)" season = 1 suffix = ".mp4" - assert torrent_parser(file_name, folder_name, season, suffix, "pn")[0] == "Boku no Kokoro no Yabai Yatsu S01E01.mp4" - assert torrent_parser(file_name, folder_name, season, suffix, "advance")[0] == "我内心的糟糕念头(2023) S01E01.mp4" + assert torrent_parser(file_name, folder_name, season, suffix, "pn") == "Boku no Kokoro no Yabai Yatsu S01E01.mp4" + assert torrent_parser(file_name, folder_name, season, suffix, "advance") == "我内心的糟糕念头(2023) S01E01.mp4" assert torrent_parser(file_name, folder_name, season, suffix, "none") == "[Lilith-Raws] Boku no Kokoro no Yabai Yatsu - 01 [Baha][WEB-DL][1080p][AVC AAC][CHT][MP4].mp4" - file_name = "[Sakurato] Tonikaku Kawaii S2 [01][AVC-8bit 1080p AAC][CHS].mp4" folder_name = "总之就是非常可爱(2021)" season = 2 suffix = ".mp4" - assert torrent_parser(file_name, folder_name, season, suffix, "pn")[0] == "Tonikaku Kawaii S02E01.mp4" - assert torrent_parser(file_name, folder_name, season, suffix, "advance")[0] == "总之就是非常可爱(2021) S02E01.mp4" + assert torrent_parser(file_name, folder_name, season, suffix, "pn") == "Tonikaku Kawaii S02E01.mp4" + assert torrent_parser(file_name, folder_name, season, suffix, "advance") == "总之就是非常可爱(2021) S02E01.mp4" file_name = "[SweetSub&LoliHouse] Heavenly Delusion - 01 [WebRip 1080p HEVC-10bit AAC ASSx2].mkv" folder_name = "天国大魔境(2023)" season = 1 suffix = ".mkv" - assert torrent_parser(file_name, folder_name, season, suffix, "pn")[0] == "Heavenly Delusion S01E01.mkv" - assert torrent_parser(file_name, folder_name, season, suffix, "advance")[0] == "天国大魔境(2023) S01E01.mkv" + assert torrent_parser(file_name, folder_name, season, suffix, "pn") == "Heavenly Delusion S01E01.mkv" + assert torrent_parser(file_name, folder_name, season, suffix, "advance") == "天国大魔境(2023) S01E01.mkv" file_name = "[SBSUB][Kanojo mo Kanojo][01][GB][1080P](456E234).mp4" folder_name = "女友也要有" season = 1 suffix = ".mp4" - assert torrent_parser(file_name, folder_name, season, suffix, "pn")[0] == "Kanojo mo Kanojo S01E01.mp4" - assert torrent_parser(file_name, folder_name, season, suffix, "advance")[0] == "女友也要有 S01E01.mp4" + assert torrent_parser(file_name, folder_name, season, suffix, "pn") == "Kanojo mo Kanojo S01E01.mp4" + assert torrent_parser(file_name, folder_name, season, suffix, "advance") == "女友也要有 S01E01.mp4" file_name = "[SBSUB][CONAN][1082][V2][1080P][AVC_AAC][CHS_JP](C1E4E331).mp4" folder_name = "名侦探柯南(1996)" season = 1 suffix = ".mp4" - assert torrent_parser(file_name, folder_name, season, suffix, "pn")[0] == "CONAN S01E1082.mp4" - assert torrent_parser(file_name, folder_name, season, suffix, "advance")[0] == "名侦探柯南(1996) S01E1082.mp4" + assert torrent_parser(file_name, folder_name, season, suffix, "pn") == "CONAN S01E1082.mp4" + assert torrent_parser(file_name, folder_name, season, suffix, "advance") == "名侦探柯南(1996) S01E1082.mp4" file_name = "海盗战记 S01E01.mp4" folder_name = "海盗战记(2021)" season = 1 suffix = ".mp4" - assert torrent_parser(file_name, folder_name, season, suffix, "pn")[0] == "海盗战记 S01E01.mp4" - assert torrent_parser(file_name, folder_name, season, suffix, "advance")[0] == "海盗战记(2021) S01E01.mp4" \ No newline at end of file + assert torrent_parser(file_name, folder_name, season, suffix, "pn") == "海盗战记 S01E01.mp4" + assert torrent_parser(file_name, folder_name, season, suffix, "advance") == "海盗战记(2021) S01E01.mp4" From d0863425fe2a6d8e4578c617fe760f3a27b53706 Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Fri, 5 May 2023 11:22:53 +0800 Subject: [PATCH 04/18] Update workflows --- .github/release-drafter.yml | 48 ++++++++++----------------- .github/workflows/dev-latest.yml | 21 +++++++++++- .github/workflows/docker.yml | 2 +- .github/workflows/release-drafter.yml | 47 +++++++++++++++++++------- .github/workflows/telegram.yml | 18 ++++++++++ .github/workflows/unittest.yml | 32 ------------------ 6 files changed, 92 insertions(+), 76 deletions(-) create mode 100644 .github/workflows/telegram.yml delete mode 100644 .github/workflows/unittest.yml diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index 70dda3cc..371e4779 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -1,44 +1,32 @@ -# Configuration for Release Drafter: https://github.com/toolmantim/release-drafter -name-template: 'v$NEXT_PATCH_VERSION 🌈' -tag-template: 'v$NEXT_PATCH_VERSION' -version-template: $MAJOR.$MINOR.$PATCH -# Emoji reference: https://gitmoji.carloscuesta.me/ +name-template: 'v$RESOLVED_VERSION 🌈' +tag-template: 'v$RESOLVED_VERSION' categories: - title: '🚀 Features' labels: - 'feature' - 'enhancement' - - 'kind/feature' + - 'new' - title: '🐛 Bug Fixes' labels: - 'fix' - 'bugfix' - 'bug' - - 'regression' - - 'kind/bug' - - title: 📝 Documentation updates + - title: '🧰 Maintenance' + label: 'chore' +change-template: '- $TITLE @$AUTHOR (#$NUMBER)' +change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks. +version-resolver: + major: labels: - - documentation - - 'kind/doc' - - title: 👻 Maintenance + - 'major' + minor: labels: - - chore - - dependencies - - 'kind/chore' - - 'kind/dep' - - title: 🚦 Tests + - 'minor' + patch: labels: - - test - - tests -exclude-labels: - - reverted - - no-changelog - - skip-changelog - - invalid -change-template: '* $TITLE (#$NUMBER) @$AUTHOR' + - 'patch' + default: patch template: | - ## What’s Changed - $CHANGES -Terms -Privacy -Security \ No newline at end of file + ## Changes + + $CHANGES \ No newline at end of file diff --git a/.github/workflows/dev-latest.yml b/.github/workflows/dev-latest.yml index aa9d8b25..3206e8d3 100644 --- a/.github/workflows/dev-latest.yml +++ b/.github/workflows/dev-latest.yml @@ -6,8 +6,27 @@ on: - '\d+\.\d+\.\d+-beta(?:\d+)?' jobs: - latest: + test: runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python 3.11 + uses: actions/setup-python@v3 + with: + python-version: "3.11" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + pip install pytest + - name: Test + working-directory: ./src + run: | + pytest + + dev-latest: + runs-on: ubuntu-latest + needs: [test] steps: - name: Checkout uses: actions/checkout@v3 diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 17fd295d..516d235a 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -26,7 +26,7 @@ jobs: pytest - docker: + build: runs-on: ubuntu-latest needs: [test] steps: diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml index e92b1304..01b56e72 100644 --- a/.github/workflows/release-drafter.yml +++ b/.github/workflows/release-drafter.yml @@ -1,20 +1,43 @@ -name: Release Drafter +name: Generate Release Draft on: pull_request: - - -permissions: - contents: read - + types: [opened] jobs: - update_release_draft: - permissions: - contents: write # for release-drafter/release-drafter to create a github release - pull-requests: write # for release-drafter/release-drafter to add label to PR + generate_release_draft: runs-on: ubuntu-latest steps: - - uses: release-drafter/release-drafter@v5 + - name: Checkout code + uses: actions/checkout@v2 + + - name: Setup Python + uses: actions/setup-python@v2 + with: + python-version: '3.8' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install requests + + - name: Generate Release Draft env: - GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }} \ No newline at end of file + GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }} + run: | + pr_title=$(echo ${{ github.event.pull_request.title }} | tr '[:upper:]' '[:lower:]') + pr_body=$(echo ${{ github.event.pull_request.body }} | tr '[:upper:]' '[:lower:]') + + # Parse information from PR title and body + # Example: "Add feature X (#123)" and "This PR adds feature X" + pr_number=$(echo ${{ github.event.pull_request.number }}) + feature_name=$(echo $pr_title | sed -E 's/.*add (.*) \(.*#\d+\).*/\1/') + feature_description=$(echo $pr_body | sed -E 's/.*this pr (.*)/\1/') + + # Create release draft + release_title="Release ${feature_name} (PR #${pr_number})" + release_body="This release includes the following changes:\n\n- ${feature_description}\n\nPlease review and publish the release when ready." + response=$(curl -X POST -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/${{ github.repository }}/releases" -d "{\"tag_name\":\"${feature_name}\",\"name\":\"${release_title}\",\"body\":\"${release_body}\",\"draft\":true}") + + # Print response + echo $response \ No newline at end of file diff --git a/.github/workflows/telegram.yml b/.github/workflows/telegram.yml new file mode 100644 index 00000000..c9ee6941 --- /dev/null +++ b/.github/workflows/telegram.yml @@ -0,0 +1,18 @@ +name: telegram message +on: + - release + - prerelease +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + - name: send telegram message on push + uses: appleboy/telegram-action@master + with: + to: ${{ secrets.TELEGRAM_TO }} + token: ${{ secrets.TELEGRAM_TOKEN }} + message: | + New release: ${{ github.event.release.tag_name }} + Link: ${{ github.event.release.html_url }} \ No newline at end of file diff --git a/.github/workflows/unittest.yml b/.github/workflows/unittest.yml deleted file mode 100644 index 93f9a94c..00000000 --- a/.github/workflows/unittest.yml +++ /dev/null @@ -1,32 +0,0 @@ -# This workflow will install Python dependencies, run tests and lint with a single version of Python -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions - -name: unittest - -on: - push: - pull_request: - -permissions: - contents: read - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - name: Set up Python 3.11 - uses: actions/setup-python@v3 - with: - python-version: "3.11" - - name: Install dependencies - run: | - python -m pip install --upgrade pip - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - pip install pytest - - name: Test - working-directory: ./src - run: | - pytest \ No newline at end of file From 63c9d942f1a59380f4190b484b5514f1bf14a0f2 Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Fri, 5 May 2023 11:31:36 +0800 Subject: [PATCH 05/18] Update workflows --- .github/workflows/release-drafter.yml | 43 +++++++-------------------- 1 file changed, 11 insertions(+), 32 deletions(-) diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml index 01b56e72..4e9b4e87 100644 --- a/.github/workflows/release-drafter.yml +++ b/.github/workflows/release-drafter.yml @@ -2,42 +2,21 @@ name: Generate Release Draft on: pull_request: - types: [opened] + types: + - closed jobs: generate_release_draft: runs-on: ubuntu-latest + if: github.event.pull_request.merged == true steps: - - name: Checkout code - uses: actions/checkout@v2 - - - name: Setup Python - uses: actions/setup-python@v2 - with: - python-version: '3.8' - - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install requests - - name: Generate Release Draft + uses: actions/create-release@v1 + with: + tag_name: ${{ github.event.pull_request.title }} + release_name: ${{ github.event.pull_request.title }}🌟 + body: | + - ${{ github.event.pull_request.body }} + draft: true env: - GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }} - run: | - pr_title=$(echo ${{ github.event.pull_request.title }} | tr '[:upper:]' '[:lower:]') - pr_body=$(echo ${{ github.event.pull_request.body }} | tr '[:upper:]' '[:lower:]') - - # Parse information from PR title and body - # Example: "Add feature X (#123)" and "This PR adds feature X" - pr_number=$(echo ${{ github.event.pull_request.number }}) - feature_name=$(echo $pr_title | sed -E 's/.*add (.*) \(.*#\d+\).*/\1/') - feature_description=$(echo $pr_body | sed -E 's/.*this pr (.*)/\1/') - - # Create release draft - release_title="Release ${feature_name} (PR #${pr_number})" - release_body="This release includes the following changes:\n\n- ${feature_description}\n\nPlease review and publish the release when ready." - response=$(curl -X POST -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/${{ github.repository }}/releases" -d "{\"tag_name\":\"${feature_name}\",\"name\":\"${release_title}\",\"body\":\"${release_body}\",\"draft\":true}") - - # Print response - echo $response \ No newline at end of file + GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }} \ No newline at end of file From 554f1c8713ad532727bab68cee132bcf91031fba Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Fri, 5 May 2023 11:39:55 +0800 Subject: [PATCH 06/18] Update workflows --- .github/workflows/release-drafter.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml index 4e9b4e87..40c87051 100644 --- a/.github/workflows/release-drafter.yml +++ b/.github/workflows/release-drafter.yml @@ -10,6 +10,8 @@ jobs: runs-on: ubuntu-latest if: github.event.pull_request.merged == true steps: + - name: Checkout code + uses: actions/checkout@v2 - name: Generate Release Draft uses: actions/create-release@v1 with: @@ -17,6 +19,7 @@ jobs: release_name: ${{ github.event.pull_request.title }}🌟 body: | - ${{ github.event.pull_request.body }} - draft: true + draft: false + prerelease: false env: GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }} \ No newline at end of file From a07057522a25ded3b2482bc9f42419df9b8bf924 Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Fri, 5 May 2023 11:40:41 +0800 Subject: [PATCH 07/18] Update workflows --- .github/workflows/release-drafter.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml index 40c87051..fd7500bb 100644 --- a/.github/workflows/release-drafter.yml +++ b/.github/workflows/release-drafter.yml @@ -17,8 +17,7 @@ jobs: with: tag_name: ${{ github.event.pull_request.title }} release_name: ${{ github.event.pull_request.title }}🌟 - body: | - - ${{ github.event.pull_request.body }} + body: ${{ github.event.pull_request.body }} draft: false prerelease: false env: From 6362ae758e2ff0de46a6f322e054a484b88cd73f Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Fri, 5 May 2023 11:42:49 +0800 Subject: [PATCH 08/18] Update workflows --- .github/workflows/release-drafter.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml index fd7500bb..536c8ea7 100644 --- a/.github/workflows/release-drafter.yml +++ b/.github/workflows/release-drafter.yml @@ -4,6 +4,8 @@ on: pull_request: types: - closed + branches: + - main jobs: generate_release_draft: From 65c19f838b36774838e950178c083effb985e96b Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Fri, 5 May 2023 11:49:25 +0800 Subject: [PATCH 09/18] Update workflows --- .github/workflows/telegram.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/telegram.yml b/.github/workflows/telegram.yml index c9ee6941..771d2eb1 100644 --- a/.github/workflows/telegram.yml +++ b/.github/workflows/telegram.yml @@ -1,7 +1,6 @@ name: telegram message on: - release - - prerelease jobs: build: From 1bda84f7bed1b88a5e665636a93ac1fe7c6e43e4 Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Fri, 5 May 2023 11:52:37 +0800 Subject: [PATCH 10/18] Update workflows --- .github/workflows/{release-drafter.yml => release.yml} | 0 .github/workflows/{telegram.yml => telegram-bot.yml} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{release-drafter.yml => release.yml} (100%) rename .github/workflows/{telegram.yml => telegram-bot.yml} (100%) diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release.yml similarity index 100% rename from .github/workflows/release-drafter.yml rename to .github/workflows/release.yml diff --git a/.github/workflows/telegram.yml b/.github/workflows/telegram-bot.yml similarity index 100% rename from .github/workflows/telegram.yml rename to .github/workflows/telegram-bot.yml From d121ba93a932a33487e1df90bebd167b6d64f024 Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Fri, 5 May 2023 12:18:07 +0800 Subject: [PATCH 11/18] Update workflow --- .github/workflows/docker.yml | 13 +++++++++++++ .github/workflows/telegram-bot.yml | 17 ----------------- docs/wiki | 2 +- 3 files changed, 14 insertions(+), 18 deletions(-) delete mode 100644 .github/workflows/telegram-bot.yml diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 516d235a..0ddefd39 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -74,3 +74,16 @@ jobs: labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha, scope=${{ github.workflow }} cache-to: type=gha, scope=${{ github.workflow }} + + telegram: + runs-on: ubuntu-latest + needs: [build] + steps: + - name: send telegram message on push + uses: appleboy/telegram-action@master + with: + to: ${{ secrets.TELEGRAM_TO }} + token: ${{ secrets.TELEGRAM_TOKEN }} + message: | + New release: ${{ github.event.release.title }} + Link: ${{ github.event.release.html_url }} \ No newline at end of file diff --git a/.github/workflows/telegram-bot.yml b/.github/workflows/telegram-bot.yml deleted file mode 100644 index 771d2eb1..00000000 --- a/.github/workflows/telegram-bot.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: telegram message -on: - - release -jobs: - - build: - name: Build - runs-on: ubuntu-latest - steps: - - name: send telegram message on push - uses: appleboy/telegram-action@master - with: - to: ${{ secrets.TELEGRAM_TO }} - token: ${{ secrets.TELEGRAM_TOKEN }} - message: | - New release: ${{ github.event.release.tag_name }} - Link: ${{ github.event.release.html_url }} \ No newline at end of file diff --git a/docs/wiki b/docs/wiki index a4f8c3b8..4b8d32e6 160000 --- a/docs/wiki +++ b/docs/wiki @@ -1 +1 @@ -Subproject commit a4f8c3b83b379624dadbcabd378fe27a46bfdff5 +Subproject commit 4b8d32e6e01cd8d02e833caa04ec23c100befe84 From 5c1e28d3193ca40afad6444ea1bfe12a6646ae2e Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Fri, 5 May 2023 12:19:25 +0800 Subject: [PATCH 12/18] Update workflow --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 536c8ea7..95e2662c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,7 +18,7 @@ jobs: uses: actions/create-release@v1 with: tag_name: ${{ github.event.pull_request.title }} - release_name: ${{ github.event.pull_request.title }}🌟 + release_name: 🌟${{ github.event.pull_request.title }} body: ${{ github.event.pull_request.body }} draft: false prerelease: false From 73921b9b7b874ad6077563adc426157a0f6f3fed Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Fri, 5 May 2023 12:36:57 +0800 Subject: [PATCH 13/18] Update pr template --- .github/PULL_REQUEST_TEMPLATE/pull_request_template.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .github/PULL_REQUEST_TEMPLATE/pull_request_template.md diff --git a/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md new file mode 100644 index 00000000..b2a5b161 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md @@ -0,0 +1,5 @@ +## New + +## Change + +## Fix \ No newline at end of file From 3a27855e09accdaffeb9aa030f9f0256fdd8b765 Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Fri, 5 May 2023 13:52:35 +0800 Subject: [PATCH 14/18] Update workflows --- .github/workflows/dev-latest.yml | 19 ++++++++++++++++++- .github/workflows/docker.yml | 15 +-------------- .github/workflows/release.yml | 6 +++--- .github/workflows/telegram.yml | 18 ++++++++++++++++++ 4 files changed, 40 insertions(+), 18 deletions(-) create mode 100644 .github/workflows/telegram.yml diff --git a/.github/workflows/dev-latest.yml b/.github/workflows/dev-latest.yml index 3206e8d3..499cbe1b 100644 --- a/.github/workflows/dev-latest.yml +++ b/.github/workflows/dev-latest.yml @@ -3,7 +3,7 @@ name: Deploy To Dockerhub(dev) on: push: tags: - - '\d+\.\d+\.\d+-beta(?:\d+)?' + - '\d+\.\d+\.\d+-beta\d+' jobs: test: @@ -56,3 +56,20 @@ jobs: estrellaxd/auto_bangumi:dev-latest estrellaxd/auto_bangumi:${{ github.ref_name }} file: Dockerfile + + generate_release: + runs-on: ubuntu-latest + needs: [test] + steps: + - name: Checkout code + uses: actions/checkout@v2 + - name: Generate Release + uses: softprops/action-gh-release@v1 + with: + tag_name: ${{ github.ref_name }} + release_name: 🌙${{ github.ref_name }} + draft: true + prerelease: true + env: + GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }} + diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 0ddefd39..fa6846ad 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -73,17 +73,4 @@ jobs: tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha, scope=${{ github.workflow }} - cache-to: type=gha, scope=${{ github.workflow }} - - telegram: - runs-on: ubuntu-latest - needs: [build] - steps: - - name: send telegram message on push - uses: appleboy/telegram-action@master - with: - to: ${{ secrets.TELEGRAM_TO }} - token: ${{ secrets.TELEGRAM_TOKEN }} - message: | - New release: ${{ github.event.release.title }} - Link: ${{ github.event.release.html_url }} \ No newline at end of file + cache-to: type=gha, scope=${{ github.workflow }} \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 95e2662c..6a59ad28 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,8 +14,8 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v2 - - name: Generate Release Draft - uses: actions/create-release@v1 + - name: Generate Release + uses: softprops/action-gh-release@v1 with: tag_name: ${{ github.event.pull_request.title }} release_name: 🌟${{ github.event.pull_request.title }} @@ -23,4 +23,4 @@ jobs: draft: false prerelease: false env: - GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }} \ No newline at end of file + GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }} diff --git a/.github/workflows/telegram.yml b/.github/workflows/telegram.yml new file mode 100644 index 00000000..c3a50131 --- /dev/null +++ b/.github/workflows/telegram.yml @@ -0,0 +1,18 @@ +name: Telegram Notification + +on: + release: + types: [published] + +jobs: + telegram: + runs-on: ubuntu-latest + steps: + - name: send telegram message on push + uses: appleboy/telegram-action@master + with: + to: ${{ secrets.TELEGRAM_TO }} + token: ${{ secrets.TELEGRAM_TOKEN }} + message: | + New release: ${{ github.event.release.title }} + Link: ${{ github.event.release.html_url }} \ No newline at end of file From 8c00bee1111a770d7617849ce330c6fd208ced5e Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Fri, 5 May 2023 13:53:31 +0800 Subject: [PATCH 15/18] Update workflows --- .github/workflows/dev-latest.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/dev-latest.yml b/.github/workflows/dev-latest.yml index 499cbe1b..f5d2cf3c 100644 --- a/.github/workflows/dev-latest.yml +++ b/.github/workflows/dev-latest.yml @@ -4,6 +4,7 @@ on: push: tags: - '\d+\.\d+\.\d+-beta\d+' + - '\d+\.\d+-beta\d+' jobs: test: From 6cd7805d4f8e3dd417e2450b701209fdf969caa5 Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Fri, 5 May 2023 15:15:54 +0800 Subject: [PATCH 16/18] Fix collection rename --- src/module/manager/renamer.py | 23 ++++++++++++----------- src/test/test_torrent_parser.py | 15 +++++++++++++++ 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/module/manager/renamer.py b/src/module/manager/renamer.py index c5dedc12..13934d03 100644 --- a/src/module/manager/renamer.py +++ b/src/module/manager/renamer.py @@ -43,7 +43,7 @@ class Renamer: subtitle_list.append(file_name) return media_list, subtitle_list - def rename_file(self, info, media_path: str, rename_method: str, bangumi_name: str, season: int, remove_bad_torrents: bool): + def rename_file(self, info, media_path: str, method: str, bangumi_name: str, season: int, remove_bad_torrents: bool): torrent_name = info.name suffix = os.path.splitext(media_path)[-1] compare_name = self.get_file_name(media_path) @@ -52,7 +52,7 @@ class Renamer: bangumi_name=bangumi_name, season=season, suffix=suffix, - method=rename_method + method=method ) if compare_name != new_path: try: @@ -65,19 +65,19 @@ class Renamer: # Delete bad torrent self.delete_bad_torrent(info, remove_bad_torrents) - def rename_collection(self, info, media_list: list[str],bangumi_name: str, season: int, remove_bad_torrents: bool): + def rename_collection(self, info, media_list: list[str], bangumi_name: str, season: int, remove_bad_torrents: bool, method: str): _hash = info.hash for media_path in media_list: path_len = len(media_path.split(os.path.sep)) if path_len <= 2: suffix = os.path.splitext(media_path)[-1] torrent_name = self.get_file_name(media_path) - new_name, episode = self._renamer.torrent_parser( + new_name = self._renamer.torrent_parser( torrent_name=torrent_name, bangumi_name=bangumi_name, season=season, suffix=suffix, - method="pn" + method=method ) if torrent_name != new_name: try: @@ -167,7 +167,7 @@ class Renamer: self.rename_file( info=info, media_path=media_list[0], - rename_method=rename_method, + method=rename_method, bangumi_name=bangumi_name, season=season, remove_bad_torrents=remove_bad_torrents @@ -183,11 +183,12 @@ class Renamer: elif len(media_list) > 1: logger.info("Start rename collection") self.rename_collection( - info, - media_list, - bangumi_name, - season, - remove_bad_torrents + info=info, + media_list=media_list, + bangumi_name=bangumi_name, + season=season, + remove_bad_torrents=remove_bad_torrents, + method=rename_method ) if len(subtitle_list) > 0: self.rename_subtitles( diff --git a/src/test/test_torrent_parser.py b/src/test/test_torrent_parser.py index a61c96dd..5252e570 100644 --- a/src/test/test_torrent_parser.py +++ b/src/test/test_torrent_parser.py @@ -44,3 +44,18 @@ def test_torrent_parser(): suffix = ".mp4" assert torrent_parser(file_name, folder_name, season, suffix, "pn") == "海盗战记 S01E01.mp4" assert torrent_parser(file_name, folder_name, season, suffix, "advance") == "海盗战记(2021) S01E01.mp4" + + file_name = "海盗战记 S01E01.zh-tw.ass" + folder_name = "海盗战记(2021)" + season = 1 + suffix = ".ass" + assert torrent_parser(file_name, folder_name, season, suffix, "subtitle_pn") == "海盗战记 S01E01.zh-tw.ass" + assert torrent_parser(file_name, folder_name, season, suffix, "subtitle_advance") == "海盗战记(2021) S01E01.zh-tw.ass" + + file_name = "海盗战记 S01E01.SC.ass" + folder_name = "海盗战记(2021)" + season = 1 + suffix = ".ass" + assert torrent_parser(file_name, folder_name, season, suffix, "subtitle_pn") == "海盗战记 S01E01.zh.ass" + assert torrent_parser(file_name, folder_name, season, suffix, "subtitle_advance") == "海盗战记(2021) S01E01.zh.ass" + From 66d3e4ab2bf8098f9280cc375bdfb225d7dd836f Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Fri, 5 May 2023 15:20:30 +0800 Subject: [PATCH 17/18] Fix release name --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6a59ad28..827eed02 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,7 +18,7 @@ jobs: uses: softprops/action-gh-release@v1 with: tag_name: ${{ github.event.pull_request.title }} - release_name: 🌟${{ github.event.pull_request.title }} + release_name: ${{ github.event.pull_request.title }}🌟 body: ${{ github.event.pull_request.body }} draft: false prerelease: false From 26491cd796939c19057ed8176c90dabcff81efc4 Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Fri, 5 May 2023 15:21:08 +0800 Subject: [PATCH 18/18] Fix release name --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 827eed02..3fa960a2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,7 +18,7 @@ jobs: uses: softprops/action-gh-release@v1 with: tag_name: ${{ github.event.pull_request.title }} - release_name: ${{ github.event.pull_request.title }}🌟 + name: 🌟${{ github.event.pull_request.title }} body: ${{ github.event.pull_request.body }} draft: false prerelease: false