From ec7b0879aa2c2c55ddfe8bd959b8d9623b74c60c Mon Sep 17 00:00:00 2001 From: hect0x7 <93357912+hect0x7@users.noreply.github.com> Date: Sat, 29 Apr 2023 13:38:38 +0800 Subject: [PATCH] =?UTF-8?q?v1.9.1:=20=E5=A2=9E=E5=8A=A0=E7=A6=81=E6=BC=AB?= =?UTF-8?q?=E7=BD=91=E7=AB=99=E9=BB=98=E8=AE=A4=E7=9A=84=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=E8=A7=84=E5=88=99=EF=BC=8C=E4=BC=98=E5=8C=96?= =?UTF-8?q?Github=20Actions=E5=B7=A5=E4=BD=9C=E6=B5=81=20(#27)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/action_workflow.yml | 30 ++++++---- .github/workflows/action_workflow_local.yml | 61 --------------------- assets/config/workflow_option.yml | 1 + src/jmcomic/__init__.py | 2 +- src/jmcomic/jm_option.py | 7 +++ usage/jmcomic_workflows.py | 9 ++- 6 files changed, 34 insertions(+), 76 deletions(-) delete mode 100644 .github/workflows/action_workflow_local.yml diff --git a/.github/workflows/action_workflow.yml b/.github/workflows/action_workflow.yml index a072d5e..a2a5791 100644 --- a/.github/workflows/action_workflow.yml +++ b/.github/workflows/action_workflow.yml @@ -2,16 +2,15 @@ name: 下载JM本子 on: push: - branches: [ "workflow" ] + branches: [ 'workflow', 'workflow_local' ] paths: - '.github/workflows/*.yml' # 工作流定义 - 'usage/**/*.py' # 工作流脚本 - - 'assets/config/*.yml' # 工作流配置 - pull_request: - branches: [ "workflow" ] + - 'assets/config/*.yml' # option配置文件 + - 'src/**/*.py' # 源码 -permissions: - contents: read + pull_request: + branches: [ 'workflow', 'workflow_local' ] jobs: crawler: @@ -23,12 +22,23 @@ jobs: with: python-version: "3.11" - - name: 安装依赖项 + - name: 安装依赖项(pip) + if: ${{ github.ref == 'refs/heads/workflow' }} run: | python -m pip install --upgrade pip pip install jmcomic -i https://pypi.org/project --upgrade + - name: 安装依赖项(local) + if: ${{ github.ref == 'refs/heads/workflow_local' }} + run: | + python -m pip install --upgrade pip + pip install commonX -i https://pypi.org/project --upgrade + pip install -e ./ + - name: 运行下载脚本 + env: + JM_USERNAME: ${{ secrets.JM_USERNAME }} + JM_PASSWORD: ${{ secrets.JM_PASSWORD }} run: | cd ./usage/ python jmcomic_workflows.py @@ -41,11 +51,7 @@ jobs: - name: 上传结果 uses: actions/upload-artifact@v3 with: - # Artifact name name: 下载完成的本子 - # A file, directory or wildcard pattern that describes what to upload path: /home/runner/work/jmcomic/下载完成的本子.tar.gz - # The desired behavior if no files are found using the provided path. if-no-files-found: warn - # Duration after which artifact will expire in days. 0 means using default retention.Minimum 1 day. Maximum 90 days unless changed from the repository settings page. - retention-days: 90 \ No newline at end of file + retention-days: 90 diff --git a/.github/workflows/action_workflow_local.yml b/.github/workflows/action_workflow_local.yml deleted file mode 100644 index 903b974..0000000 --- a/.github/workflows/action_workflow_local.yml +++ /dev/null @@ -1,61 +0,0 @@ -# 这个工作流使用workflow_local分支的jmcomic模块。 -# 你可以在workflow_local分支修改jmcomic的源码, -# 这样工作流就会使用你修改后的代码来下载禁漫本子。 - -name: 下载JM本子 (Local) - -on: - push: - branches: [ "workflow_local" ] - paths: - - '.github/workflows/*.yml' # 工作流定义 - - 'usage/**/*.py' # 工作流脚本 - - 'assets/config/*.yml' # 工作流配置 - - 'src/**/*.py' # 源码 - - pull_request: - branches: [ "workflow_local" ] - -permissions: - contents: read - -jobs: - crawler: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Set up Python 3.11 - uses: actions/setup-python@v4 - with: - python-version: "3.11" - - - name: 安装依赖项 - run: | - python -m pip install --upgrade pip - pip install commonX -i https://pypi.org/project --upgrade - pip install -e ./ - - - name: 运行下载脚本 - env: - JM_USERNAME: ${{ secrets.JM_USERNAME }} - JM_PASSWORD: ${{ secrets.JM_PASSWORD }} - run: | - cd ./usage/ - python jmcomic_workflows.py - - - name: 压缩下载的漫画 - run: | - cd /home/runner/work/jmcomic/download/ - tar -zcvf ../下载完成的本子.tar.gz ./ - - - name: 上传结果 - uses: actions/upload-artifact@v3 - with: - # Artifact name - name: 下载完成的本子 - # A file, directory or wildcard pattern that describes what to upload - path: /home/runner/work/jmcomic/下载完成的本子.tar.gz - # The desired behavior if no files are found using the provided path. - if-no-files-found: warn - # Duration after which artifact will expire in days. 0 means using default retention.Minimum 1 day. Maximum 90 days unless changed from the repository settings page. - retention-days: 90 diff --git a/assets/config/workflow_option.yml b/assets/config/workflow_option.yml index 4b2fd6c..322ef84 100644 --- a/assets/config/workflow_option.yml +++ b/assets/config/workflow_option.yml @@ -21,3 +21,4 @@ client_config: - cffi_Session meta_data: cookies: null + impersonate: chrome110 \ No newline at end of file diff --git a/src/jmcomic/__init__.py b/src/jmcomic/__init__.py index 5f3924e..6d6c089 100644 --- a/src/jmcomic/__init__.py +++ b/src/jmcomic/__init__.py @@ -2,6 +2,6 @@ # 被依赖方 <--- 使用方 # config <--- entity <--- toolkit <--- client <--- option -__version__ = '1.9.0' +__version__ = '1.9.1' from .api import * diff --git a/src/jmcomic/jm_option.py b/src/jmcomic/jm_option.py index 27b33d9..00631d2 100644 --- a/src/jmcomic/jm_option.py +++ b/src/jmcomic/jm_option.py @@ -80,6 +80,9 @@ class DownloadDirTree: # 根目录 / Photo号 / 图片文件 Bd_Id_Image = 5 + # 根目录 / AlbumId / Photo序号 / 图片文件 + Bd_Id_Index_image = 6 # 禁漫网站的默认下载方式 + AdditionalHandler = Callable[ ['DownloadDirTree', Optional[JmAlbumDetail], JmPhotoDetail], str @@ -163,6 +166,10 @@ class DownloadDirTree: return dirpath(None, photo_dir(4)) + elif flag == 6: + # 根目录 / AlbumId / Photo序号 / 图片文件 + return dirpath(photo.album_id, str(photo.album_index)) + else: if flag in self.additional_tree_flag_handler_mapping: return self.additional_tree_flag_handler_mapping[flag](self, album, photo) diff --git a/usage/jmcomic_workflows.py b/usage/jmcomic_workflows.py index cb6f593..094df79 100644 --- a/usage/jmcomic_workflows.py +++ b/usage/jmcomic_workflows.py @@ -1,8 +1,7 @@ # 下方填入你要下载的本子的id,一行一个。 # 每行的首尾可以有空白字符 jm_albums = ''' -380460 - +438696 ''' @@ -20,6 +19,12 @@ def main(): client.enable_cache() # 检查环境变量中是否有禁漫的用户名和密码,如果有则登录 + # 禁漫的大部分本子,下载是不需要登录的,少部分敏感题材需要登录 + # 如果你希望以登录状态下载本子,你需要自己配置一下Github Actions的 `secrets` + # 配置的方式很简单,网页上点一点就可以了 + # 具体做法请去看官方教程:https://docs.github.com/en/actions/security-guides/encrypted-secrets + + # 萌新注意!!!如果你想 `开源` 你的禁漫帐号,你也可以直接把账号密码写到下面的代码😅 def get_env(name): import os