From 1437a338185661a70b3157c29bb43360d2f4e4b2 Mon Sep 17 00:00:00 2001 From: singobaba Date: Wed, 19 Feb 2020 11:38:14 +0800 Subject: [PATCH] merge with CLI and add some parse number logic --- AVDC.py | 537 +++++---- AVDC.ui | 2759 ++++++++++++++++++++++---------------------- AVDC_Main.py | 31 +- AV_Data_Capture.py | 54 +- core.py | 343 +++--- fanza.py | 76 +- fc2fans_club.py | 113 +- javbus.py | 2 +- mgstage.py | 145 +++ py-require.txt | 3 +- 10 files changed, 2234 insertions(+), 1829 deletions(-) create mode 100644 mgstage.py diff --git a/AVDC.py b/AVDC.py index 4bdbfbc78..aebb585ed 100644 --- a/AVDC.py +++ b/AVDC.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- -# Form implementation generated from reading ui file 'AVDC.ui' +# Form implementation generated from reading ui file 'c:\Users\win\PycharmProjects\AVDC\AVDC.ui' # -# Created by: PyQt5 UI code generator 5.13.0 +# Created by: PyQt5 UI code generator 5.14.1 # # WARNING! All changes made in this file will be lost! @@ -13,40 +13,103 @@ class Ui_AVDV(object): def setupUi(self, AVDV): AVDV.setObjectName("AVDV") - AVDV.resize(1025, 720) + AVDV.resize(1250, 870) self.centralwidget = QtWidgets.QWidget(AVDV) self.centralwidget.setObjectName("centralwidget") + self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.centralwidget) + self.horizontalLayout_3.setObjectName("horizontalLayout_3") + self.widget_setting = QtWidgets.QWidget(self.centralwidget) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.widget_setting.sizePolicy().hasHeightForWidth()) + self.widget_setting.setSizePolicy(sizePolicy) + self.widget_setting.setMinimumSize(QtCore.QSize(221, 721)) + self.widget_setting.setObjectName("widget_setting") + self.label_ico = QtWidgets.QLabel(self.widget_setting) + self.label_ico.setGeometry(QtCore.QRect(10, 380, 201, 321)) + self.label_ico.setObjectName("label_ico") + self.layoutWidget = QtWidgets.QWidget(self.widget_setting) + self.layoutWidget.setGeometry(QtCore.QRect(10, 10, 201, 360)) + self.layoutWidget.setObjectName("layoutWidget") + self.verticalLayout = QtWidgets.QVBoxLayout(self.layoutWidget) + self.verticalLayout.setContentsMargins(0, 0, 0, 0) + self.verticalLayout.setObjectName("verticalLayout") + self.horizontalLayout = QtWidgets.QHBoxLayout() + self.horizontalLayout.setObjectName("horizontalLayout") + self.pushButton_close = QtWidgets.QPushButton(self.layoutWidget) + self.pushButton_close.setObjectName("pushButton_close") + self.horizontalLayout.addWidget(self.pushButton_close) + self.pushButton_min = QtWidgets.QPushButton(self.layoutWidget) + self.pushButton_min.setObjectName("pushButton_min") + self.horizontalLayout.addWidget(self.pushButton_min) + self.verticalLayout.addLayout(self.horizontalLayout) + spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout.addItem(spacerItem) + self.pushButton_main = QtWidgets.QPushButton(self.layoutWidget) + self.pushButton_main.setObjectName("pushButton_main") + self.verticalLayout.addWidget(self.pushButton_main) + spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout.addItem(spacerItem1) + self.pushButton_log = QtWidgets.QPushButton(self.layoutWidget) + self.pushButton_log.setObjectName("pushButton_log") + self.verticalLayout.addWidget(self.pushButton_log) + spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout.addItem(spacerItem2) + self.pushButton_tool = QtWidgets.QPushButton(self.layoutWidget) + self.pushButton_tool.setObjectName("pushButton_tool") + self.verticalLayout.addWidget(self.pushButton_tool) + spacerItem3 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout.addItem(spacerItem3) + self.pushButton_setting = QtWidgets.QPushButton(self.layoutWidget) + self.pushButton_setting.setObjectName("pushButton_setting") + self.verticalLayout.addWidget(self.pushButton_setting) + spacerItem4 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.verticalLayout.addItem(spacerItem4) + self.pushButton_about = QtWidgets.QPushButton(self.layoutWidget) + self.pushButton_about.setObjectName("pushButton_about") + self.verticalLayout.addWidget(self.pushButton_about) + self.horizontalLayout_3.addWidget(self.widget_setting) self.stackedWidget = QtWidgets.QStackedWidget(self.centralwidget) - self.stackedWidget.setGeometry(QtCore.QRect(230, 0, 821, 721)) + self.stackedWidget.setMinimumSize(QtCore.QSize(1013, 860)) self.stackedWidget.setObjectName("stackedWidget") self.page_avdc = QtWidgets.QWidget() self.page_avdc.setObjectName("page_avdc") - self.pushButton_start_cap = QtWidgets.QPushButton(self.page_avdc) - self.pushButton_start_cap.setGeometry(QtCore.QRect(650, 10, 121, 41)) + self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.page_avdc) + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.treeWidget_number = QtWidgets.QTreeWidget(self.page_avdc) + self.treeWidget_number.setObjectName("treeWidget_number") + item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget_number) + item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget_number) + self.horizontalLayout_2.addWidget(self.treeWidget_number) + self.main_right = QtWidgets.QWidget(self.page_avdc) + self.main_right.setMinimumSize(QtCore.QSize(600, 0)) + self.main_right.setObjectName("main_right") + self.pushButton_start_cap = QtWidgets.QPushButton(self.main_right) + self.pushButton_start_cap.setGeometry(QtCore.QRect(380, 0, 191, 50)) self.pushButton_start_cap.setObjectName("pushButton_start_cap") - self.textBrowser_warning = QtWidgets.QTextBrowser(self.page_avdc) - self.textBrowser_warning.setGeometry(QtCore.QRect(100, 10, 471, 41)) + self.textBrowser_warning = QtWidgets.QTextBrowser(self.main_right) + self.textBrowser_warning.setGeometry(QtCore.QRect(0, 0, 370, 50)) + font = QtGui.QFont() + font.setFamily("宋体") + font.setPointSize(9) + self.textBrowser_warning.setFont(font) self.textBrowser_warning.setObjectName("textBrowser_warning") - self.horizontalLayoutWidget = QtWidgets.QWidget(self.page_avdc) - self.horizontalLayoutWidget.setGeometry(QtCore.QRect(0, 680, 791, 41)) + self.horizontalLayoutWidget = QtWidgets.QWidget(self.main_right) + self.horizontalLayoutWidget.setGeometry(QtCore.QRect(0, 800, 571, 41)) self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget") - self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget) - self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0) - self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.horizontalLayout_21 = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget) + self.horizontalLayout_21.setContentsMargins(0, 0, 0, 0) + self.horizontalLayout_21.setObjectName("horizontalLayout_21") self.progressBar_avdc = QtWidgets.QProgressBar(self.horizontalLayoutWidget) self.progressBar_avdc.setProperty("value", 24) self.progressBar_avdc.setObjectName("progressBar_avdc") - self.horizontalLayout_2.addWidget(self.progressBar_avdc) + self.horizontalLayout_21.addWidget(self.progressBar_avdc) self.label_percent = QtWidgets.QLabel(self.horizontalLayoutWidget) self.label_percent.setObjectName("label_percent") - self.horizontalLayout_2.addWidget(self.label_percent) - self.treeWidget_number = QtWidgets.QTreeWidget(self.page_avdc) - self.treeWidget_number.setGeometry(QtCore.QRect(0, 70, 201, 601)) - self.treeWidget_number.setObjectName("treeWidget_number") - item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget_number) - item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget_number) - self.gridLayoutWidget_2 = QtWidgets.QWidget(self.page_avdc) - self.gridLayoutWidget_2.setGeometry(QtCore.QRect(210, 450, 161, 221)) + self.horizontalLayout_21.addWidget(self.label_percent) + self.gridLayoutWidget_2 = QtWidgets.QWidget(self.main_right) + self.gridLayoutWidget_2.setGeometry(QtCore.QRect(0, 560, 161, 221)) self.gridLayoutWidget_2.setObjectName("gridLayoutWidget_2") self.gridLayout_2 = QtWidgets.QGridLayout(self.gridLayoutWidget_2) self.gridLayout_2.setContentsMargins(0, 0, 0, 0) @@ -56,8 +119,8 @@ def setupUi(self, AVDV): self.label_poster.setAlignment(QtCore.Qt.AlignCenter) self.label_poster.setObjectName("label_poster") self.gridLayout_2.addWidget(self.label_poster, 0, 0, 1, 1) - self.gridLayoutWidget = QtWidgets.QWidget(self.page_avdc) - self.gridLayoutWidget.setGeometry(QtCore.QRect(450, 450, 331, 221)) + self.gridLayoutWidget = QtWidgets.QWidget(self.main_right) + self.gridLayoutWidget.setGeometry(QtCore.QRect(240, 560, 331, 221)) self.gridLayoutWidget.setObjectName("gridLayoutWidget") self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget) self.gridLayout.setSizeConstraint(QtWidgets.QLayout.SetDefaultConstraint) @@ -70,109 +133,147 @@ def setupUi(self, AVDV): self.label_fanart.setAlignment(QtCore.Qt.AlignCenter) self.label_fanart.setObjectName("label_fanart") self.gridLayout.addWidget(self.label_fanart, 0, 0, 1, 1) - self.line = QtWidgets.QFrame(self.page_avdc) - self.line.setGeometry(QtCore.QRect(0, 50, 791, 20)) + self.line = QtWidgets.QFrame(self.main_right) + self.line.setGeometry(QtCore.QRect(0, 50, 571, 20)) self.line.setFrameShape(QtWidgets.QFrame.HLine) self.line.setFrameShadow(QtWidgets.QFrame.Sunken) self.line.setObjectName("line") - self.label_11 = QtWidgets.QLabel(self.page_avdc) - self.label_11.setGeometry(QtCore.QRect(210, 70, 81, 39)) + self.label_11 = QtWidgets.QLabel(self.main_right) + self.label_11.setGeometry(QtCore.QRect(0, 70, 81, 39)) + font = QtGui.QFont() + font.setPointSize(9) + self.label_11.setFont(font) self.label_11.setObjectName("label_11") - self.label_number = QtWidgets.QLabel(self.page_avdc) - self.label_number.setGeometry(QtCore.QRect(290, 70, 201, 39)) + self.label_number = QtWidgets.QLabel(self.main_right) + self.label_number.setGeometry(QtCore.QRect(80, 70, 201, 39)) self.label_number.setFrameShape(QtWidgets.QFrame.Box) self.label_number.setLineWidth(1) self.label_number.setText("") self.label_number.setObjectName("label_number") - self.label_13 = QtWidgets.QLabel(self.page_avdc) - self.label_13.setGeometry(QtCore.QRect(500, 70, 81, 39)) + self.label_13 = QtWidgets.QLabel(self.main_right) + self.label_13.setGeometry(QtCore.QRect(290, 70, 81, 39)) + font = QtGui.QFont() + font.setPointSize(9) + self.label_13.setFont(font) self.label_13.setObjectName("label_13") - self.label_release = QtWidgets.QLabel(self.page_avdc) - self.label_release.setGeometry(QtCore.QRect(580, 70, 201, 39)) + self.label_release = QtWidgets.QLabel(self.main_right) + self.label_release.setGeometry(QtCore.QRect(370, 70, 201, 39)) self.label_release.setFrameShape(QtWidgets.QFrame.Box) self.label_release.setText("") self.label_release.setObjectName("label_release") - self.label_15 = QtWidgets.QLabel(self.page_avdc) - self.label_15.setGeometry(QtCore.QRect(210, 270, 81, 39)) + self.label_15 = QtWidgets.QLabel(self.main_right) + self.label_15.setGeometry(QtCore.QRect(0, 270, 81, 39)) + font = QtGui.QFont() + font.setPointSize(9) + self.label_15.setFont(font) self.label_15.setObjectName("label_15") - self.label_actor = QtWidgets.QLabel(self.page_avdc) - self.label_actor.setGeometry(QtCore.QRect(290, 270, 491, 39)) + self.label_actor = QtWidgets.QLabel(self.main_right) + self.label_actor.setGeometry(QtCore.QRect(80, 270, 491, 39)) self.label_actor.setFrameShape(QtWidgets.QFrame.Box) self.label_actor.setLineWidth(1) self.label_actor.setText("") self.label_actor.setObjectName("label_actor") - self.label_outline = QtWidgets.QLabel(self.page_avdc) - self.label_outline.setGeometry(QtCore.QRect(290, 320, 491, 39)) + self.label_outline = QtWidgets.QLabel(self.main_right) + self.label_outline.setGeometry(QtCore.QRect(80, 320, 491, 39)) self.label_outline.setFrameShape(QtWidgets.QFrame.Box) self.label_outline.setLineWidth(1) self.label_outline.setText("") self.label_outline.setObjectName("label_outline") - self.label_18 = QtWidgets.QLabel(self.page_avdc) - self.label_18.setGeometry(QtCore.QRect(210, 320, 81, 39)) + self.label_18 = QtWidgets.QLabel(self.main_right) + self.label_18.setGeometry(QtCore.QRect(0, 320, 81, 39)) + font = QtGui.QFont() + font.setPointSize(9) + self.label_18.setFont(font) self.label_18.setObjectName("label_18") - self.label_title = QtWidgets.QLabel(self.page_avdc) - self.label_title.setGeometry(QtCore.QRect(290, 220, 491, 39)) + self.label_title = QtWidgets.QLabel(self.main_right) + self.label_title.setGeometry(QtCore.QRect(80, 220, 491, 39)) self.label_title.setFrameShape(QtWidgets.QFrame.Box) self.label_title.setLineWidth(1) self.label_title.setText("") self.label_title.setObjectName("label_title") - self.label_20 = QtWidgets.QLabel(self.page_avdc) - self.label_20.setGeometry(QtCore.QRect(210, 220, 81, 39)) + self.label_20 = QtWidgets.QLabel(self.main_right) + self.label_20.setGeometry(QtCore.QRect(0, 220, 81, 39)) + font = QtGui.QFont() + font.setPointSize(9) + self.label_20.setFont(font) self.label_20.setObjectName("label_20") - self.label_director = QtWidgets.QLabel(self.page_avdc) - self.label_director.setGeometry(QtCore.QRect(290, 120, 201, 39)) + self.label_director = QtWidgets.QLabel(self.main_right) + self.label_director.setGeometry(QtCore.QRect(80, 120, 201, 39)) self.label_director.setFrameShape(QtWidgets.QFrame.Box) self.label_director.setLineWidth(1) self.label_director.setText("") self.label_director.setObjectName("label_director") - self.label_publish = QtWidgets.QLabel(self.page_avdc) - self.label_publish.setGeometry(QtCore.QRect(580, 170, 201, 39)) + self.label_publish = QtWidgets.QLabel(self.main_right) + self.label_publish.setGeometry(QtCore.QRect(370, 170, 201, 39)) self.label_publish.setFrameShape(QtWidgets.QFrame.Box) self.label_publish.setText("") self.label_publish.setObjectName("label_publish") - self.label_23 = QtWidgets.QLabel(self.page_avdc) - self.label_23.setGeometry(QtCore.QRect(210, 120, 81, 39)) + self.label_23 = QtWidgets.QLabel(self.main_right) + self.label_23.setGeometry(QtCore.QRect(0, 120, 81, 39)) + font = QtGui.QFont() + font.setPointSize(9) + self.label_23.setFont(font) self.label_23.setObjectName("label_23") - self.label_24 = QtWidgets.QLabel(self.page_avdc) - self.label_24.setGeometry(QtCore.QRect(500, 170, 81, 39)) + self.label_24 = QtWidgets.QLabel(self.main_right) + self.label_24.setGeometry(QtCore.QRect(290, 170, 81, 39)) + font = QtGui.QFont() + font.setPointSize(9) + self.label_24.setFont(font) self.label_24.setObjectName("label_24") - self.label_studio = QtWidgets.QLabel(self.page_avdc) - self.label_studio.setGeometry(QtCore.QRect(290, 170, 201, 39)) + self.label_studio = QtWidgets.QLabel(self.main_right) + self.label_studio.setGeometry(QtCore.QRect(80, 170, 201, 39)) self.label_studio.setFrameShape(QtWidgets.QFrame.Box) self.label_studio.setLineWidth(1) self.label_studio.setText("") self.label_studio.setObjectName("label_studio") - self.label_label = QtWidgets.QLabel(self.page_avdc) - self.label_label.setGeometry(QtCore.QRect(580, 120, 201, 39)) + self.label_label = QtWidgets.QLabel(self.main_right) + self.label_label.setGeometry(QtCore.QRect(370, 120, 201, 39)) self.label_label.setFrameShape(QtWidgets.QFrame.Box) self.label_label.setText("") self.label_label.setObjectName("label_label") - self.label_30 = QtWidgets.QLabel(self.page_avdc) - self.label_30.setGeometry(QtCore.QRect(210, 170, 81, 39)) + self.label_30 = QtWidgets.QLabel(self.main_right) + self.label_30.setGeometry(QtCore.QRect(0, 170, 81, 39)) + font = QtGui.QFont() + font.setPointSize(9) + self.label_30.setFont(font) self.label_30.setObjectName("label_30") - self.label_31 = QtWidgets.QLabel(self.page_avdc) - self.label_31.setGeometry(QtCore.QRect(500, 120, 81, 39)) + self.label_31 = QtWidgets.QLabel(self.main_right) + self.label_31.setGeometry(QtCore.QRect(290, 120, 81, 39)) + font = QtGui.QFont() + font.setPointSize(9) + self.label_31.setFont(font) self.label_31.setObjectName("label_31") - self.label_tag = QtWidgets.QLabel(self.page_avdc) - self.label_tag.setGeometry(QtCore.QRect(290, 370, 491, 39)) + self.label_tag = QtWidgets.QLabel(self.main_right) + self.label_tag.setGeometry(QtCore.QRect(80, 370, 491, 39)) self.label_tag.setFrameShape(QtWidgets.QFrame.Box) self.label_tag.setLineWidth(1) self.label_tag.setText("") self.label_tag.setObjectName("label_tag") - self.label_33 = QtWidgets.QLabel(self.page_avdc) - self.label_33.setGeometry(QtCore.QRect(210, 370, 81, 39)) + self.label_33 = QtWidgets.QLabel(self.main_right) + self.label_33.setGeometry(QtCore.QRect(0, 370, 81, 39)) + font = QtGui.QFont() + font.setPointSize(9) + self.label_33.setFont(font) self.label_33.setObjectName("label_33") - self.checkBox_cover = QtWidgets.QCheckBox(self.page_avdc) - self.checkBox_cover.setGeometry(QtCore.QRect(210, 420, 321, 21)) + self.checkBox_cover = QtWidgets.QCheckBox(self.main_right) + self.checkBox_cover.setGeometry(QtCore.QRect(0, 520, 321, 21)) + font = QtGui.QFont() + font.setPointSize(9) + self.checkBox_cover.setFont(font) self.checkBox_cover.setObjectName("checkBox_cover") - self.label_progress = QtWidgets.QLabel(self.page_avdc) - self.label_progress.setGeometry(QtCore.QRect(690, 420, 91, 20)) + self.label_progress = QtWidgets.QLabel(self.main_right) + self.label_progress.setGeometry(QtCore.QRect(480, 520, 91, 20)) + font = QtGui.QFont() + font.setPointSize(9) + self.label_progress.setFont(font) self.label_progress.setObjectName("label_progress") + self.horizontalLayout_2.addWidget(self.main_right) self.stackedWidget.addWidget(self.page_avdc) self.page_tool = QtWidgets.QWidget() self.page_tool.setObjectName("page_tool") + self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.page_tool) + self.verticalLayout_2.setObjectName("verticalLayout_2") self.groupBox_6 = QtWidgets.QGroupBox(self.page_tool) - self.groupBox_6.setGeometry(QtCore.QRect(10, 10, 751, 121)) self.groupBox_6.setObjectName("groupBox_6") self.label_8 = QtWidgets.QLabel(self.groupBox_6) self.label_8.setGeometry(QtCore.QRect(230, 60, 511, 41)) @@ -186,8 +287,8 @@ def setupUi(self, AVDV): self.lineEdit_escape_dir_move = QtWidgets.QLineEdit(self.groupBox_6) self.lineEdit_escape_dir_move.setGeometry(QtCore.QRect(310, 30, 431, 24)) self.lineEdit_escape_dir_move.setObjectName("lineEdit_escape_dir_move") + self.verticalLayout_2.addWidget(self.groupBox_6) self.groupBox_7 = QtWidgets.QGroupBox(self.page_tool) - self.groupBox_7.setGeometry(QtCore.QRect(10, 140, 751, 111)) self.groupBox_7.setObjectName("groupBox_7") self.label = QtWidgets.QLabel(self.groupBox_7) self.label.setGeometry(QtCore.QRect(230, 60, 511, 41)) @@ -209,8 +310,8 @@ def setupUi(self, AVDV): self.label_2 = QtWidgets.QLabel(self.groupBox_7) self.label_2.setGeometry(QtCore.QRect(230, 30, 72, 21)) self.label_2.setObjectName("label_2") + self.verticalLayout_2.addWidget(self.groupBox_7) self.groupBox_12 = QtWidgets.QGroupBox(self.page_tool) - self.groupBox_12.setGeometry(QtCore.QRect(10, 270, 751, 191)) self.groupBox_12.setObjectName("groupBox_12") self.pushButton_add_actor_pic = QtWidgets.QPushButton(self.groupBox_12) self.pushButton_add_actor_pic.setGeometry(QtCore.QRect(10, 30, 201, 71)) @@ -240,8 +341,8 @@ def setupUi(self, AVDV): self.comboBox_pic_actor.addItem("") self.comboBox_pic_actor.addItem("") self.comboBox_pic_actor.addItem("") + self.verticalLayout_2.addWidget(self.groupBox_12) self.groupBox_13 = QtWidgets.QGroupBox(self.page_tool) - self.groupBox_13.setGeometry(QtCore.QRect(10, 470, 751, 111)) self.groupBox_13.setObjectName("groupBox_13") self.pushButton_select_fanart = QtWidgets.QPushButton(self.groupBox_13) self.pushButton_select_fanart.setGeometry(QtCore.QRect(10, 20, 201, 71)) @@ -249,6 +350,7 @@ def setupUi(self, AVDV): self.label_6 = QtWidgets.QLabel(self.groupBox_13) self.label_6.setGeometry(QtCore.QRect(230, 20, 511, 71)) self.label_6.setObjectName("label_6") + self.verticalLayout_2.addWidget(self.groupBox_13) self.stackedWidget.addWidget(self.page_tool) self.page_setting = QtWidgets.QWidget() self.page_setting.setObjectName("page_setting") @@ -409,84 +511,52 @@ def setupUi(self, AVDV): self.stackedWidget.addWidget(self.page_setting) self.page_about = QtWidgets.QWidget() self.page_about.setObjectName("page_about") + self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.page_about) + self.verticalLayout_4.setObjectName("verticalLayout_4") self.textBrowser_about = QtWidgets.QTextBrowser(self.page_about) - self.textBrowser_about.setGeometry(QtCore.QRect(10, 20, 761, 681)) self.textBrowser_about.setObjectName("textBrowser_about") + self.verticalLayout_4.addWidget(self.textBrowser_about) self.stackedWidget.addWidget(self.page_about) self.page_log = QtWidgets.QWidget() self.page_log.setObjectName("page_log") + self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.page_log) + self.verticalLayout_5.setObjectName("verticalLayout_5") self.textBrowser_log_main = QtWidgets.QTextBrowser(self.page_log) - self.textBrowser_log_main.setGeometry(QtCore.QRect(10, 20, 761, 681)) self.textBrowser_log_main.setObjectName("textBrowser_log_main") + self.verticalLayout_5.addWidget(self.textBrowser_log_main) self.stackedWidget.addWidget(self.page_log) - self.widget_setting = QtWidgets.QWidget(self.centralwidget) - self.widget_setting.setGeometry(QtCore.QRect(0, 0, 221, 721)) - self.widget_setting.setObjectName("widget_setting") - self.label_ico = QtWidgets.QLabel(self.widget_setting) - self.label_ico.setGeometry(QtCore.QRect(10, 380, 201, 321)) - self.label_ico.setObjectName("label_ico") - self.layoutWidget = QtWidgets.QWidget(self.widget_setting) - self.layoutWidget.setGeometry(QtCore.QRect(10, 10, 201, 360)) - self.layoutWidget.setObjectName("layoutWidget") - self.verticalLayout = QtWidgets.QVBoxLayout(self.layoutWidget) - self.verticalLayout.setContentsMargins(0, 0, 0, 0) - self.verticalLayout.setObjectName("verticalLayout") - self.horizontalLayout = QtWidgets.QHBoxLayout() - self.horizontalLayout.setObjectName("horizontalLayout") - self.pushButton_close = QtWidgets.QPushButton(self.layoutWidget) - self.pushButton_close.setObjectName("pushButton_close") - self.horizontalLayout.addWidget(self.pushButton_close) - self.pushButton_min = QtWidgets.QPushButton(self.layoutWidget) - self.pushButton_min.setObjectName("pushButton_min") - self.horizontalLayout.addWidget(self.pushButton_min) - self.verticalLayout.addLayout(self.horizontalLayout) - spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) - self.verticalLayout.addItem(spacerItem) - self.pushButton_main = QtWidgets.QPushButton(self.layoutWidget) - self.pushButton_main.setObjectName("pushButton_main") - self.verticalLayout.addWidget(self.pushButton_main) - spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) - self.verticalLayout.addItem(spacerItem1) - self.pushButton_log = QtWidgets.QPushButton(self.layoutWidget) - self.pushButton_log.setObjectName("pushButton_log") - self.verticalLayout.addWidget(self.pushButton_log) - spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) - self.verticalLayout.addItem(spacerItem2) - self.pushButton_tool = QtWidgets.QPushButton(self.layoutWidget) - self.pushButton_tool.setObjectName("pushButton_tool") - self.verticalLayout.addWidget(self.pushButton_tool) - spacerItem3 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) - self.verticalLayout.addItem(spacerItem3) - self.pushButton_setting = QtWidgets.QPushButton(self.layoutWidget) - self.pushButton_setting.setObjectName("pushButton_setting") - self.verticalLayout.addWidget(self.pushButton_setting) - spacerItem4 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) - self.verticalLayout.addItem(spacerItem4) - self.pushButton_about = QtWidgets.QPushButton(self.layoutWidget) - self.pushButton_about.setObjectName("pushButton_about") - self.verticalLayout.addWidget(self.pushButton_about) + self.horizontalLayout_3.addWidget(self.stackedWidget) AVDV.setCentralWidget(self.centralwidget) self.retranslateUi(AVDV) - self.stackedWidget.setCurrentIndex(1) + self.stackedWidget.setCurrentIndex(0) QtCore.QMetaObject.connectSlotsByName(AVDV) def retranslateUi(self, AVDV): _translate = QtCore.QCoreApplication.translate - AVDV.setWindowTitle(_translate("AVDV", "AVDC-3.7")) - self.pushButton_start_cap.setText(_translate("AVDV", "开始")) - self.textBrowser_warning.setHtml(_translate("AVDV", "\n" -"\n" -"

