diff --git a/.github/ISSUE_TEMPLATE/bug_report_cn.yaml b/.github/ISSUE_TEMPLATE/bug_report_cn.yaml index 7aef502..6bf12e6 100644 --- a/.github/ISSUE_TEMPLATE/bug_report_cn.yaml +++ b/.github/ISSUE_TEMPLATE/bug_report_cn.yaml @@ -11,8 +11,13 @@ body: required: true - label: 我在提问题之前至少花费了 5 分钟来思考和准备 required: true - - label: 我正在使用最新版本 - required: false + - type: textarea + id: version + attributes: + label: 你使用版本的 commit hash + description: 可在 mdcx 文件名最后部分获取, 若没有则可能使用的不是最新版 + validations: + required: true - type: textarea id: describe attributes: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bdde706..7b02f7e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -30,7 +30,9 @@ jobs: - name: Get new commits id: get-new-commits - run: echo "count=$(git log --oneline --since '24 hours ago' | wc -l)" >> $GITHUB_OUTPUT + run: | + echo "count=$(git log --oneline --since '24 hours ago' | wc -l)" >> $GITHUB_OUTPUT + echo "SHORT_SHA=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV # https://github.com/actions/runner/issues/1985#issuecomment-1573518052 - name: Set matrix @@ -153,19 +155,19 @@ jobs: if: ${{ matrix.build == 'macos' }} with: overwrite: true - asset_name: MDCx-$tag-${{ matrix.build }}-${{ matrix.arch }}${{ matrix.tail }}.dmg + asset_name: MDCx-$tag-${{ matrix.build }}-${{ matrix.arch }}${{ matrix.tail }}-${{ env.SHORT_SHA }}.dmg file: dist/MDCx.dmg prerelease: ${{ env.IS_DAILY }} body: | - ${{ !env.IS_DAILY && steps.get-changelog.outputs.CHANGELOG || github.event.repository.updated_at }} - tag: ${{ !env.IS_DAILY && github.ref || 'daily_release' }} + ${{ env.IS_DAILY=='true' && github.event.repository.updated_at || steps.get-changelog.outputs.CHANGELOG }} + tag: ${{ env.IS_DAILY=='true' && 'daily_release' || github.ref }} - name: Create Release - Windows uses: svenstaro/upload-release-action@2.7.0 if: ${{ matrix.build == 'windows' }} with: overwrite: true - asset_name: MDCx-$tag-${{ matrix.build }}-${{ matrix.arch }}${{ matrix.tail }}.exe + asset_name: MDCx-$tag-${{ matrix.build }}-${{ matrix.arch }}${{ matrix.tail }}-${{ env.SHORT_SHA }}.exe file: dist/MDCx.exe prerelease: ${{ env.IS_DAILY }} - tag: ${{ !env.IS_DAILY && github.ref || 'daily_release' }} \ No newline at end of file + tag: ${{ env.IS_DAILY=='true' && 'daily_release' || github.ref }} \ No newline at end of file diff --git a/changelog.md b/changelog.md index f117e7e..1416670 100644 --- a/changelog.md +++ b/changelog.md @@ -1,22 +1,40 @@ +## 重要 + +### [每日构建](https://github.com/sqzw-x/mdcx/releases/tag/daily_release) + +在此版本后, mdcx 将**降低**版本号变化频率, 版本号基本只用来处理会破坏配置文件兼容性的变更. +一般的功能更新与 bug 修复均通过 Github actions 每日构建, 可在上述链接下载. +发布页将显示最后一次提交时间, 时区为 UTC+0, 对应北京时间 +8h 即可. + +得益于此, 任何代码提交均将在 24h 内被发布, 因此总是可以获取到最新版本. +代价是每日构建 **_不会在软件内提示更新_**, 需要手动前往上述页面查看. + +除此之外, 请注意此后 **任何 issue 报告均需要包含提交 hash**, 这基本上取代了原来版本号的功能, 文件名中将自动包含提交 hash + +## 新增 + +* 单文件刮削自动选择网站 by @ +* 可设置刮削完成后自动创建 kodi actor 目录及自动创建软链接 + ## 修复 -* airav jp 域名失效 -* theporndb 文件 ohash 匹配 -* theporndb 标题模糊匹配 -* javdb cookie 设置失效 -* 7mmtv/airavcc 网络测试 url -* 启动后不显示自定义网站设置 -* 重定向次数过多导致网络卡死 + +* madouqu year 获取 +* iqqtv url +* 未知演员写入 nfo
Full Changelog -7ca6e70 fix(airav): airav jp 域名失效 (close #122) -ac5307c fix(theporndb): 使用 ohash 获取数据后直接返回 (#124) -574c7a3 fix(theporndb): title match (#124) -04181ba fix(javdb): cookie (#123) -65c3382 chore: use getattr default value -0dad202 fix: 7mmtv url for network test (close #121) -ba9550d fix(ui): not show custom website at startup -3ff5773 fix(web): blocked by too many redirects +26af362 fix: write unknown actor to nfo (close #151) +a175c97 CI: fix daily release tag +bab46d7 CI: fix release.yml +96ee83b feat: 刮削完成后 自动创建actor目录 及 自动创建软链接 (close #142) +761db21 CI: daily release time +7ed3531 CI: daily release tag and log +7099844 feat: single file scraping without site selection +60122f1 CI: daily build +5b60511 chore +e4d7c7a fix: iqqtv default url (close #134) +e70294b fix(madouqu): year字段类型;处理失败时返回空值 (#129)
diff --git a/config.ini.default b/config.ini.default index 26ca25d..fb24cd2 100644 --- a/config.ini.default +++ b/config.ini.default @@ -1,6 +1,6 @@ [modified_time] -modified_time = 2024-03-07 20:03:00 -version = 120240308 +modified_time = 2024-03-21 00:21:00 +version = 120240321 [media] media_path = @@ -10,7 +10,7 @@ failed_output_folder = failed extrafanart_folder = extrafanart_copy media_type = .mp4|.avi|.rmvb|.wmv|.mov|.mkv|.flv|.ts|.webm|.iso|.mpg sub_type = .smi|.srt|.idx|.sub|.sup|.psb|.ssa|.ass|.usf|.xss|.ssf|.rt|.lrc|.sbv|.vtt|.ttml -scrape_softlink_path = +scrape_softlink_path = auto_link = 0 [escape] @@ -172,7 +172,7 @@ emby_on = actor_info_zh_cn,actor_info_miss,actor_photo_net,actor_photo_miss, use_database = 0 info_database_path = gfriends_github = https://github.com/gfriends/gfriends -actor_photo_folder = +actor_photo_folder = actor_photo_kodi_auto = 0 [mark] diff --git a/src/models/config/config_generated.py b/src/models/config/config_generated.py index 3c42c97..090c9cc 100644 --- a/src/models/config/config_generated.py +++ b/src/models/config/config_generated.py @@ -10,8 +10,8 @@ class GeneratedConfig: Also used as default configuration """ # modified_time - modified_time = r'2024-03-07 20:03:00' - version = 120240308 + modified_time = r'2024-03-21 00:21:00' + version = 120240321 # media media_path = r'' @@ -240,6 +240,7 @@ class GeneratedConfig: media_type = {media_type} sub_type = {sub_type} scrape_softlink_path = {scrape_softlink_path} +auto_link = {auto_link} [escape] folders = {folders} @@ -402,6 +403,7 @@ class GeneratedConfig: info_database_path = {info_database_path} gfriends_github = {gfriends_github} actor_photo_folder = {actor_photo_folder} +actor_photo_kodi_auto = {actor_photo_kodi_auto} [mark] poster_mark = {poster_mark} diff --git a/src/models/config/config_manual.py b/src/models/config/config_manual.py index 8da9d6f..f2e60e9 100644 --- a/src/models/config/config_manual.py +++ b/src/models/config/config_manual.py @@ -1,6 +1,6 @@ class ManualConfig: # 设置软件版本 - local_version = 120240308 + local_version = 120240321 # 定义配置值类型 INT_KEY = [ diff --git a/src/views/MDCx.py b/src/views/MDCx.py index 203f83c..551d7e7 100644 --- a/src/views/MDCx.py +++ b/src/views/MDCx.py @@ -541,61 +541,16 @@ def setupUi(self, MDCx): self.groupBox_7.setGeometry(QtCore.QRect(30, 20, 701, 271)) self.groupBox_7.setObjectName("groupBox_7") self.pushButton_select_file = QtWidgets.QPushButton(self.groupBox_7) - self.pushButton_select_file.setGeometry(QtCore.QRect(510, 40, 151, 40)) + self.pushButton_select_file.setGeometry(QtCore.QRect(510, 30, 151, 40)) self.pushButton_select_file.setObjectName("pushButton_select_file") - self.comboBox_website = QtWidgets.QComboBox(self.groupBox_7) - self.comboBox_website.setGeometry(QtCore.QRect(140, 80, 351, 30)) - self.comboBox_website.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor)) - self.comboBox_website.setFocusPolicy(QtCore.Qt.NoFocus) - self.comboBox_website.setMaxVisibleItems(30) - self.comboBox_website.setObjectName("comboBox_website") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.comboBox_website.addItem("") - self.label_2 = QtWidgets.QLabel(self.groupBox_7) - self.label_2.setGeometry(QtCore.QRect(60, 80, 80, 30)) - self.label_2.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) - self.label_2.setObjectName("label_2") self.lineEdit_appoint_url = QtWidgets.QLineEdit(self.groupBox_7) - self.lineEdit_appoint_url.setGeometry(QtCore.QRect(140, 120, 351, 30)) + self.lineEdit_appoint_url.setGeometry(QtCore.QRect(140, 100, 351, 30)) self.lineEdit_appoint_url.setStyleSheet(" border: 1px solid rgba(0,0,0, 50);\n" " border-radius: 15px;\n" "") self.lineEdit_appoint_url.setObjectName("lineEdit_appoint_url") self.label_10 = QtWidgets.QLabel(self.groupBox_7) - self.label_10.setGeometry(QtCore.QRect(60, 120, 80, 30)) + self.label_10.setGeometry(QtCore.QRect(60, 100, 80, 30)) self.label_10.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) self.label_10.setObjectName("label_10") self.pushButton_start_single_file = QtWidgets.QPushButton(self.groupBox_7) @@ -617,7 +572,7 @@ def setupUi(self, MDCx): "") self.lineEdit_single_file_path.setObjectName("lineEdit_single_file_path") self.pushButton_select_file_clear_info = QtWidgets.QPushButton(self.groupBox_7) - self.pushButton_select_file_clear_info.setGeometry(QtCore.QRect(510, 110, 151, 40)) + self.pushButton_select_file_clear_info.setGeometry(QtCore.QRect(510, 100, 151, 40)) self.pushButton_select_file_clear_info.setObjectName("pushButton_select_file_clear_info") self.groupBox_13 = QtWidgets.QGroupBox(self.scrollAreaWidgetContents_9) self.groupBox_13.setGeometry(QtCore.QRect(30, 760, 701, 141)) @@ -4708,7 +4663,7 @@ def setupUi(self, MDCx): self.scrollArea_6.setWidgetResizable(False) self.scrollArea_6.setObjectName("scrollArea_6") self.scrollAreaWidgetContents_6 = QtWidgets.QWidget() - self.scrollAreaWidgetContents_6.setGeometry(QtCore.QRect(0, -1212, 760, 1870)) + self.scrollAreaWidgetContents_6.setGeometry(QtCore.QRect(0, 0, 760, 1870)) self.scrollAreaWidgetContents_6.setObjectName("scrollAreaWidgetContents_6") self.groupBox_24 = QtWidgets.QGroupBox(self.scrollAreaWidgetContents_6) self.groupBox_24.setGeometry(QtCore.QRect(30, 20, 701, 451)) @@ -8638,7 +8593,7 @@ def setupUi(self, MDCx): self.scrollArea_12.setWidgetResizable(False) self.scrollArea_12.setObjectName("scrollArea_12") self.scrollAreaWidgetContents_12 = QtWidgets.QWidget() - self.scrollAreaWidgetContents_12.setGeometry(QtCore.QRect(0, -892, 770, 1550)) + self.scrollAreaWidgetContents_12.setGeometry(QtCore.QRect(0, 0, 770, 1550)) self.scrollAreaWidgetContents_12.setObjectName("scrollAreaWidgetContents_12") self.groupBox_43 = QtWidgets.QGroupBox(self.scrollAreaWidgetContents_12) self.groupBox_43.setGeometry(QtCore.QRect(30, 20, 701, 321)) @@ -10897,7 +10852,7 @@ def setupUi(self, MDCx): MDCx.setCentralWidget(self.centralwidget) self.retranslateUi(MDCx) - self.stackedWidget.setCurrentIndex(4) + self.stackedWidget.setCurrentIndex(3) self.tabWidget.setCurrentIndex(0) QtCore.QMetaObject.connectSlotsByName(MDCx) @@ -10963,42 +10918,6 @@ def retranslateUi(self, MDCx): self.pushButton_check_net.setText(_translate("MDCx", "开始检测")) self.groupBox_7.setTitle(_translate("MDCx", "单文件刮削(指定某个文件的番号网址进行刮削,当存在相同番号时可用这个)")) self.pushButton_select_file.setText(_translate("MDCx", "选择文件")) - self.comboBox_website.setItemText(0, _translate("MDCx", "请选择刮削网站")) - self.comboBox_website.setItemText(1, _translate("MDCx", "airav_cc")) - self.comboBox_website.setItemText(2, _translate("MDCx", "airav")) - self.comboBox_website.setItemText(3, _translate("MDCx", "avsex")) - self.comboBox_website.setItemText(4, _translate("MDCx", "iqqtv")) - self.comboBox_website.setItemText(5, _translate("MDCx", "freejavbt")) - self.comboBox_website.setItemText(6, _translate("MDCx", "javdb")) - self.comboBox_website.setItemText(7, _translate("MDCx", "javbus")) - self.comboBox_website.setItemText(8, _translate("MDCx", "jav321")) - self.comboBox_website.setItemText(9, _translate("MDCx", "javlibrary")) - self.comboBox_website.setItemText(10, _translate("MDCx", "dmm")) - self.comboBox_website.setItemText(11, _translate("MDCx", "mgstage")) - self.comboBox_website.setItemText(12, _translate("MDCx", "getchu_dmm")) - self.comboBox_website.setItemText(13, _translate("MDCx", "getchu")) - self.comboBox_website.setItemText(14, _translate("MDCx", "theporndb")) - self.comboBox_website.setItemText(15, _translate("MDCx", "kin8")) - self.comboBox_website.setItemText(16, _translate("MDCx", "avsox")) - self.comboBox_website.setItemText(17, _translate("MDCx", "xcity")) - self.comboBox_website.setItemText(18, _translate("MDCx", "7mmtv")) - self.comboBox_website.setItemText(19, _translate("MDCx", "mdtv")) - self.comboBox_website.setItemText(20, _translate("MDCx", "hscangku")) - self.comboBox_website.setItemText(21, _translate("MDCx", "cableav")) - self.comboBox_website.setItemText(22, _translate("MDCx", "madouqu")) - self.comboBox_website.setItemText(23, _translate("MDCx", "cnmdb")) - self.comboBox_website.setItemText(24, _translate("MDCx", "lulubar")) - self.comboBox_website.setItemText(25, _translate("MDCx", "love6")) - self.comboBox_website.setItemText(26, _translate("MDCx", "fc2")) - self.comboBox_website.setItemText(27, _translate("MDCx", "fc2club")) - self.comboBox_website.setItemText(28, _translate("MDCx", "fc2hub")) - self.comboBox_website.setItemText(29, _translate("MDCx", "mywife")) - self.comboBox_website.setItemText(30, _translate("MDCx", "giga")) - self.comboBox_website.setItemText(31, _translate("MDCx", "fantastica")) - self.comboBox_website.setItemText(32, _translate("MDCx", "faleno")) - self.comboBox_website.setItemText(33, _translate("MDCx", "dahlia")) - self.comboBox_website.setItemText(34, _translate("MDCx", "prestige")) - self.label_2.setText(_translate("MDCx", "*刮削网站:")) self.label_10.setText(_translate("MDCx", "*番号网址:")) self.pushButton_start_single_file.setText(_translate("MDCx", "刮削")) self.label_3.setText(_translate("MDCx", "*文件路径:")) diff --git a/src/views/MDCx.ui b/src/views/MDCx.ui index 5d1a027..5aed563 100644 --- a/src/views/MDCx.ui +++ b/src/views/MDCx.ui @@ -39,7 +39,7 @@ - 4 + 3 @@ -1585,7 +1585,7 @@ li.checked::marker { content: "\2612"; } 510 - 40 + 30 151 40 @@ -1594,221 +1594,11 @@ li.checked::marker { content: "\2612"; } 选择文件 - - - - 140 - 80 - 351 - 30 - - - - ArrowCursor - - - Qt::NoFocus - - - 30 - - - - 请选择刮削网站 - - - - - airav_cc - - - - - airav - - - - - avsex - - - - - iqqtv - - - - - freejavbt - - - - - javdb - - - - - javbus - - - - - jav321 - - - - - javlibrary - - - - - dmm - - - - - mgstage - - - - - getchu_dmm - - - - - getchu - - - - - theporndb - - - - - kin8 - - - - - avsox - - - - - xcity - - - - - 7mmtv - - - - - mdtv - - - - - hscangku - - - - - cableav - - - - - madouqu - - - - - cnmdb - - - - - lulubar - - - - - love6 - - - - - fc2 - - - - - fc2club - - - - - fc2hub - - - - - mywife - - - - - giga - - - - - fantastica - - - - - faleno - - - - - dahlia - - - - - prestige - - - - - - - 60 - 80 - 80 - 30 - - - - *刮削网站: - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - 140 - 120 + 100 351 30 @@ -1823,7 +1613,7 @@ li.checked::marker { content: "\2612"; } 60 - 120 + 100 80 30 @@ -1902,7 +1692,7 @@ li.checked::marker { content: "\2612"; } 510 - 110 + 100 151 40 @@ -11246,7 +11036,7 @@ font-weight:bold 0 - -1212 + 0 760 1870 @@ -20475,7 +20265,7 @@ line-height:50px 0 - -892 + 0 770 1550