反馈BUG,请:开调试模式后截图日志。

")) - self.label_percent.setText(_translate("AVDV", "0%")) + AVDV.setWindowTitle(_translate("AVDV", "AVDC-3.73")) + self.label_ico.setText(_translate("AVDV", "图标")) + self.pushButton_close.setText(_translate("AVDV", "X")) + self.pushButton_min.setText(_translate("AVDV", "-")) + self.pushButton_main.setText(_translate("AVDV", "主界面")) + self.pushButton_log.setText(_translate("AVDV", "日志")) + self.pushButton_tool.setText(_translate("AVDV", "工具")) + self.pushButton_setting.setText(_translate("AVDV", "设置")) + self.pushButton_about.setText(_translate("AVDV", "关于")) self.treeWidget_number.headerItem().setText(0, _translate("AVDV", "番号")) __sortingEnabled = self.treeWidget_number.isSortingEnabled() self.treeWidget_number.setSortingEnabled(False) self.treeWidget_number.topLevelItem(0).setText(0, _translate("AVDV", "成功")) self.treeWidget_number.topLevelItem(1).setText(0, _translate("AVDV", "失败")) self.treeWidget_number.setSortingEnabled(__sortingEnabled) + self.pushButton_start_cap.setText(_translate("AVDV", "开始")) + self.textBrowser_warning.setHtml(_translate("AVDV", "\n" +"\n" +"

\n" +"

反馈BUG,请:开调试模式后截图日志。

")) + self.label_percent.setText(_translate("AVDV", "0%")) self.label_poster.setText(_translate("AVDV", "封面图")) self.label_fanart.setText(_translate("AVDV", "缩略图")) self.label_11.setText(_translate("AVDV", "番号:")) @@ -502,8 +572,7 @@ def retranslateUi(self, AVDV): self.checkBox_cover.setText(_translate("AVDV", "显示封面(取消勾选后,立即关闭封面显示)")) self.label_progress.setText(_translate("AVDV", "0/0")) self.groupBox_6.setTitle(_translate("AVDV", "视频、字幕移动")) - self.label_8.setText(_translate("AVDV", "程序所在目录的所有子目录(不包括排除目录)下的视频及同名字幕,\n" -"移动到当前目录下。")) + self.label_8.setText(_translate("AVDV", "程序所在目录的所有子目录(不包括排除目录)下的视频及同名字幕, 移动到当前目录下。")) self.pushButton_move_mp4.setText(_translate("AVDV", "开始移动")) self.label_41.setText(_translate("AVDV", "排除目录:")) self.groupBox_7.setTitle(_translate("AVDV", "单文件刮削")) @@ -522,9 +591,7 @@ def retranslateUi(self, AVDV): self.pushButton_add_actor_pic.setText(_translate("AVDV", "添加头像")) self.label_3.setText(_translate("AVDV", "Emby地址:")) self.label_4.setText(_translate("AVDV", "API密钥:")) - self.label_5.setText(_translate("AVDV", "说明:\n" -" 1、头像请放在程序目录(AVDC目录)下的Actor目录中。\n" -" 2、密钥创建方法:Emby控制台->高级->API密钥->添加(APP名称任意)。")) + self.label_5.setText(_translate("AVDV", "说明: 1、头像请放在程序目录(AVDC目录)下的Actor目录中。 2、密钥创建方法:Emby控制台->高级->API密钥->添加(APP名称任意)。")) self.pushButton_show_pic_actor.setText(_translate("AVDV", "查看")) self.comboBox_pic_actor.setItemText(0, _translate("AVDV", "可添加头像的女优")) self.comboBox_pic_actor.setItemText(1, _translate("AVDV", "没有头像的女优")) @@ -532,24 +599,21 @@ def retranslateUi(self, AVDV): self.comboBox_pic_actor.setItemText(3, _translate("AVDV", "所有女优")) self.groupBox_13.setTitle(_translate("AVDV", "裁剪封面图")) self.pushButton_select_fanart.setText(_translate("AVDV", "选择缩略图")) - self.label_6.setText(_translate("AVDV", "说明:\n" -" 1、对有些封面图(.png)不满意,比例不对或者分辨率太低,可使用此工具。\n" -" 2、此工具通过判断人脸位置,可以将缩略图(.jpg)裁剪为封面图。\n" -" 3、不要选择Backdrop.jpg。")) + self.label_6.setText(_translate("AVDV", "说明: 1、对有些封面图(.png)不满意,比例不对或者分辨率太低,可使用此工具。 2、此工具通过判断人脸位置,可以将缩略图(.jpg)裁剪为封面图。 3、不要选择Backdrop.jpg。")) self.pushButton_save_config.setText(_translate("AVDV", "保存")) self.groupBox_8.setTitle(_translate("AVDV", "命名规则")) - self.label_43.setText(_translate("AVDV", " 目录命名: ")) - self.label_44.setText(_translate("AVDV", " 视频标题(媒体库中): ")) - self.label_45.setText(_translate("AVDV", " 视频标题(本地文件): ")) + self.label_43.setText(_translate("AVDV", "目录命名:")) + self.label_44.setText(_translate("AVDV", "视频标题(媒体库中):")) + self.label_45.setText(_translate("AVDV", "视频标题(本地文件):")) self.groupBox_9.setTitle(_translate("AVDV", "代理设置")) - self.label_25.setText(_translate("AVDV", " 代理: ")) - self.label_26.setText(_translate("AVDV", " 超时重试时间: ")) - self.label_27.setText(_translate("AVDV", " 重试次数: ")) + self.label_25.setText(_translate("AVDV", "代理:")) + self.label_26.setText(_translate("AVDV", "超时重试时间:")) + self.label_27.setText(_translate("AVDV", "重试次数:")) self.groupBox_10.setTitle(_translate("AVDV", "普通设置")) - self.label_37.setText(_translate("AVDV", " 失败输出目录: ")) - self.label_39.setText(_translate("AVDV", " 成功输出目录: ")) - self.label_40.setText(_translate("AVDV", " 排除目录:")) - self.label_38.setText(_translate("AVDV", " 异常字符: ")) + self.label_37.setText(_translate("AVDV", "失败输出目录:")) + self.label_39.setText(_translate("AVDV", "成功输出目录:")) + self.label_40.setText(_translate("AVDV", "排除目录:")) + self.label_38.setText(_translate("AVDV", "异常字符:")) self.groupBox.setTitle(_translate("AVDV", "模式:")) self.radioButton_common.setText(_translate("AVDV", "普通模式")) self.radioButton_sort.setText(_translate("AVDV", "整理模式")) @@ -572,163 +636,156 @@ def retranslateUi(self, AVDV): self.textBrowser_about.setHtml(_translate("AVDV", "\n" "\n" +"\n" +"

\n" "

AVDC

\n" "

目录

\n" -"

一、功能简介

\n" -"

二、项目简介

\n" -"

三、设置说明

\n" -"

四、更新日志

\n" -"

 

\n" +"

一、功能简介

\n" +"

二、项目简介

\n" +"

三、设置说明

\n" +"

四、更新日志

\n" +"

\n" "

、功能简介

\n" -"

日本电影元数据抓取工具/刮削器,配合本地影片管理软件EMBY,KODI,PLEX等管理本地影片,该软件起到分类与元数据抓取作用,利用元数据信息来分类,供本地影片分类整理使用。

\n" -"

 

\n" +"

日本电影元数据抓取工具/刮削器,配合本地影片管理软件EMBY,KODI,PLEX等管理本地影片,该软件起到分类与元数据抓取作用,利用元数据信息来分类,供本地影片分类整理使用。

\n" +"

\n" "

、项目简介

\n" -"

Gui made by moyy996,Core made by yoshiko2

\n" -"

tg官方电报群: https://t.me/joinchat/J54y1g3-a7nxJ_-WS4-KFQ

\n" -"

命令行版项目地址:https://github.com/yoshiko2/AV_Data_Capture

\n" -"

GUI版项目地址:https://github.com/moyy996/AVDC

\n" -"

GUI版EXE下载地址:https://github.com/moyy996/AVDC/releases

\n" -"

 

\n" +"

Gui made by moyy996,Core made by yoshiko2

\n" +"

tg官方电报群: https://t.me/joinchat/J54y1g3-a7nxJ_-WS4-KFQ

\n" +"

命令行版项目地址:https://github.com/yoshiko2/AV_Data_Capture

\n" +"

GUI版项目地址:https://github.com/moyy996/AVDC

\n" +"

GUI版EXE下载地址:https://github.com/moyy996/AVDC/releases

\n" +"

\n" "

、设置说明

\n" -"

更详细的说明: https://github.com/moyy996/AVDC/blob/master/README.md

\n" -"

 

\n" +"

更详细的说明: https://github.com/moyy996/AVDC/blob/master/README.md

\n" +"

\n" "

1、普通模式/整理模式

\n" -"

普通模式:通过番号刮削数据,包括元数据、封面图、缩略图、背景图。

\n" -"

整理模式:仅根据女优把电影命名为番号并分类到女优名称的文件夹下

\n" -"

 

\n" +"

普通模式:通过番号刮削数据,包括元数据、封面图、缩略图、背景图。

\n" +"

整理模式:仅根据女优把电影命名为番号并分类到女优名称的文件夹下

\n" +"

\n" "

2、软链接模式:使用此模式,要以管理员身份运行。

\n" -"

刮削完不移动视频,而是在相应目录创建软链接(类似于快捷方式),方便PT下载完既想刮削又想继续上传的仓鼠党同志

\n" -"

 

\n" +"

刮削完不移动视频,而是在相应目录创建软链接(类似于快捷方式),方便PT下载完既想刮削又想继续上传的仓鼠党同志

\n" +"

\n" "

3、调试模式

\n" -"

输出番号的元数据,包括封面,导演,演员,简介等。

\n" -"

 

\n" +"

输出番号的元数据,包括封面,导演,演员,简介等。

\n" +"

\n" "

4、排除目录

\n" -"

在多层目录刮削时排除所填目录。

\n" -"

 

\n" +"

在多层目录刮削时排除所填目录。

\n" +"

\n" "

5、异常字符

\n" -"

在创建文件夹时,删除指定的字符。

\n" +"

在创建文件夹时,删除指定的字符。

\n" "


\n" "

6、命名规则

\n" -"

1、目录命名:存放视频数据的目录名,支持多层目录,支持自定义符号,例:[actor]/studio/number-【title】。

\n" -"

2、视频标题:nfo中的标题命名。例:number-[title]。可以自定义符号。

\n" -"

3、可选项为title(片名)、actor(演员)、studio(制作商)、director(导演)、release(发售日)、year(发行年份)、number(番号)、runtime(时长)、series(系列)、publisher(发行商)

\n" -"

 

\n" +"

1、目录命名:存放视频数据的目录名,支持多层目录,支持自定义符号,例:[actor]/studio/number-【title】。

\n" +"

2、视频标题:nfo中的标题命名。例:number-[title]。可以自定义符号。

\n" +"

3、可选项为title(片名)、actor(演员)、studio(制作商)、director(导演)、release(发售日)、year(发行年份)、number(番号)、runtime(时长)、series(系列)、publisher(发行商)

\n" +"

\n" "

7、网站选择

\n" -"

1All website: 使用avsox,javbus,fanza,javdb,fc2club进行刮削。
2
Only javdb: 仅使用javdb进行刮削。

\n" -"

 

\n" +"

1All website: 使用avsox,javbus,fanza,javdb,fc2club进行刮削。
2
Only javdb: 仅使用javdb进行刮削。

\n" +"

\n" "

四、更新日志

\n" "


\n" "

3.7

\n" "

2020-02-15 19:30更新

\n" "

可选项变更:title(片名)、actor(演员)、studio(制作商)、director(导演)、release(发售日)、year(发行年份)、number(番号)、runtime(时长)、series(系列)、publisher(发行商)

\n" "

修复:

\n" -"

1、修改javbus的抓取逻辑,成功率提高。

\n" -"

2、更新进度条改为刮削完之后。

\n" -"

3、不再强制替换‘_’为‘-’。

\n" -"

4、EMBY添加头像时,演员有别名,中文符号导致添加失败。

\n" -"

5、修复字幕移动,与视频文件同名的字幕,刮削完后会随视频一起移动。

\n" +"

1、修改javbus的抓取逻辑,成功率提高。

\n" +"

2、更新进度条改为刮削完之后。

\n" +"

3、不再强制替换‘_’为‘-’。

\n" +"

4、EMBY添加头像时,演员有别名,中文符号导致添加失败。

\n" +"

5、修复字幕移动,与视频文件同名的字幕,刮削完后会随视频一起移动。

\n" "

新增:

\n" -"

1、自定义本地文件名

\n" -"

2、获取制作商,发行商

\n" -"

3、标签加入系列、发行商、制作商(太多标签EMBY只显示一部分)。

\n" -"

4、小工具-视频移动,会移动与视频文件同名的字幕

\n" -"

 

\n" +"

1、自定义本地文件名

\n" +"

2、获取制作商,发行商

\n" +"

3、标签加入系列、发行商、制作商(太多标签EMBY只显示一部分)。

\n" +"

4、小工具-视频移动,会移动与视频文件同名的字幕

\n" +"

\n" "

3.61

\n" "

2020-02-12-15:40更新

\n" "

修复:

\n" -"

1、演员过多导致文件夹创建失败。(只取前三个)
2、avsox有多个封面图时导致失败。
3、主页面-
封面开关不管用。
4、
制作商、导演抓取错误。

\n" +"

1、演员过多导致文件夹创建失败。(只取前三个)
2、avsox有多个封面图时导致失败。
3、主页面-
封面开关不管用。
4、
制作商、导演抓取错误。

\n" "


\n" "

3.6

\n" "

2020-02-11 晚23点更新

\n" "

新增:

\n" -"

1、修改主界面UI,显示封面,番号、标题等数据。

\n" -"

2、刮削完的番号会添加到主界面左侧

\n" -"

3、刮削成功的可以点选,查看刮削到的数据、封面等。

\n" -"

4、失败的可以根据对应序号,去日志页查看具体报错信息

\n" +"

1、修改主界面UI,显示封面,番号、标题等数据。

\n" +"

2、刮削完的番号会添加到主界面左侧

\n" +"

3、刮削成功的可以点选,查看刮削到的数据、封面等。

\n" +"

4、失败的可以根据对应序号,去日志页查看具体报错信息

\n" "


\n" "

3.5

\n" "

2020-02-11 凌晨更新

\n" "

新增:

\n" -"

1、小工具-裁剪封面图: 裁剪缩略图封面图。,针对比例错误,分辨率低的情况。

\n" -"

2、更改命名规则,支持自定义符号,例如:[actor]/number-【title】-(release)。

\n" +"

1、小工具-裁剪封面图: 裁剪缩略图封面图。,针对比例错误,分辨率低的情况。

\n" +"

2、更改命名规则,支持自定义符号,例如:[actor]/number-【title】-(release)。

\n" "

修复:

\n" -"

1、avsox封面存在下载失败情况,修改无码片首先到javbus查找。

\n" -"

2、封面图下载失败后,将缩略图裁剪为封面图。

\n" -"

3、Fc2、javdb无码封面图比例不对,会进行裁剪。

\n" +"

1、avsox封面存在下载失败情况,修改无码片首先到javbus查找。

\n" +"

2、封面图下载失败后,将缩略图裁剪为封面图。

\n" +"

3、Fc2、javdb无码封面图比例不对,会进行裁剪。

\n" "


\n" "

3.41

\n" "

2020-02-09-15点更新

\n" "

新增:

\n" -"

1、小工具-单个抓取的文件名去掉-CD、-C
2、tag,genre添加
系列
3、Actor中上传成功的头像复制到
Success目录。

\n" +"

1、小工具-单个抓取的文件名去掉-CD、-C
2、tag,genre添加
系列
3、Actor中上传成功的头像复制到
Success目录。

\n" "


\n" "

3.4

\n" "

2020-02-07-晚20点 更新

\n" "

新增:

\n" -"

1、批量添加emby演员头像

\n" -"

2、查看可添加头像的演员,有头像、无头像、所有演员。

\n" +"

1、批量添加emby演员头像

\n" +"

2、查看可添加头像的演员,有头像、无头像、所有演员。

\n" "


\n" "

3.32

\n" "

2020-02-06-19:10更新

\n" "

修复:

\n" -"

1、无法识别111111-MMMM这种番号。

\n" +"

1、无法识别111111-MMMM这种番号。

\n" "

新增:

\n" -"

1、小工具-单个抓取,支持选择刮削网站

\n" +"

1、小工具-单个抓取,支持选择刮削网站

\n" "


\n" "

3.31

\n" "

2020-02-05-21:42更新

\n" "

修复:

\n" -"

1、仅JAVDB时,番号跟封面图不匹配的BUG。
2、优化报错信息的输出。

\n" +"

1、仅JAVDB时,番号跟封面图不匹配的BUG。
2、优化报错信息的输出。

\n" "


\n" "

3.3

\n" "

2020-02-05 凌晨更新

\n" "

修复:

\n" -"

1、分集刮削时文件命名出错。
2、javdb中演员有多曾用名时出错。
3、文件的命名都采用网站刮削到的番号命名

\n" +"

1、分集刮削时文件命名出错。
2、javdb中演员有多曾用名时出错。
3、文件的命名都采用网站刮削到的番号命名

\n" "


\n" "

3.22

\n" -"

2020-02-04 更新

\n" +"

2020-02-04 更新

\n" "

修复:

\n" -"

1、javdb,avsox抓取到但是显示抓取失败。

\n" +"

1、javdb,avsox抓取到但是显示抓取失败。

\n" "

新增:

\n" -"

1、文件夹命名支持多级目录,例:actor/studio/number-release。

\n" -"

 

\n" +"

1、文件夹命名支持多级目录,例:actor/studio/number-release。

\n" +"

\n" "

3.21

\n" "

2020-02-03-20:24更新

\n" "

新增:

\n" -"

1、刮削网站可选,全部网站(avsox,javbus,fanza,javdb,fc2club),或者仅JAVDB
2、改进javdb刮削逻辑。

\n" -"

 

\n" +"

1、刮削网站可选,全部网站(avsox,javbus,fanza,javdb,fc2club),或者仅JAVDB
2、改进javdb刮削逻辑。

\n" +"

\n" "

3.2

\n" "

2020-02-03 更新

\n" "

修复:

\n" -"

1、找不到影片信息时依然创建目录、下载空图片的问题。

\n" -"

2、界面微调。

\n" -"

3、修复MIDE139抓取不到的情况。

\n" +"

1、找不到影片信息时依然创建目录、下载空图片的问题。

\n" +"

2、界面微调。

\n" +"

3、修复MIDE139抓取不到的情况。

\n" "

新增:

\n" -"

1、进度条显示。

\n" -"

2、一次刮削任务未结束,开始按钮不可用。结束后才可用。

\n" -"

 

\n" +"

1、进度条显示。

\n" +"

2、一次刮削任务未结束,开始按钮不可用。结束后才可用。

\n" +"

\n" "

3.1

\n" "

2020-02-02更新

\n" "

修复:

\n" -"

1、修复文件夹自定义命名规则时,使用studio、release等刮削失败的bug。

\n" -"

2、去掉背景透明。

\n" -"

3、去掉javdb爬虫工具。

\n" +"

1、修复文件夹自定义命名规则时,使用studio、release等刮削失败的bug。

\n" +"

2、去掉背景透明。

\n" +"

3、去掉javdb爬虫工具。

\n" "

新增:

\n" -"

1、工具新增单个文件刮削。针对个别刮削失败的情况,使用文件名做番号。

\n" -"

2、更改自定义文件夹命名、媒体库标题命名规则

\n" -"

 

\n" +"

1、工具新增单个文件刮削。针对个别刮削失败的情况,使用文件名做番号。

\n" +"

2、更改自定义文件夹命名、媒体库标题命名规则

\n" +"

\n" "

3.0-GUI

\n" "

2020-01-31 更新

\n" -"

1、第一个GUI版本。
2、两个工具-javdb爬虫、视频移动。
3、可视化编辑config.ini。
4、多层目录刮削,增加
排除目录选项。

\n" -"

 

\n" -"

 

\n" -"

 

\n" -"

 

")) - self.label_ico.setText(_translate("AVDV", "图标")) - self.pushButton_close.setText(_translate("AVDV", "X")) - self.pushButton_min.setText(_translate("AVDV", "-")) - self.pushButton_main.setText(_translate("AVDV", "主界面")) - self.pushButton_log.setText(_translate("AVDV", "日志")) - self.pushButton_tool.setText(_translate("AVDV", "工具")) - self.pushButton_setting.setText(_translate("AVDV", "设置")) - self.pushButton_about.setText(_translate("AVDV", "关于")) +"

1、第一个GUI版本。
2、两个工具-javdb爬虫、视频移动。
3、可视化编辑config.ini。
4、多层目录刮削,增加
排除目录选项。

\n" +"

\n" +"

\n" +"

\n" +"

")) diff --git a/AVDC.ui b/AVDC.ui index 234c57faf..67e94e174 100644 --- a/AVDC.ui +++ b/AVDC.ui @@ -6,1611 +6,1656 @@ 0 0 - 1025 - 720 + 1250 + 870 - AVDC-3.7 + AVDC-3.73 - - - - 230 - 0 - 821 - 721 - - - - 1 - - - - - - 650 - 10 - 121 - 41 - - - - 开始 - - - - - - 100 - 10 - 471 - 41 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'SimSun'; font-size:9pt; font-weight:400; font-style:normal;"> -<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600; color:#000000;">反馈BUG,请:开调试模式后截图日志。</span></p></body></html> - - - - - - 0 - 680 - 791 - 41 - - - - - - - 24 - - - - - - - 0% - - - - - - - - - 0 - 70 - 201 - 601 - - - - - 番号 - - - - - 成功 - - - - - 失败 - - - - - - - 210 - 450 - 161 - 221 - - - - - - - QFrame::Box - - - 封面图 - - - Qt::AlignCenter - - - - - - - - - 450 - 450 - 331 - 221 - - - - - QLayout::SetDefaultConstraint - - - 7 - - - - - true - - - QFrame::Box - - - 缩略图 - - - Qt::AlignCenter - - - 0 - - - - - - - - - 0 - 50 - 791 - 20 - - - - Qt::Horizontal - - - - - - 210 - 70 - 81 - 39 - - - - 番号: - - - - - - 290 - 70 - 201 - 39 - - - - QFrame::Box - - - 1 - - - - - - - - - 500 - 70 - 81 - 39 - - - - 发行日期: - - - - - - 580 - 70 - 201 - 39 - - - - QFrame::Box - - - - - - - - - 210 - 270 - 81 - 39 - - - - 演员: - - - - - - 290 - 270 - 491 - 39 - - - - QFrame::Box - - - 1 - - - - - - - - - 290 - 320 - 491 - 39 - - - - QFrame::Box - - - 1 - - - - - - - - - 210 - 320 - 81 - 39 - - - - 简介: - - - - - - 290 - 220 - 491 - 39 - - - - QFrame::Box - - - 1 - - - - - - - - - 210 - 220 - 81 - 39 - - - - 标题: - - - - - - 290 - 120 - 201 - 39 - - - - QFrame::Box - - - 1 - - - - - - - - - 580 - 170 - 201 - 39 - - - - QFrame::Box - - - - - - - - - 210 - 120 - 81 - 39 - - - - 导演: - - - - - - 500 - 170 - 81 - 39 - - - - 发行: - - - - - - 290 - 170 - 201 - 39 - - - - QFrame::Box - - - 1 - - - - - - - - - 580 - 120 - 201 - 39 - - - - QFrame::Box - - - - - - - - - 210 - 170 - 81 - 39 - - - - 制作: - - - - - - 500 - 120 - 81 - 39 - - - - 系列: - - - - - - 290 - 370 - 491 - 39 - - - - QFrame::Box - - - 1 - - - - - - - - - 210 - 370 - 81 - 39 - - - - 类别: - - - - - - 210 - 420 - 321 - 21 - - - - 显示封面(取消勾选后,立即关闭封面显示) - - - - - - 690 - 420 - 91 - 20 - - - - 0/0 - - - - - - - - 10 - 10 - 751 - 121 - - - - 视频、字幕移动 - - - - - 230 - 60 - 511 - 41 - - - - 程序所在目录的所有子目录(不包括排除目录)下的视频及同名字幕, -移动到当前目录下。 - - - + + + + + + 0 + 0 + + + + + 221 + 721 + + + 10 - 30 + 380 201 - 71 - - - - 开始移动 - - - - - - 230 - 30 - 81 - 24 - - - - 排除目录: - - - - - - 310 - 30 - 431 - 24 - - - - - - - - 10 - 140 - 751 - 111 - - - - 单文件刮削 - - - - - 230 - 60 - 511 - 41 + 321 - 选择单个文件(程序目录下或者子目录下),使用文件名做为番号进行刮削。 + 图标 - + 10 - 30 + 10 201 - 71 + 360 - - 选择文件 - - - - - - 310 - 30 - 431 - 22 - - - - - All websites - - - - - javdb - - - - - javbus - - - - - avsox - - - - - fc2club - - - - - fanza - - - - - siro(mgstage) - - - - - javlibrary - - - - - - - 230 - 30 - 72 - 21 - - - - 刮削网站: - - - - - - - 10 - 270 - 751 - 191 - - - - Emby-女优头像 - - - - - 10 - 30 - 201 - 71 - - - - 添加头像 - - - - - - 310 - 30 - 431 - 21 - - - - - - - 230 - 30 - 72 - 15 - - - - Emby地址: - - - - - - 230 - 74 - 72 - 21 - - - - API密钥: - - - - - - 310 - 70 - 431 - 21 - - - - - - - 230 - 110 - 511 - 71 - - - - 说明: - 1、头像请放在程序目录(AVDC目录)下的Actor目录中。 - 2、密钥创建方法:Emby控制台->高级->API密钥->添加(APP名称任意)。 - - - - - - 10 - 140 - 201 - 31 - - - - 查看 - - - - - - 10 - 110 - 201 - 21 - - - - - 可添加头像的女优 - - - - - 没有头像的女优 - - - - - 已有头像的女优 - - - - - 所有女优 - - - - - - - - 10 - 470 - 751 - 111 - - - - 裁剪封面图 - - - - - 10 - 20 - 201 - 71 - - - - 选择缩略图 - - - - - - 230 - 20 - 511 - 71 - - - - 说明: - 1、对有些封面图(.png)不满意,比例不对或者分辨率太低,可使用此工具。 - 2、此工具通过判断人脸位置,可以将缩略图(.jpg)裁剪为封面图。 - 3、不要选择Backdrop.jpg。 - - - - - - - - - 210 - 660 - 361 - 28 - - - - 保存 - - - - - - 10 - 530 - 761 - 121 - - - - 命名规则 - - - - - 0 - 20 - 751 - 110 - - - - - - - 目录命名: - - - - - + + + + + + + X + + + + + + + - + + + + - - - - 视频标题(媒体库中): + + + + Qt::Vertical - - - - - - - - - 视频标题(本地文件): + + + 20 + 40 + - + - - - - - - - - - - 10 - 400 - 751 - 121 - - - - 代理设置 - - - - - 0 - 20 - 751 - 91 - - - - - + + - 代理: + 主界面 - - - - - - - 超时重试时间: + + + + Qt::Vertical - - - - + + + 20 + 40 + + + - - + + - 重试次数: + 日志 - - + + + + Qt::Vertical + + + + 20 + 40 + + + - - - - - - - 10 - 10 - 751 - 381 - - - - 普通设置 - - - - - 0 - 250 - 751 - 121 - - - - - + + - 失败输出目录: + 工具 - - - - - - - QFrame::NoFrame + + + + Qt::Vertical - - 成功输出目录: + + + 20 + 40 + - + - - - - - + + - 排除目录: + 设置 - - + + + + Qt::Vertical + + + + 20 + 40 + + + - - + + - 异常字符: + 关于 - - - - - - - 10 - 20 - 731 - 221 - - - + + + + + + + 1013 + 860 + + + + 0 + + + - - - 模式: + + + + 番号 + + + + + 成功 + + + + + 失败 + + + + + + + + + 600 + 0 + - + + + + 380 + 0 + 191 + 50 + + + + 开始 + + + + + + 0 + 0 + 370 + 50 + + + + + 宋体 + 9 + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'宋体'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'SimSun'; font-size:10.5pt;"> </span></p> +<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'SimSun'; font-size:12pt; font-weight:600; color:#000000;">反馈BUG,请:开调试模式后截图日志。</span></p></body></html> + + + + + + 0 + 800 + 571 + 41 + + + + + + + 24 + + + + + + + 0% + + + + + + + + + 0 + 560 + 161 + 221 + + + + + + + QFrame::Box + + + 封面图 + + + Qt::AlignCenter + + + + + + + + + 240 + 560 + 331 + 221 + + + + + QLayout::SetDefaultConstraint + + + 7 + + + + + true + + + QFrame::Box + + + 缩略图 + + + Qt::AlignCenter + + + 0 + + + + + + + + + 0 + 50 + 571 + 20 + + + + Qt::Horizontal + + + + + + 0 + 70 + 81 + 39 + + + + + 9 + + + + 番号: + + + + + + 80 + 70 + 201 + 39 + + + + QFrame::Box + + + 1 + + + + + + + + + 290 + 70 + 81 + 39 + + + + + 9 + + + + 发行日期: + + + - 190 - 10 - 181 - 19 + 370 + 70 + 201 + 39 + + QFrame::Box + - 普通模式 + - + - 490 - 10 - 181 - 19 + 0 + 270 + 81 + 39 + + + 9 + + - 整理模式 + 演员: - - - - - - 软链接模式: - - + + + + 80 + 270 + 491 + 39 + + + + QFrame::Box + + + 1 + + + + + + + + + 80 + 320 + 491 + 39 + + + + QFrame::Box + + + 1 + + + + + + + + + 0 + 320 + 81 + 39 + + + + + 9 + + + + 简介: + + + + + + 80 + 220 + 491 + 39 + + + + QFrame::Box + + + 1 + + + + + + + + + 0 + 220 + 81 + 39 + + + + + 9 + + + + 标题: + + + + + + 80 + 120 + 201 + 39 + + + + QFrame::Box + + + 1 + + + + + + + + + 370 + 170 + 201 + 39 + + + + QFrame::Box + + + + + + + + + 0 + 120 + 81 + 39 + + + + + 9 + + + + 导演: + + + + + + 290 + 170 + 81 + 39 + + + + + 9 + + + + 发行: + + + + + + 80 + 170 + 201 + 39 + + + + QFrame::Box + + + 1 + + + + + + + + + 370 + 120 + 201 + 39 + + + + QFrame::Box + + + + + + + + + 0 + 170 + 81 + 39 + + + + + 9 + + + + 制作: + + + + + + 290 + 120 + 81 + 39 + + + + + 9 + + + + 系列: + + + + + + 80 + 370 + 491 + 39 + + + + QFrame::Box + + + 1 + + + + + + - 190 - 10 - 181 - 19 + 0 + 370 + 81 + 39 + + + 9 + + + + 类别: + + + + + + 0 + 520 + 321 + 21 + + + + + 9 + + - + 显示封面(取消勾选后,立即关闭封面显示) - + - 490 - 10 - 181 - 19 + 480 + 520 + 91 + 20 + + + 9 + + - + 0/0 + + + + - + - 调试模式: + 视频、字幕移动 - + + + + 230 + 60 + 511 + 41 + + + + 程序所在目录的所有子目录(不包括排除目录)下的视频及同名字幕, 移动到当前目录下。 + + + - 190 - 10 - 181 - 19 + 10 + 30 + 201 + 71 - + 开始移动 - + - 490 - 10 - 181 - 19 + 230 + 30 + 81 + 24 - + 排除目录: + + + + + + 310 + 30 + 431 + 24 + - + - 检测更新: + 单文件刮削 - + - 190 - 10 - 181 - 19 + 230 + 60 + 511 + 41 - + 选择单个文件(程序目录下或者子目录下),使用文件名做为番号进行刮削。 + + + + + + 10 + 30 + 201 + 71 + + + + 选择文件 + + + + + + 310 + 30 + 431 + 22 + + + + All websites + + + + + javdb + + + + + javbus + + + + + avsox + + + + + fc2club + + + + + fanza + + + + + siro(mgstage) + + + + + javlibrary + + - + - 490 - 10 - 181 - 19 + 230 + 30 + 72 + 21 - + 刮削网站: - + - 媒体库: + Emby-女优头像 - + + + + 10 + 30 + 201 + 71 + + + + 添加头像 + + + + + + 310 + 30 + 431 + 21 + + + + - 190 - 10 - 181 - 19 + 230 + 30 + 72 + 15 - emby/jellyfin + Emby地址: - + - 420 - 10 - 181 - 19 + 230 + 74 + 72 + 21 - plex + API密钥: - + - 600 - 10 - 115 - 19 + 310 + 70 + 431 + 21 + + + + + + + 230 + 110 + 511 + 71 + + + + 说明: 1、头像请放在程序目录(AVDC目录)下的Actor目录中。 2、密钥创建方法:Emby控制台->高级->API密钥->添加(APP名称任意)。 + + + + + + 10 + 140 + 201 + 31 - kodi + 查看 + + + + + + 10 + 110 + 201 + 21 + + + + 可添加头像的女优 + + + + + 没有头像的女优 + + + + + 已有头像的女优 + + + + + 所有女优 + + - + - 网站选择: + 裁剪封面图 - + - 190 - 10 - 291 - 19 + 10 + 20 + 201 + 71 - All websites + 选择缩略图 - + - 490 - 10 - 115 - 19 + 230 + 20 + 511 + 71 - Only javdb + 说明: 1、对有些封面图(.png)不满意,比例不对或者分辨率太低,可使用此工具。 2、此工具通过判断人脸位置,可以将缩略图(.jpg)裁剪为封面图。 3、不要选择Backdrop.jpg。 - - - - - - - 10 - 20 - 761 - 681 - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + + + + + 210 + 660 + 361 + 28 + + + + 保存 + + + + + + 10 + 530 + 761 + 121 + + + + 命名规则 + + + + + 0 + 20 + 751 + 110 + + + + + + + 目录命名: + + + + + + + + + + 视频标题(媒体库中): + + + + + + + + + + 视频标题(本地文件): + + + + + + + + + + + + + 10 + 400 + 751 + 121 + + + + 代理设置 + + + + + 0 + 20 + 751 + 91 + + + + + + + 代理: + + + + + + + + + + 超时重试时间: + + + + + + + + + + 重试次数: + + + + + + + + + + + + + 10 + 10 + 751 + 381 + + + + 普通设置 + + + + + 0 + 250 + 751 + 121 + + + + + + + 失败输出目录: + + + + + + + + + + QFrame::NoFrame + + + 成功输出目录: + + + + + + + + + + 排除目录: + + + + + + + + + + 异常字符: + + + + + + + + + + + + 10 + 20 + 731 + 221 + + + + + + + 模式: + + + + + 190 + 10 + 181 + 19 + + + + 普通模式 + + + + + + 490 + 10 + 181 + 19 + + + + 整理模式 + + + + + + + + 软链接模式: + + + + + 190 + 10 + 181 + 19 + + + + + + + + + + 490 + 10 + 181 + 19 + + + + + + + + + + + + 调试模式: + + + + + 190 + 10 + 181 + 19 + + + + + + + + + + 490 + 10 + 181 + 19 + + + + + + + + + + + + 检测更新: + + + + + 190 + 10 + 181 + 19 + + + + + + + + + + 490 + 10 + 181 + 19 + + + + + + + + + + + + 媒体库: + + + + + 190 + 10 + 181 + 19 + + + + emby/jellyfin + + + + + + 420 + 10 + 181 + 19 + + + + plex + + + + + + 600 + 10 + 115 + 19 + + + + kodi + + + + + + + + 网站选择: + + + + + 190 + 10 + 291 + 19 + + + + All websites + + + + + + 490 + 10 + 115 + 19 + + + + Only javdb + + + + + + + + + + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'SimSun'; font-size:9pt; font-weight:400; font-style:normal;"> +</style></head><body style=" font-family:'SimSun'; font-size:10.5pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'SimSun';"> </span></p> <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:20pt; font-weight:600;">AVDC</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:14pt; font-weight:600;">目录</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="#_一、功能简介"><span style=" font-family:'宋体'; font-size:12pt; font-weight:600; text-decoration: underline; color:#0000ff;"> 一、功能简介</span></a></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="#_二、项目简介"><span style=" font-family:'宋体'; font-size:12pt; font-weight:600; text-decoration: underline; color:#0000ff;"> 二、项目简介</span></a></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="#_设置说明"><span style=" font-family:'宋体'; font-size:12pt; font-weight:600; text-decoration: underline; color:#0000ff;"> 三、设置说明</span></a></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="#_四、更新日志"><span style=" font-family:'宋体'; font-size:12pt; font-weight:600; text-decoration: underline; color:#0000ff;"> 四、更新日志</span></a></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Calibri'; font-size:10.5pt; font-weight:600;"> </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="#_一、功能简介"><span style=" font-family:'宋体'; font-size:12pt; font-weight:600; text-decoration: underline; color:#0000ff;"> 一、功能简介</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="#_二、项目简介"><span style=" font-family:'宋体'; font-size:12pt; font-weight:600; text-decoration: underline; color:#0000ff;"> 二、项目简介</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="#_设置说明"><span style=" font-family:'宋体'; font-size:12pt; font-weight:600; text-decoration: underline; color:#0000ff;"> 三、设置说明</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="#_四、更新日志"><span style=" font-family:'宋体'; font-size:12pt; font-weight:600; text-decoration: underline; color:#0000ff;"> 四、更新日志</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Calibri'; font-weight:600;"> </span></p> <h1 style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a name="_一、功能简介"></a><span style=" font-family:'宋体'; font-size:22pt; font-weight:600;">一</span><span style=" font-family:'宋体'; font-size:22pt; font-weight:600;">、功能简介</span></h1> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 日本电影</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">元数据抓取工具</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">/刮削器,配合本地影片管理软件</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">EMBY,KODI,PLEX</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">等管理本地影片,该软件起到分类与元数据抓取作用,利用元数据信息来分类,供本地影片</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">分类整理</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">使用。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 日本电影</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">元数据抓取工具</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">/刮削器,配合本地影片管理软件</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">EMBY,KODI,PLEX</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">等管理本地影片,该软件起到分类与元数据抓取作用,利用元数据信息来分类,供本地影片</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">分类整理</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">使用。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> </span></p> <h1 style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a name="_二、项目简介"></a><span style=" font-family:'宋体'; font-size:22pt; font-weight:600;">二</span><span style=" font-family:'宋体'; font-size:22pt; font-weight:600;">、项目简介</span></h1> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:12pt;"> G</span><span style=" font-family:'Calibri'; font-size:12pt;">ui made by </span><span style=" font-family:'Calibri'; font-size:12pt; font-weight:600; color:#ff0000;">moy</span><span style=" font-family:'宋体'; font-size:12pt; font-weight:600; color:#ff0000;">y</span><span style=" font-family:'Calibri'; font-size:12pt; font-weight:600; color:#ff0000;">996</span><span style=" font-family:'宋体'; font-size:12pt;">,C</span><span style=" font-family:'Calibri'; font-size:12pt;">ore made by </span><span style=" font-family:'Calibri'; font-size:12pt; font-weight:600; color:#ff0000;">yoshiko2</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Calibri'; font-size:12pt;"> tg</span><span style=" font-family:'宋体'; font-size:12pt;">官方电报群</span><span style=" font-family:'Calibri'; font-size:12pt;">:</span><a href="https://t.me/joinchat/J54y1g3-a7nxJ_-WS4-KFQ"><span style=" font-family:'Calibri'; font-size:12pt; text-decoration: underline; color:#0000ff;"> </span></a><a href="https://t.me/joinchat/J54y1g3-a7nxJ_-WS4-KFQ"><span style=" font-family:'Calibri'; font-size:12pt; font-weight:600; text-decoration: underline; color:#0000ff;">https://t.me/joinchat/J54y1g3-a7nxJ_-WS4-KFQ</span></a></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:12pt;"> 命令行版项目地址:</span><a href="https://github.com/yoshiko2/AV_Data_Capture"><span style=" font-family:'Calibri'; font-size:12pt; font-weight:600; text-decoration: underline; color:#0000ff;">https://github.com/yoshiko2/AV_Data_Capture</span></a></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:12pt;"> GUI版项目地址:</span><a href="https://github.com/moyy996/AVDC"><span style=" font-family:'Calibri'; font-size:12pt; font-weight:600; text-decoration: underline; color:#0000ff;">https://github.com/moyy996/AVDC</span></a></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:12pt;"> GUI版</span><span style=" font-family:'Calibri'; font-size:12pt;">EXE</span><span style=" font-family:'宋体'; font-size:12pt;">下载地址:</span><a href="https://github.com/moyy996/AVDC/releases"><span style=" font-family:'Calibri'; font-size:12pt; font-weight:600; text-decoration: underline; color:#0000ff;">https://github.com/moyy996/AVDC/releases</span></a></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Calibri'; font-size:12pt; font-weight:600; text-decoration: underline; color:#0000ff;"> </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:12pt;"> G</span><span style=" font-family:'Calibri'; font-size:12pt;">ui made by </span><span style=" font-family:'Calibri'; font-size:12pt; font-weight:600; color:#ff0000;">moy</span><span style=" font-family:'宋体'; font-size:12pt; font-weight:600; color:#ff0000;">y</span><span style=" font-family:'Calibri'; font-size:12pt; font-weight:600; color:#ff0000;">996</span><span style=" font-family:'宋体'; font-size:12pt;">,C</span><span style=" font-family:'Calibri'; font-size:12pt;">ore made by </span><span style=" font-family:'Calibri'; font-size:12pt; font-weight:600; color:#ff0000;">yoshiko2</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Calibri'; font-size:12pt;"> tg</span><span style=" font-family:'宋体'; font-size:12pt;">官方电报群</span><span style=" font-family:'Calibri'; font-size:12pt;">:</span><a href="https://t.me/joinchat/J54y1g3-a7nxJ_-WS4-KFQ"><span style=" font-family:'Calibri'; font-size:12pt; text-decoration: underline; color:#0000ff;"> </span></a><a href="https://t.me/joinchat/J54y1g3-a7nxJ_-WS4-KFQ"><span style=" font-family:'Calibri'; font-size:12pt; font-weight:600; text-decoration: underline; color:#0000ff;">https://t.me/joinchat/J54y1g3-a7nxJ_-WS4-KFQ</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:12pt;"> 命令行版项目地址:</span><a href="https://github.com/yoshiko2/AV_Data_Capture"><span style=" font-family:'Calibri'; font-size:12pt; font-weight:600; text-decoration: underline; color:#0000ff;">https://github.com/yoshiko2/AV_Data_Capture</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:12pt;"> GUI版项目地址:</span><a href="https://github.com/moyy996/AVDC"><span style=" font-family:'Calibri'; font-size:12pt; font-weight:600; text-decoration: underline; color:#0000ff;">https://github.com/moyy996/AVDC</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:12pt;"> GUI版</span><span style=" font-family:'Calibri'; font-size:12pt;">EXE</span><span style=" font-family:'宋体'; font-size:12pt;">下载地址:</span><a href="https://github.com/moyy996/AVDC/releases"><span style=" font-family:'Calibri'; font-size:12pt; font-weight:600; text-decoration: underline; color:#0000ff;">https://github.com/moyy996/AVDC/releases</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Calibri'; font-size:12pt; font-weight:600; text-decoration: underline; color:#0000ff;"> </span></p> <h1 style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a name="_设置说明"></a><span style=" font-family:'宋体'; font-size:22pt; font-weight:600;">三</span><span style=" font-family:'宋体'; font-size:22pt; font-weight:600;">、设置说明</span></h1> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 更详细的说明: </span><a href="https://github.com/moyy996/AVDC/blob/master/README.md"><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; text-decoration: underline; color:#24292e; background-color:#ffffff;">https://github.com/moyy996/AVDC/blob/master/README.md</span></a></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; text-decoration: underline; color:#24292e;"> </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 更详细的说明: </span><a href="https://github.com/moyy996/AVDC/blob/master/README.md"><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; text-decoration: underline; color:#24292e; background-color:#ffffff;">https://github.com/moyy996/AVDC/blob/master/README.md</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; text-decoration: underline; color:#24292e;"> </span></p> <h4 style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:12pt; font-weight:600;">1、普通模式/整理模式</span></h4> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; font-weight:600; color:#000000; background-color:#ffffff;"> </span><span style=" font-family:'宋体'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">普通模式</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">:通过番号刮削数据,包括元数据、封面图、缩略图、背景图。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; font-weight:600; color:#000000; background-color:#ffffff;"> </span><span style=" font-family:'宋体'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">整理模式</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">:仅根据女优把电影命名为番号并分类到女优名称的文件夹下</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e;"> </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; font-weight:600; color:#000000; background-color:#ffffff;"> </span><span style=" font-family:'宋体'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">普通模式</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">:通过番号刮削数据,包括元数据、封面图、缩略图、背景图。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; font-weight:600; color:#000000; background-color:#ffffff;"> </span><span style=" font-family:'宋体'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">整理模式</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">:仅根据女优把电影命名为番号并分类到女优名称的文件夹下</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e;"> </span></p> <h4 style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:12pt; font-weight:600;">2、软链接模式:使用此模式,要以</span><span style=" font-family:'宋体'; font-size:12pt; font-weight:600; text-decoration: underline; color:#ff0000;">管理员身份</span><span style=" font-family:'宋体'; font-size:12pt; font-weight:600;">运行。</span></h4> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 刮削完</span><span style=" font-family:'宋体'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">不移动视频</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">,而是在相应目录创建软链接(类似于快捷方式),</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">方便PT下载完既想刮削又想继续上传的仓鼠党同志</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e;"> </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 刮削完</span><span style=" font-family:'宋体'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">不移动视频</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">,而是在相应目录创建软链接(类似于快捷方式),</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">方便PT下载完既想刮削又想继续上传的仓鼠党同志</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e;"> </span></p> <h4 style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:12pt; font-weight:600;">3、调试模式</span></h4> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 输出番号的元数据,包括封面,导演,演员,简介等。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e;"> </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 输出番号的元数据,包括封面,导演,演员,简介等。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e;"> </span></p> <h4 style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:12pt; font-weight:600;">4、排除目录</span></h4> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 在多层目录刮削时排除所填目录。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e;"> </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 在多层目录刮削时排除所填目录。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e;"> </span></p> <h4 style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:12pt; font-weight:600;">5、异常字符</span></h4> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 在创建文件夹时,删除指定的字符。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 在创建文件夹时,删除指定的字符。</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'宋体'; font-size:9.5pt; color:#24292e;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:12pt; font-weight:600;">6、命名规则</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; font-weight:600; background-color:#ffffff;"> 1、</span><span style=" font-family:'宋体'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">目录命名</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">:存放视频数据的目录名,支持</span><span style=" font-family:'宋体'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">多层目录</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">,支持</span><span style=" font-family:'宋体'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">自定义符号</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">,例:[actor]/studio/number-【title】。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; font-weight:600; background-color:#ffffff;"> 2、</span><span style=" font-family:'宋体'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">视频标题</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">:nfo中的标题命名。例:</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">number-</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">[</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">title</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">]。可以自定义符号。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> </span><span style=" font-family:'宋体'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">3、</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">可选项为</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">title(片名)、actor(演员)、studio(制作商)、director(导演)、release(发售日)、year(发行年份)、number(番号)、runtime(时长)、</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">series(系列)、publisher(发行商)</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e;"> </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; font-weight:600; background-color:#ffffff;"> 1、</span><span style=" font-family:'宋体'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">目录命名</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">:存放视频数据的目录名,支持</span><span style=" font-family:'宋体'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">多层目录</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">,支持</span><span style=" font-family:'宋体'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">自定义符号</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">,例:[actor]/studio/number-【title】。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; font-weight:600; background-color:#ffffff;"> 2、</span><span style=" font-family:'宋体'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">视频标题</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">:nfo中的标题命名。例:</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">number-</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">[</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">title</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">]。可以自定义符号。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> </span><span style=" font-family:'宋体'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">3、</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">可选项为</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">title(片名)、actor(演员)、studio(制作商)、director(导演)、release(发售日)、year(发行年份)、number(番号)、runtime(时长)、</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">series(系列)、publisher(发行商)</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e;"> </span></p> <h4 style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:12pt; font-weight:600;">7、网站选择</span></h4> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">、</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">All website</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">: </span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">使用</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">avsox,javbus,fanza,javdb,fc2club</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">进行刮削。</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"><br /> 2</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">、</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">Only javdb</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">: </span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">仅使用</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">javdb</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">进行刮削。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e;"> </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">、</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">All website</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">: </span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">使用</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">avsox,javbus,fanza,javdb,fc2club</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">进行刮削。</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"><br /> 2</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">、</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">Only javdb</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">: </span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">仅使用</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">javdb</span><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">进行刮削。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:9.5pt; color:#24292e;"> </span></p> <h1 style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:22pt; font-weight:600;">四、更新日志</span></h1> <h1 style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'宋体'; font-size:22pt; font-weight:600;"><br /></h1> <h1 style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:18pt; font-weight:600; color:#ff0000;">3.7</span></h1> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:11pt; font-weight:600;">2020-02-15 19:30更新</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:11pt; font-weight:600; color:#24292e; background-color:#ffffff;">可选项变更:</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">title(片名)、actor(演员)、studio(制作商)、director(导演)、release(发售日)、year(发行年份)、number(番号)、runtime(时长)、</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">series(系列)、publisher(发行商)</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:11pt; font-weight:600; color:#24292e; background-color:#ffffff;">修复:</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、修改javbus的抓取逻辑,成功率提高。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 2、更新</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">进度条</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">改为刮削完之后。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 3、不再强制替换‘_’为‘-’。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 4、EMBY添加头像时,演员有别名,</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">中文符号</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">导致添加失败。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 5、修复字幕移动,与视频文件同名的</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">字幕</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">,刮削完后会随视频一起移动。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、修改javbus的抓取逻辑,成功率提高。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 2、更新</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">进度条</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">改为刮削完之后。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 3、不再强制替换‘_’为‘-’。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 4、EMBY添加头像时,演员有别名,</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">中文符号</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">导致添加失败。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 5、修复字幕移动,与视频文件同名的</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">字幕</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">,刮削完后会随视频一起移动。</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:11pt; font-weight:600; color:#24292e; background-color:#ffffff;">新增:</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">自定义本地文件名</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 2、获取</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">制作商,发行商</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 3、标签加入</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">系列、发行商、制作商</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">(太多标签EMBY只显示一部分)。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 4、小工具-</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">视频移动</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">,会移动与视频文件同名的</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">字幕</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">自定义本地文件名</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 2、获取</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">制作商,发行商</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 3、标签加入</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">系列、发行商、制作商</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">(太多标签EMBY只显示一部分)。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 4、小工具-</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">视频移动</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">,会移动与视频文件同名的</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">字幕</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> </span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:18pt; font-weight:600; color:#ff0000;">3.61</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:11pt; font-weight:600;">2020-02-12-15:40更新</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:11pt; font-weight:600; color:#24292e; background-color:#ffffff;">修复:</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">演员过多</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">导致文件夹创建失败。(只取</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">前三个</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">)<br /> 2、avsox有多个封面图时导致失败。<br /> 3、主页面-</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">封面开关</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">不管用。<br /> 4、</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">制作商、导演</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">抓取错误。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">演员过多</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">导致文件夹创建失败。(只取</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">前三个</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">)<br /> 2、avsox有多个封面图时导致失败。<br /> 3、主页面-</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">封面开关</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">不管用。<br /> 4、</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">制作商、导演</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">抓取错误。</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Segoe UI'; font-size:9.5pt; color:#24292e;"><br /></p> <h1 style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:18pt; font-weight:600; color:#ff0000;">3.6</span></h1> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:11pt; font-weight:600;">2020-02-11 晚23点更新</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:11pt; font-weight:600; color:#24292e; background-color:#ffffff;">新增:</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、修改</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">主界面UI</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">,显示</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">封面,番号、标题</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">等数据。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 2、刮削完的番号会添加到</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">主界面左侧</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 3、刮削</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">成功</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">的可以</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">点选</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">,查看刮削到的</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">数据、封面</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">等。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 4、</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">失败</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">的可以根据对应</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">序号</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">,去日志页查看具体</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">报错信息</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、修改</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">主界面UI</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">,显示</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">封面,番号、标题</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">等数据。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 2、刮削完的番号会添加到</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">主界面左侧</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 3、刮削</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">成功</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">的可以</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">点选</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">,查看刮削到的</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">数据、封面</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">等。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 4、</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">失败</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">的可以根据对应</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">序号</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">,去日志页查看具体</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">报错信息</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Segoe UI'; font-size:9.5pt; color:#24292e;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:18pt; font-weight:600; color:#ff0000;">3.5</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:11pt; font-weight:600;">2020-02-11 凌晨更新</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:11pt; font-weight:600; color:#24292e; background-color:#ffffff;">新增:</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、小工具-</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">裁剪封面图</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">: 裁剪</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">缩略图</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">为</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">封面图</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。,针对比例错误,分辨率低的情况。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 2、更改</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">命名规则</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">,支持</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">自定义符号</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">,例如:[actor]/number-【title】-(release)。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、小工具-</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">裁剪封面图</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">: 裁剪</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">缩略图</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">为</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">封面图</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。,针对比例错误,分辨率低的情况。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 2、更改</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">命名规则</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">,支持</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">自定义符号</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">,例如:[actor]/number-【title】-(release)。</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:11pt; font-weight:600; color:#24292e; background-color:#ffffff;">修复:</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、avsox封面存在下载失败情况,修改无码片首先到javbus查找。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 2、封面图下载失败后,将缩略图裁剪为封面图。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 3、Fc2、javdb无码封面图比例不对,会进行裁剪。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、avsox封面存在下载失败情况,修改无码片首先到javbus查找。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 2、封面图下载失败后,将缩略图裁剪为封面图。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 3、Fc2、javdb无码封面图比例不对,会进行裁剪。</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Segoe UI'; font-size:9.5pt; color:#24292e;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:18pt; font-weight:600; color:#ff0000;">3.41</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:11pt; font-weight:600;">2020-02-09-15点更新</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:11pt; font-weight:600; color:#24292e; background-color:#ffffff;">新增:</span></p> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、小工具-</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">单个</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">抓取的文件名</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">去掉-CD、-C</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。<br /> 2、tag,genre添加</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">系列</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。<br /> 3、Actor中上传成功的头像复制到</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">Success</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">目录。</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、小工具-</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">单个</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">抓取的文件名</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">去掉-CD、-C</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。<br /> 2、tag,genre添加</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">系列</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。<br /> 3、Actor中上传成功的头像复制到</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">Success</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">目录。</span></p> <h1 style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'宋体'; font-size:22pt; font-weight:600;"><br /></h1> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:18pt; font-weight:600; color:#ff0000;">3.4</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:11pt; font-weight:600;">2020-02-07-晚20点 更新</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:11pt; font-weight:600; color:#24292e; background-color:#ffffff;">新增:</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">批量添加</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">emby</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">演员头像</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 2、查看</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">可添加头像</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">的演员,</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">有头像、无头像、所有</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">演员。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">批量添加</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">emby</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">演员头像</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 2、查看</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">可添加头像</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">的演员,</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">有头像、无头像、所有</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">演员。</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Segoe UI'; font-size:9.5pt; color:#24292e;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:18pt; font-weight:600; color:#ff0000;">3.32</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:11pt; font-weight:600;">2020-02-06-19:10更新</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:11pt; font-weight:600; color:#24292e; background-color:#ffffff;">修复:</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、无法识别</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">111111-MMMM</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">这种番号。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、无法识别</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">111111-MMMM</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">这种番号。</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:11pt; font-weight:600; color:#24292e; background-color:#ffffff;">新增:</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、小工具-</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">单个抓取</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">,支持选择</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">刮削网站</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、小工具-</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">单个抓取</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">,支持选择</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#24292e; background-color:#ffffff;">刮削网站</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Segoe UI'; font-size:9.5pt; color:#24292e;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:18pt; font-weight:600; color:#ff0000;">3.31</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:11pt; font-weight:600;">2020-02-05-21:42更新</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:11pt; font-weight:600; color:#24292e; background-color:#ffffff;">修复:</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、仅JAVDB时,番号跟封面图不匹配的BUG。<br /> 2、优化报错信息的输出。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、仅JAVDB时,番号跟封面图不匹配的BUG。<br /> 2、优化报错信息的输出。</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Segoe UI'; font-size:9.5pt; color:#24292e;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:18pt; font-weight:600; color:#ff0000;">3.3</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:11pt; font-weight:600;">2020-02-05 凌晨更新</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:11pt; font-weight:600; color:#24292e; background-color:#ffffff;">修复:</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、分集刮削时文件命名出错。<br /> 2、javdb中演员有多曾用名时出错。<br /> 3、文件的命名都采用网站刮削到的番号命名</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、分集刮削时文件命名出错。<br /> 2、javdb中演员有多曾用名时出错。<br /> 3、文件的命名都采用网站刮削到的番号命名</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Segoe UI'; font-size:9.5pt; color:#24292e;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:18pt; font-weight:600; color:#ff0000;">3.22</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:11pt; font-weight:600;">2020-02-04 更新</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:11pt; font-weight:600;">2020-02-04 更新</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:11pt; font-weight:600; color:#24292e; background-color:#ffffff;">修复:</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、javdb,avsox抓取到但是显示抓取失败。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、javdb,avsox抓取到但是显示抓取失败。</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:11pt; font-weight:600; color:#24292e; background-color:#ffffff;">新增:</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、文件夹命名支持</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">多级目录</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">,例:actor/studio/number-release。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e;"> </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、文件夹命名支持</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">多级目录</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">,例:actor/studio/number-release。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e;"> </span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:18pt; font-weight:600; color:#ff0000;">3.21</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:11pt; font-weight:600;">2020-02-03-20:24更新</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:11pt; font-weight:600; color:#24292e; background-color:#ffffff;">新增:</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">刮削网站</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">可选,</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">全部网站</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">(avsox,javbus,fanza,javdb,fc2club),或者</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">仅JAVDB</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。<br /> 2、改进javdb刮削逻辑。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e;"> </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">刮削网站</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">可选,</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">全部网站</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">(avsox,javbus,fanza,javdb,fc2club),或者</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">仅JAVDB</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。<br /> 2、改进javdb刮削逻辑。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e;"> </span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:18pt; font-weight:600; color:#ff0000;">3.2</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:11pt; font-weight:600;">2020-02-03 更新</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:11pt; font-weight:600; color:#24292e; background-color:#ffffff;">修复:</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、找不到影片信息时依然创建目录、下载空图片的问题。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 2、界面微调。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 3、修复</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">MIDE139</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">抓取不到的情况。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、找不到影片信息时依然创建目录、下载空图片的问题。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 2、界面微调。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 3、修复</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">MIDE139</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">抓取不到的情况。</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:11pt; font-weight:600; color:#24292e; background-color:#ffffff;">新增:</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">进度条</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">显示。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 2、一次刮削任务未结束,</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">开始按钮</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">不可用。结束后才可用。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e;"> </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">进度条</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">显示。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 2、一次刮削任务未结束,</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">开始按钮</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">不可用。结束后才可用。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e;"> </span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:18pt; font-weight:600; color:#ff0000;">3.1</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:11pt; font-weight:600;">2020-02-02更新</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:11pt; font-weight:600; color:#24292e; background-color:#ffffff;">修复:</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、修复文件夹自定义命名规则时,使用studio、release等刮削失败的bug。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 2、去掉背景透明。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 3、去掉javdb爬虫工具。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、修复文件夹自定义命名规则时,使用studio、release等刮削失败的bug。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 2、去掉背景透明。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 3、去掉javdb爬虫工具。</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:11pt; font-weight:600; color:#24292e; background-color:#ffffff;">新增: </span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、工具新增</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">单个文件刮削</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。针对个别刮削失败的情况,使用文件名做番号。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 2、</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">更改</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">自定义文件夹命名、媒体库标题</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">命名规则</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Calibri'; font-size:10.5pt;"> </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、工具新增</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">单个文件刮削</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。针对个别刮削失败的情况,使用文件名做番号。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 2、</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">更改</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">自定义文件夹命名、媒体库标题</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">命名规则</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Calibri';"> </span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="https://github.com/moyy996/AVDC/releases/tag/3.0"><span style=" font-family:'Calibri'; font-size:18pt; font-weight:600; text-decoration: underline; color:#ff0000;">3.0-GUI</span></a></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'宋体'; font-size:11pt; font-weight:600;">2020-01-31 更新</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、第一个GUI版本。<br /> 2、两个工具-javdb爬虫、视频移动。<br /> 3、可视化编辑config.ini。<br /> 4、多层目录刮削,增加</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">排除目录</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">选项。</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> </span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> </span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Calibri'; font-size:10.5pt;"> </span></p> -<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Calibri'; font-size:10.5pt;"> </span></p></body></html> - - - - - - - - 10 - 20 - 761 - 681 - - - - - - - - - 0 - 0 - 221 - 721 - - - - - - 10 - 380 - 201 - 321 - - - - 图标 - - - - - - 10 - 10 - 201 - 360 - - - - - - - - - X +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> 1、第一个GUI版本。<br /> 2、两个工具-javdb爬虫、视频移动。<br /> 3、可视化编辑config.ini。<br /> 4、多层目录刮削,增加</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; font-weight:600; color:#ff0000; background-color:#ffffff;">排除目录</span><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;">选项。</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9.5pt; color:#24292e; background-color:#ffffff;"> </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Calibri';"> </span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Calibri';"> </span></p></body></html> + + + + - - - - - - + - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - 主界面 - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - 日志 - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - 工具 - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - 设置 - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - 关于 - - - - - - + + + + diff --git a/AVDC_Main.py b/AVDC_Main.py index 901339b3e..acaa91322 100644 --- a/AVDC_Main.py +++ b/AVDC_Main.py @@ -34,7 +34,7 @@ def __init__(self, parent=None): self.Ui.setupUi(self) # 初始化Ui self.Init_Ui() # 初始化需要的变量 - self.version = '3.71' + self.version = '3.72' self.m_drag = False self.m_DragPosition = 0 self.item_succ = self.Ui.treeWidget_number.topLevelItem(0) @@ -51,7 +51,7 @@ def Init_Ui(self): self.Ui.progressBar_avdc.setValue(0) # 进度条清0 self.progressBarValue.connect(self.set_processbar) self.Ui.progressBar_avdc.setTextVisible(False) # 不显示进度条文字 - self.setWindowFlag(QtCore.Qt.FramelessWindowHint) # 隐藏边框 + # self.setWindowFlag(QtCore.Qt.FramelessWindowHint) # 隐藏边框 # self.setWindowOpacity(0.9) # 设置窗口透明度 self.setAttribute(QtCore.Qt.WA_TranslucentBackground) # 设置窗口背景透明 self.Ui.treeWidget_number.expandAll() @@ -71,7 +71,7 @@ def Init_Ui(self): border-radius:15px; padding:2px 4px; } - + ''') self.Ui.centralwidget.setStyleSheet( ''' @@ -81,7 +81,7 @@ def Init_Ui(self): width:300px; border-radius:20px; padding:2px 4px; - } + } QTextBrowser{ border:1px solid gray; background:white; @@ -95,21 +95,21 @@ def Init_Ui(self): width:300px; border-radius:10px; padding:2px 4px; - } + } QTextBrowser#textBrowser_about{ background:white; border:1px solid white; width:300px; border-radius:10px; padding:2px 4px; - } + } QTextBrowser#textBrowser_warning{ background:gray; border:1px solid gray; width:300px; border-radius:10px; padding:2px 4px; - } + } QPushButton#pushButton_start_cap,#pushButton_move_mp4,#pushButton_select_file,#pushButton_select_fanart{ font-size:20px; background:#F0F8FF; @@ -995,18 +995,21 @@ def pasteFileToFolder(self, filepath, path, naming_rule, number, config): if os.path.exists(path_old + '/' + filename + '.srt'): # 字幕移动 os.rename(path_old + '/' + filename + '.srt', path + '/' + naming_rule + '.srt') self.add_text_main('[+]Sub moved! ' + naming_rule + '.srt') - return + return True elif os.path.exists(path_old + '/' + filename + '.ass'): # 字幕移动 os.rename(path_old + '/' + filename + '.ass', path + '/' + naming_rule + '.ass') self.add_text_main('[+]Sub moved! ' + naming_rule + '.ass') - return + return True elif os.path.exists(path_old + '/' + filename + '.sub'): # 字幕移动 os.rename(path_old + '/' + filename + '.sub', path + '/' + naming_rule + '.sub') self.add_text_main('[+]Sub moved! ' + naming_rule + '.sub') - return + return True + except FileExistsError as error_info: + self.add_text_main('[-]File exists in target folder @pasteFileToFolder: ' + str(error_info)) + return False except Exception as error_info: self.add_text_main('[-]Error in pasteFileToFolder: ' + str(error_info)) - + return False # ========================================================================获取分集序号 def get_part(self, filepath, failed_folder): try: @@ -1174,10 +1177,12 @@ def Core_Main(self, file_path, number_th, mode, count): self.cutImage(option, json_data['imagecut'], path, naming_rule) # 裁剪图 self.copyRenameJpgToBackdrop(option, path, naming_rule) self.PrintFiles(option, path, naming_rule, cn_sub, json_data, filepath, failed_folder) # 打印文件 - self.pasteFileToFolder(filepath, path, naming_rule, number, Config) # 移动文件 + ret = self.pasteFileToFolder(filepath, path, naming_rule, number, Config) # 移动文件 # =======================================================================整理模式 elif program_mode == '2': - self.pasteFileToFolder(filepath, path, naming_rule, number, Config) # 移动文件 + ret = self.pasteFileToFolder(filepath, path, naming_rule, number, Config) # 移动文件 + if not ret: + self.moveFailedFolder(filepath,failed_folder) # =======================================================================json添加封面项 fanart_path = '' poster_path = '' diff --git a/AV_Data_Capture.py b/AV_Data_Capture.py index 67d6ec2bc..d479656c8 100755 --- a/AV_Data_Capture.py +++ b/AV_Data_Capture.py @@ -29,35 +29,50 @@ def movie_lists(escape_folder): total.append(path) return total - +num_cache = {} def getNumber(filepath): - filepath = filepath.replace('-C.', '.').replace('-c.', '.') - filepath = os.path.splitext(filepath.split('/')[-1])[0] - # filepath = filepath.replace("_", "-") + if filepath in num_cache.keys(): + return num_cache[filepath] + filename = filepath.replace('-C.', '.').replace('-c.', '.') + filename = os.path.splitext(filename.split('/')[-1])[0] part = '' - if re.search('-CD\d+', filepath): - part = re.findall('-CD\d+', filepath)[0] - if re.search('-cd\d+', filepath): - part = re.findall('-cd\d+', filepath)[0] - filepath.strip('22-sht.me').strip('-HD').strip('-hd') - filepath = filepath.replace(part, '') - filename = str(re.sub("-\d{4}-\d{1,2}-\d{1,2}", "", filepath)) # 去除文件名中时间 + if re.search('-CD\d+', filename): + part = re.findall('-CD\d+', filename)[0] + if re.search('-cd\d+', filename): + part = re.findall('-cd\d+', filename)[0] + + filename = filename.replace(part, '') + filename = filename.lower() + filename = filename.replace('22-sht.me','') + filename = filename.replace('-10mu','') + filename = filename.replace('-1pon','') + filename = filename.replace('-paco','') + filename = filename.replace('-hd','') + filename = filename.replace('_hd','') + filename = filename.replace('-720p','') + filename = filename.replace('_720p','') + filename = filename.replace('-1080p','') + filename = filename.replace('_1080p','') + filename = str(re.sub("-\d{4}-\d{1,2}-\d{1,2}", "", filename)) # 去除文件名中时间 filename = str(re.sub("\d{4}-\d{1,2}-\d{1,2}-", "", filename)) # 去除文件名中时间 if '-' in filename or '_' in filename: # 普通提取番号 主要处理包含减号-和_的番号 if 'FC2' or 'fc2' in filename: filename = filename.replace('-PPV', '').replace('PPV-', '').replace('-ppv', '').replace('ppv-', '') - if re.search('\w+-\d+', filename): # 提取类似mkbd-120番号 - file_number = re.search('\w+-\d+', filename).group() - elif re.search('\w+-\w\d+', filename): # 提取类似mkbd-s120番号 - file_number = re.search('\w+-\w\d+', filename).group() - elif re.search('\d+-\w+', filename): # 提取类似 111111-MMMM 番号 - file_number = re.search('\d+-\w+', filename).group() + if re.search('[a-zA-Z]+-\d+', filename): # 提取类似mkbd-120番号 + file_number = re.search('[a-zA-Z]+-\d+', filename).group() + elif re.search('[a-zA-Z]+-[a-zA-Z]\d+', filename): # 提取类似mkbd-s120番号 + file_number = re.search('[a-zA-Z]+-[a-zA-Z]\d+', filename).group() elif re.search('\d+-\d+', filename): # 提取类似 111111-000 番号 file_number = re.search('\d+-\d+', filename).group() elif re.search('\d+_\d+', filename): # 提取类似 111111_000 番号 file_number = re.search('\d+_\d+', filename).group() + elif re.search('\d+-[a-zA-Z]+', filename): # 提取类似 111111-MMMM 番号 + file_number = re.search('\d+-[a-zA-Z]+', filename).group() + elif 'heyzo' in filename and re.search('\d{4}', filename): # 提取heyzo番号: + file_number = 'heyzo-'+ re.search('\d{4}', filename).group() else: file_number = filename + num_cache[filepath] = file_number return file_number else: # 提取不含减号-的番号,FANZA CID 保留ssni00644,将MIDE139改成MIDE-139 try: @@ -66,6 +81,9 @@ def getNumber(filepath): find_char = re.findall(r'\D+', file_number)[0] if len(find_num) <= 4 and len(find_char) > 1: file_number = find_char + '-' + find_num + num_cache[filepath] = file_number return file_number except: - return os.path.splitext(filepath.split('/')[-1])[0] \ No newline at end of file + file_number = os.path.splitext(filepath.split('/')[-1])[0] + num_cache[filepath] = file_number + return file_number \ No newline at end of file diff --git a/core.py b/core.py index 9cc8322db..8bb598f85 100755 --- a/core.py +++ b/core.py @@ -1,169 +1,174 @@ -# -*- coding: utf-8 -*- - -import re -import shutil -import json -from ADC_function import * -import fc2fans_club -import siro -import avsox -import javbus -import javdb -import fanza -import javlibrary - -# =====================本地文件处理=========================== - -def escapePath(path, Config): # Remove escape literals - escapeLiterals = Config['escape']['literals'] - backslash = '\\' - for literal in escapeLiterals: - path = path.replace(backslash + literal, '') - return path - - -def getDataFromJSON(file_number, config, mode): # 从JSON返回元数据 - # ================================================网站规则添加开始================================================ - json_data = {} - if mode == 1: # 从全部网站刮削 - # =======================================================================无码抓取:111111-111,n1111,HEYZO-1111 - if re.match('^\d{4,}', file_number) or re.match('n\d{4}', file_number) or 'HEYZO' in file_number.upper(): - json_data = json.loads(javbus.main_uncensored(file_number)) - if getDataState(json_data) == 0: - json_data = json.loads(javdb.main(file_number)) - if getDataState(json_data) == 0: - json_data = json.loads(avsox.main(file_number)) - # =======================================================================259LUXU-1111 - elif re.match('\d+\D+', file_number): - json_data = json.loads(siro.main(file_number)) - if getDataState(json_data) == 0: - json_data = json.loads(javbus.main(file_number)) - if getDataState(json_data) == 0: - json_data = json.loads(javdb.main(file_number)) - # =======================================================================FC2-111111 - elif 'FC2' in file_number.upper(): - json_data = json.loads(fc2fans_club.main( - file_number.replace('fc2-', '').replace('fc2_', '').replace('FC2-', '').replace('fc2_', ''))) - if getDataState(json_data) == 0: - json_data = json.loads(javdb.main(file_number)) - # =======================================================================SIRO-111 - elif 'SIRO' in file_number.upper(): - json_data = json.loads(siro.main(file_number)) - if getDataState(json_data) == 0: - json_data = json.loads(javdb.main(file_number)) - # =======================================================================ssni00321 - elif re.match('\D{2,}00\d{3,}', file_number) and '-' not in file_number and '_' not in file_number: - json_data = json.loads(fanza.main(file_number)) - # =======================================================================MIDE-139 - else: - json_data = json.loads(javbus.main(file_number)) - if getDataState(json_data) == 0: - json_data = json.loads(javlibrary.main(file_number, config['javlibrary_url']['url'])) - if getDataState(json_data) == 0: - json_data = json.loads(javdb.main(file_number)) - if getDataState(json_data) == 0: - json_data = json.loads(avsox.main(file_number)) - elif mode != 6 and re.match('\D{2,}00\d{3,}', file_number): - json_data = { - 'title': '', - 'actor': '', - 'website': '', - } - elif mode == 2: # 仅从javdb - json_data = json.loads(javdb.main(file_number)) - elif mode == 3: # 仅从javbus - if re.match('^\d{5,}', file_number) or re.match('n\d{4}', file_number) or 'HEYZO' in file_number.upper(): - json_data = json.loads(javbus.main_uncensored(file_number)) - else: - json_data = json.loads(javbus.main(file_number)) - elif mode == 4: # 仅从avsox - json_data = json.loads(avsox.main(file_number)) - elif mode == 5: # 仅从fc2club - json_data = json.loads(fc2fans_club.main(file_number)) - elif mode == 6: # 仅从fanza - json_data = json.loads(fanza.main(file_number)) - elif mode == 7: # 仅从siro - json_data = json.loads(siro.main(file_number)) - elif mode == 8: # 仅从javlibrary - json_data = json.loads(javlibrary.main(file_number, config['javlibrary_url']['url'])) - - # ================================================网站规则添加结束================================================ - # print(json_data) - # ======================================超时或未找到 - if json_data['website'] == 'timeout': - return json_data - elif json_data['title'] == '': - return json_data - # ======================================处理得到的信息 - title = json_data['title'] - number = json_data['number'] - actor_list = str(json_data['actor']).strip("[ ]").replace("'", '').split(',') # 字符串转列表 - release = json_data['release'] - try: - cover_small = json_data['cover_small'] - except: - cover_small = '' - tag = str(json_data['tag']).strip("[ ]").replace("'", '').replace(" ", '').split(',') # 字符串转列表 @ - actor = str(actor_list).strip("[ ]").replace("'", '').replace(" ", '') - if actor == '': - actor = 'Unknown' - - # ====================处理异常字符====================== #\/:*?"<>| - title = title.replace('\\', '') - title = title.replace('/', '') - title = title.replace(':', '') - title = title.replace('*', '') - title = title.replace('?', '') - title = title.replace('"', '') - title = title.replace('<', '') - title = title.replace('>', '') - title = title.replace('|', '') - title = title.replace(' ', '') - title = title.replace('【', '') - title = title.replace('】', '') - release = release.replace('/', '-') - tmpArr = cover_small.split(',') - if len(tmpArr) > 0: - cover_small = tmpArr[0].strip('\"').strip('\'') - for key, value in json_data.items(): - if key == 'title' or key == 'studio' or key == 'director' or key == 'series' or key == 'publisher': - json_data[key] = str(value).replace('/', '') - # ====================处理异常字符 END================== #\/:*?"<>| - - naming_media = config['Name_Rule']['naming_media'] - naming_file = config['Name_Rule']['naming_file'] - folder_name = config['Name_Rule']['folder_name'] - - # 返回处理后的json_data - json_data['title'] = title - json_data['number'] = number - json_data['actor'] = actor - json_data['release'] = release - json_data['cover_small'] = cover_small - json_data['tag'] = tag - json_data['naming_media'] = naming_media - json_data['naming_file'] = naming_file - json_data['folder_name'] = folder_name - return json_data - - -def get_info(json_data): # 返回json里的数据 - for key, value in json_data.items(): - if value == '': - value = 'unknown' - title = json_data['title'] - studio = json_data['studio'] - publisher = json_data['publisher'] - year = json_data['year'] - outline = json_data['outline'] - runtime = json_data['runtime'] - director = json_data['director'] - actor_photo = json_data['actor_photo'] - actor = json_data['actor'] - release = json_data['release'] - tag = json_data['tag'] - number = json_data['number'] - cover = json_data['cover'] - website = json_data['website'] - series = json_data['series'] - return title, studio, publisher, year, outline, runtime, director, actor_photo, actor, release, tag, number, cover, website, series +# -*- coding: utf-8 -*- + +import re +import shutil +import json +from ADC_function import * +import fc2fans_club +import siro +import avsox +import javbus +import javdb +import fanza +import javlibrary +import mgstage + + +# =====================本地文件处理=========================== + +def escapePath(path, Config): # Remove escape literals + escapeLiterals = Config['escape']['literals'] + backslash = '\\' + for literal in escapeLiterals: + path = path.replace(backslash + literal, '') + return path + + +def getDataFromJSON(file_number, config, mode): # 从JSON返回元数据 + # ================================================网站规则添加开始================================================ + json_data = {} + if mode == 1: # 从全部网站刮削 + # =======================================================================无码抓取:111111-111,n1111,HEYZO-1111 + if re.match('^\d{4,}', file_number) or re.match('n\d{4}', file_number) or 'HEYZO' in file_number.upper(): + json_data = json.loads(javbus.main_uncensored(file_number)) + if getDataState(json_data) == 0: + json_data = json.loads(javdb.main(file_number)) + if getDataState(json_data) == 0: + json_data = json.loads(avsox.main(file_number)) + # =======================================================================259LUXU-1111 + elif re.match('\d+\D+', file_number): + json_data = json.loads(siro.main(file_number)) + if getDataState(json_data) == 0: + json_data = json.loads(javbus.main(file_number)) + if getDataState(json_data) == 0: + json_data = json.loads(javdb.main(file_number)) + # =======================================================================FC2-111111 + elif 'FC2' in file_number.upper(): + json_data = json.loads(fc2fans_club.main( + file_number.replace('fc2-', '').replace('fc2_', '').replace('FC2-', '').replace('fc2_', ''))) + if getDataState(json_data) == 0: + json_data = json.loads(javdb.main(file_number)) + # =======================================================================SIRO-111 + elif 'SIRO' in file_number.upper(): + json_data = json.loads(siro.main(file_number)) + if getDataState(json_data) == 0: + json_data = json.loads(javdb.main(file_number)) + # =======================================================================ssni00321 + elif re.match('\D{2,}00\d{3,}', file_number) and '-' not in file_number and '_' not in file_number: + json_data = json.loads(fanza.main(file_number)) + # =======================================================================MIDE-139 + else: + json_data = json.loads(javbus.main(file_number)) + if getDataState(json_data) == 0: + json_data = json.loads(javlibrary.main(file_number, config['javlibrary_url']['url'])) + if getDataState(json_data) == 0: + json_data = json.loads(javdb.main(file_number)) + if getDataState(json_data) == 0: + json_data = json.loads(avsox.main(file_number)) + if getDataState(json_data) == 0: + json_data = json.loads(mgstage.main(file_number)) + + elif mode != 6 and re.match('\D{2,}00\d{3,}', file_number): + json_data = { + 'title': '', + 'actor': '', + 'website': '', + } + elif mode == 2: # 仅从javdb + json_data = json.loads(javdb.main(file_number)) + elif mode == 3: # 仅从javbus + if re.match('^\d{5,}', file_number) or re.match('n\d{4}', file_number) or 'HEYZO' in file_number.upper(): + json_data = json.loads(javbus.main_uncensored(file_number)) + else: + json_data = json.loads(javbus.main(file_number)) + elif mode == 4: # 仅从avsox + json_data = json.loads(avsox.main(file_number)) + elif mode == 5: # 仅从fc2club + json_data = json.loads(fc2fans_club.main(file_number)) + elif mode == 6: # 仅从fanza + json_data = json.loads(fanza.main(file_number)) + elif mode == 7: # 仅从siro + json_data = json.loads(siro.main(file_number)) + elif mode == 8: # 仅从javlibrary + json_data = json.loads(javlibrary.main(file_number, config['javlibrary_url']['url'])) + + # ================================================网站规则添加结束================================================ + # print(json_data) + # ======================================超时或未找到 + if json_data['website'] == 'timeout': + return json_data + elif json_data['title'] == '': + return json_data + # ======================================处理得到的信息 + title = json_data['title'] + number = json_data['number'] + actor_list = str(json_data['actor']).strip("[ ]").replace("'", '').split(',') # 字符串转列表 + release = json_data['release'] + try: + cover_small = json_data['cover_small'] + except: + cover_small = '' + tag = str(json_data['tag']).strip("[ ]").replace("'", '').replace(" ", '').split(',') # 字符串转列表 @ + actor = str(actor_list).strip("[ ]").replace("'", '').replace(" ", '') + if actor == '': + actor = 'Unknown' + + # ====================处理异常字符====================== #\/:*?"<>| + title = title.replace('\\', '') + title = title.replace('/', '') + title = title.replace(':', '') + title = title.replace('*', '') + title = title.replace('?', '') + title = title.replace('"', '') + title = title.replace('<', '') + title = title.replace('>', '') + title = title.replace('|', '') + title = title.replace(' ', '') + title = title.replace('【', '') + title = title.replace('】', '') + release = release.replace('/', '-') + tmpArr = cover_small.split(',') + if len(tmpArr) > 0: + cover_small = tmpArr[0].strip('\"').strip('\'') + for key, value in json_data.items(): + if key == 'title' or key == 'studio' or key == 'director' or key == 'series' or key == 'publisher': + json_data[key] = str(value).replace('/', '') + # ====================处理异常字符 END================== #\/:*?"<>| + + naming_media = config['Name_Rule']['naming_media'] + naming_file = config['Name_Rule']['naming_file'] + folder_name = config['Name_Rule']['folder_name'] + + # 返回处理后的json_data + json_data['title'] = title + json_data['number'] = number + json_data['actor'] = actor + json_data['release'] = release + json_data['cover_small'] = cover_small + json_data['tag'] = tag + json_data['naming_media'] = naming_media + json_data['naming_file'] = naming_file + json_data['folder_name'] = folder_name + return json_data + + +def get_info(json_data): # 返回json里的数据 + for key, value in json_data.items(): + if value == '': + value = 'unknown' + title = json_data['title'] + studio = json_data['studio'] + publisher = json_data['publisher'] + year = json_data['year'] + outline = json_data['outline'] + runtime = json_data['runtime'] + director = json_data['director'] + actor_photo = json_data['actor_photo'] + actor = json_data['actor'] + release = json_data['release'] + tag = json_data['tag'] + number = json_data['number'] + cover = json_data['cover'] + website = json_data['website'] + series = json_data['series'] + return title, studio, publisher, year, outline, runtime, director, actor_photo, actor, release, tag, number, cover, website, series diff --git a/fanza.py b/fanza.py index 989b21726..ce3066d82 100644 --- a/fanza.py +++ b/fanza.py @@ -101,9 +101,20 @@ def getTag(a): return result1.replace("', '", ",") -def getCover(htmlcode, number): - html = etree.fromstring(htmlcode, etree.HTMLParser()) - result = html.xpath('//*[@id="' + number + '"]/@href')[0] +def getCover(text, number): + html = etree.fromstring(text, etree.HTMLParser()) + cover_number = number + if "_" in cover_number: + # fanza modify _ to \u0005f for image id + cover_number = cover_number.replace("_", r"\u005f") + try: + result = html.xpath('//*[@id="' + cover_number + '"]/@href')[0] + except: + # (TODO) handle more edge case + # print(html) + # raise exception here, same behavior as before + # people's major requirement is fetching the picture + raise ValueError("can not find image") return result @@ -116,37 +127,72 @@ def getDirector(a): return result1 -def getOutline(htmlcode): - html = etree.fromstring(htmlcode, etree.HTMLParser()) - result = str(html.xpath("//div[@class='mg-b20 lh4']/text()")[0]).replace('\\n', '').replace('\n', '') +def getOutline(text): + html = etree.fromstring(text, etree.HTMLParser()) + try: + result = str(html.xpath("//div[@class='mg-b20 lh4']/text()")[0]).replace( + "\n", "" + ) + if result == "": + result = str(html.xpath("//div[@class='mg-b20 lh4']//p/text()")[0]).replace( + "\n", "" + ) + except: + # (TODO) handle more edge case + # print(html) + return "" return result def main(number): - htmlcode = get_html('https://www.dmm.co.jp/digital/videoa/-/detail/=/cid=' + number) - url = 'https://www.dmm.co.jp/digital/videoa/-/detail/=/cid=' + number - if '404 Not Found' in htmlcode: - htmlcode = get_html('https://www.dmm.co.jp/mono/dvd/-/detail/=/cid=' + number) - url = 'https://www.dmm.co.jp/mono/dvd/-/detail/=/cid=' + number + # fanza allow letter + number + underscore, normalize the input here + # @note: I only find the usage of underscore as h_test123456789 + fanza_search_number = number + # AV_Data_Capture.py.getNumber() over format the input, restore the h_ prefix + if fanza_search_number.startswith("h-"): + fanza_search_number = fanza_search_number.replace("h-", "h_") + + fanza_search_number = re.sub(r"[^0-9a-zA-Z_]", "", fanza_search_number).lower() + + fanza_urls = [ + "https://www.dmm.co.jp/digital/videoa/-/detail/=/cid=", + "https://www.dmm.co.jp/mono/dvd/-/detail/=/cid=", + "https://www.dmm.co.jp/digital/anime/-/detail/=/cid=", + "https://www.dmm.co.jp/mono/anime/-/detail/=/cid=", + ] + chosen_url = "" + htmlcode = '' + for url in fanza_urls: + chosen_url = url + fanza_search_number + htmlcode = get_html(chosen_url) + if "404 Not Found" not in htmlcode: + break + if "404 Not Found" in htmlcode: + return json.dumps({"title": "", }) try: - actor = getActor(htmlcode) + # for some old page, the input number does not match the page + # for example, the url will be cid=test012 + # but the hinban on the page is test00012 + # so get the hinban first, and then pass it to following functions + actor = getActor(htmlcode) if "anime" not in chosen_url else "" + number = getNum(htmlcode) dic = { 'title': getTitle(htmlcode).strip(getActor(htmlcode)), 'studio': getStudio(htmlcode), 'publisher': getPublisher(htmlcode), 'outline': getOutline(htmlcode), 'runtime': getRuntime(htmlcode), - 'director': getDirector(htmlcode), + 'director': getDirector(htmlcode) if "anime" not in chosen_url else "", 'actor': actor, 'release': getRelease(htmlcode), - 'number': getNum(htmlcode), + 'number':number, 'cover': getCover(htmlcode, number), 'imagecut': 1, 'tag': getTag(htmlcode), 'series': getSeries(htmlcode), 'year': getYear(getRelease(htmlcode)), # str(re.search('\d{4}',getRelease(a)).group()), 'actor_photo': getActorPhoto(actor), - 'website': url, + "website": chosen_url, 'source': 'fanza.py', } except: diff --git a/fc2fans_club.py b/fc2fans_club.py index c30e19606..d132939b8 100755 --- a/fc2fans_club.py +++ b/fc2fans_club.py @@ -84,14 +84,79 @@ def getYear(release): return '' +def getTitle_fc2com(htmlcode): # 获取厂商 + html = etree.fromstring(htmlcode, etree.HTMLParser()) + result = html.xpath('//*[@id="top"]/div[1]/section[1]/div/section/div[2]/h3/text()')[0] + return result + + +def getActor_fc2com(htmlcode): + try: + html = etree.fromstring(htmlcode, etree.HTMLParser()) + result = html.xpath('//*[@id="top"]/div[1]/section[1]/div/section/div[2]/ul/li[3]/a/text()')[0] + return result + except: + return '' + + +def getStudio_fc2com(htmlcode): # 获取厂商 + try: + html = etree.fromstring(htmlcode, etree.HTMLParser()) + result = str(html.xpath('//*[@id="top"]/div[1]/section[1]/div/section/div[2]/ul/li[3]/a/text()')).strip(" ['']") + return result + except: + return '' + + +def getNum_fc2com(htmlcode): # 获取番号 + html = etree.fromstring(htmlcode, etree.HTMLParser()) + result = str(html.xpath('/html/body/div[5]/div[1]/div[2]/p[1]/span[2]/text()')).strip(" ['']") + return result + + +def getRelease_fc2com(htmlcode2): # + html = etree.fromstring(htmlcode2, etree.HTMLParser()) + result = str(html.xpath('//*[@id="container"]/div[1]/div/article/section[1]/div/div[2]/dl/dd[4]/text()')).strip( + " ['']") + return result + + +def getCover_fc2com(htmlcode2): # 获取厂商 # + html = etree.fromstring(htmlcode2, etree.HTMLParser()) + result = str(html.xpath('//*[@id="top"]/div[1]/section[1]/div/section/div[1]/span/img/@src')).strip(" ['']") + return 'http:' + result + + +def getOutline_fc2com(htmlcode2): # 获取番号 # + html = etree.fromstring(htmlcode2, etree.HTMLParser()) + result = str(html.xpath('/html/body/div/text()')).strip(" ['']").replace("\\n", '', 10000).replace("'", '', + 10000).replace( + ', ,', '').strip(' ').replace('。,', ',') + return result + + +def getTag_fc2com(number): # 获取番号 + htmlcode = str(bytes(ADC_function.get_html('http://adult.contents.fc2.com/api/v4/article/' + number + '/tag?'), + 'utf-8').decode('unicode-escape')) + result = re.findall('"tag":"(.*?)"', htmlcode) + return result + + +def getYear_fc2com(release): + try: + result = re.search('\d{4}', release).group() + return result + except: + return '' + + def main(number): - htmlcode2 = ADC_function.get_html( - 'http://adult.contents.fc2.com/article_search.php?id=' + number + '&utm_source=aff_php&utm_medium=source_code&utm_campaign=from_aff_php') - htmlcode = ADC_function.get_html('https://fc2club.com//html/FC2-' + number + '.html') - actor = getActor(htmlcode) - if len(actor) == 0: - actor = 'FC2系列' try: + htmlcode2 = ADC_function.get_html('https://adult.contents.fc2.com/article/' + number + '/') + htmlcode = ADC_function.get_html('https://fc2club.com//html/FC2-' + number + '.html') + actor = getActor(htmlcode) + if len(actor) == 0: + actor = 'FC2系列' dic = { 'title': getTitle(htmlcode).replace(' ', '-'), 'studio': getStudio(htmlcode), @@ -111,17 +176,35 @@ def main(number): 'website': 'https://fc2club.com//html/FC2-' + number + '.html', 'source': 'fc2fans_club.py', } - except: - if htmlcode2 == 'ProxyError': - dic = { - 'title': '', - 'website': 'timeout', - } - else: + if dic['title'] == '': + htmlcode2 = ADC_function.get_html('https://adult.contents.fc2.com/article/' + number + '/', + cookies={'wei6H': '1'}) + actor = getActor(htmlcode) + if getActor(htmlcode) == '': + actor = 'FC2系列' dic = { - 'title': '', - 'website': '', + 'title': getTitle_fc2com(htmlcode2), + 'studio': getStudio_fc2com(htmlcode2), + 'publisher': '', + 'year': '', # str(re.search('\d{4}',getRelease(number)).group()), + 'outline': getOutline_fc2com(htmlcode2), + 'runtime': getYear_fc2com(getRelease(htmlcode2)), + 'director': getStudio_fc2com(htmlcode2), + 'actor': actor.replace('/', ','), + 'release': getRelease_fc2com(number), + 'number': 'FC2-' + number, + 'cover': getCover_fc2com(htmlcode2), + 'imagecut': 0, + 'tag': getTag_fc2com(number), + 'series': '', + 'actor_photo': '', + 'website': 'http://adult.contents.fc2.com/article/' + number + '/', + 'source': 'http://adult.contents.fc2.com/article/' + number + '/', } + except Exception as e: + # (TODO) better handle this + # print(e) + dic = {"title": ""} js = json.dumps(dic, ensure_ascii=False, sort_keys=True, indent=4, separators=(',', ':'), ) # .encode('UTF-8') return js diff --git a/javbus.py b/javbus.py index 340795411..123a0d21c 100755 --- a/javbus.py +++ b/javbus.py @@ -22,7 +22,7 @@ def getActorPhoto(htmlcode): # //*[@id="star_qdt"]/li/a/img def getTitle(htmlcode): # 获取标题 doc = pq(htmlcode) - title = str(doc('div.container h3').text()) + title=str(doc('div.container h3').text()).replace(' ','-') try: title2 = re.sub('n\d+-', '', title) return title2 diff --git a/mgstage.py b/mgstage.py new file mode 100644 index 000000000..6e86e5f3d --- /dev/null +++ b/mgstage.py @@ -0,0 +1,145 @@ +import re +from lxml import etree +import json +from bs4 import BeautifulSoup +from ADC_function import * + + +# import sys +# import io +# sys.stdout = io.TextIOWrapper(sys.stdout.buffer, errors = 'replace', line_buffering = True) + +def getTitle(a): + try: + html = etree.fromstring(a, etree.HTMLParser()) + result = str(html.xpath('//*[@id="center_column"]/div[1]/h1/text()')).strip(" ['']") + return result.replace('/', ',') + except: + return '' + + +def getActor(a): # //*[@id="center_column"]/div[2]/div[1]/div/table/tbody/tr[1]/td/text() + html = etree.fromstring(a, etree.HTMLParser()) # //table/tr[1]/td[1]/text() + result1 = str(html.xpath('//th[contains(text(),"出演:")]/../td/a/text()')).strip(" ['']").strip('\\n ').strip( + '\\n') + result2 = str(html.xpath('//th[contains(text(),"出演:")]/../td/text()')).strip(" ['']").strip('\\n ').strip('\\n') + return str(result1 + result2).strip('+').replace("', '", '').replace('"', '').replace('/', ',') + + +def getStudio(a): + html = etree.fromstring(a, etree.HTMLParser()) # //table/tr[1]/td[1]/text() + result1 = str(html.xpath('//th[contains(text(),"シリーズ:")]/../td/a/text()')).strip(" ['']").strip('\\n ').strip( + '\\n') + result2 = str(html.xpath('//th[contains(text(),"シリーズ:")]/../td/text()')).strip(" ['']").strip('\\n ').strip( + '\\n') + return str(result1 + result2).strip('+').replace("', '", '').replace('"', '') + + +def getRuntime(a): + html = etree.fromstring(a, etree.HTMLParser()) # //table/tr[1]/td[1]/text() + result1 = str(html.xpath('//th[contains(text(),"収録時間:")]/../td/a/text()')).strip(" ['']").strip('\\n ').strip( + '\\n') + result2 = str(html.xpath('//th[contains(text(),"収録時間:")]/../td/text()')).strip(" ['']").strip('\\n ').strip( + '\\n') + return str(result1 + result2).strip('+').rstrip('mi') + + +def getSeries(a): + html = etree.fromstring(a, etree.HTMLParser()) # //table/tr[1]/td[1]/text() + result1 = str(html.xpath('//th[contains(text(),"シリーズ:")]/../td/a/text()')).strip(" ['']").strip('\\n ').strip( + '\\n') + result2 = str(html.xpath('//th[contains(text(),"シリーズ:")]/../td/text()')).strip(" ['']").strip('\\n ').strip( + '\\n') + return str(result1 + result2).strip('+').replace("', '", '').replace('"', '') + + +def getNum(a): + html = etree.fromstring(a, etree.HTMLParser()) # //table/tr[1]/td[1]/text() + result1 = str(html.xpath('//th[contains(text(),"品番:")]/../td/a/text()')).strip(" ['']").strip('\\n ').strip( + '\\n') + result2 = str(html.xpath('//th[contains(text(),"品番:")]/../td/text()')).strip(" ['']").strip('\\n ').strip( + '\\n') + return str(result1 + result2).strip('+') + + +def getYear(getRelease): + try: + result = str(re.search('\d{4}', getRelease).group()) + return result + except: + return getRelease + + +def getRelease(a): + html = etree.fromstring(a, etree.HTMLParser()) # //table/tr[1]/td[1]/text() + result1 = str(html.xpath('//th[contains(text(),"配信開始日:")]/../td/a/text()')).strip(" ['']").strip('\\n ').strip( + '\\n') + result2 = str(html.xpath('//th[contains(text(),"配信開始日:")]/../td/text()')).strip(" ['']").strip('\\n ').strip( + '\\n') + return str(result1 + result2).strip('+') + + +def getTag(a): + html = etree.fromstring(a, etree.HTMLParser()) # //table/tr[1]/td[1]/text() + result1 = str(html.xpath('//th[contains(text(),"ジャンル:")]/../td/a/text()')).strip(" ['']").strip('\\n ').strip( + '\\n') + result2 = str(html.xpath('//th[contains(text(),"ジャンル:")]/../td/text()')).strip(" ['']").strip('\\n ').strip( + '\\n') + return str(result1 + result2).strip('+').replace("', '\\n", ",").replace("', '", "").replace('"', '') + + +def getCover(htmlcode): + html = etree.fromstring(htmlcode, etree.HTMLParser()) + result = str(html.xpath('//*[@id="center_column"]/div[1]/div[1]/div/div/h2/img/@src')).strip(" ['']") + # /html/body/div[2]/article[2]/div[1]/div[1]/div/div/h2/img/@src + return result + + +def getDirector(a): + html = etree.fromstring(a, etree.HTMLParser()) # //table/tr[1]/td[1]/text() + result1 = str(html.xpath('//th[contains(text(),"シリーズ")]/../td/a/text()')).strip(" ['']").strip('\\n ').strip( + '\\n') + result2 = str(html.xpath('//th[contains(text(),"シリーズ")]/../td/text()')).strip(" ['']").strip('\\n ').strip( + '\\n') + return str(result1 + result2).strip('+').replace("', '", '').replace('"', '') + + +def getOutline(htmlcode): + html = etree.fromstring(htmlcode, etree.HTMLParser()) + result = str(html.xpath('//*[@id="introduction"]/dd/p[1]/text()')).strip(" ['']") + return result + + +def main(number2): + number = number2.upper() + htmlcode = str( + get_html('https://www.mgstage.com/product/product_detail/' + str(number) + '/', cookies={'adc': '1'})) + soup = BeautifulSoup(htmlcode, 'lxml') + a = str(soup.find(attrs={'class': 'detail_data'})).replace('\n ', + '').replace(' ', + '').replace('\n ', + '').replace( + '\n ', '') + dic = { + 'title': getTitle(htmlcode).replace("\\n", '').replace(' ', ''), + 'studio': getStudio(a), + 'publisher': '', + 'outline': getOutline(htmlcode), + 'runtime': getRuntime(a), + 'director': getDirector(a), + 'actor': getActor(a), + 'release': getRelease(a), + 'number': getNum(a), + 'cover': getCover(htmlcode), + 'imagecut': 0, + 'tag': getTag(a), + 'series': getSeries(a), + 'year': getYear(getRelease(a)), # str(re.search('\d{4}',getRelease(a)).group()), + 'actor_photo': '', + 'website': 'https://www.mgstage.com/product/product_detail/' + str(number) + '/', + 'source': 'mgstage.py', + } + js = json.dumps(dic, ensure_ascii=False, sort_keys=True, indent=4, separators=(',', ':'), ) # .encode('UTF-8') + return js + +# print(main('SIRO-3607')) diff --git a/py-require.txt b/py-require.txt index cfc887bfc..e282dcd10 100644 --- a/py-require.txt +++ b/py-require.txt @@ -4,4 +4,5 @@ pyqt5-tools pillow bs4 pyquery -requests \ No newline at end of file +requests +baidu-aip \ No newline at end of file