Skip to content

Commit

Permalink
3.92
Browse files Browse the repository at this point in the history
moyy996 committed Mar 17, 2020
1 parent e3ebbd7 commit d8fae1a
Showing 6 changed files with 84 additions and 57 deletions.
52 changes: 24 additions & 28 deletions AVDC_Main.py
Original file line number Diff line number Diff line change
@@ -30,7 +30,7 @@ def __init__(self, parent=None):
self.Init_Ui()
self.set_style()
# 初始化需要的变量
self.version = '3.91'
self.version = '3.92'
self.m_drag = False
self.m_DragPosition = 0
self.item_succ = self.Ui.treeWidget_number.topLevelItem(0)
@@ -239,6 +239,7 @@ def Load_Config(self):
self.Ui.lineEdit_api_key.setText(config['emby']['api_key'])
self.Ui.lineEdit_movie_path.setText(str(config['media']['media_path']).replace('\\', '/'))
self.Ui.lineEdit_movie_type.setText(config['media']['media_type'])
self.Ui.lineEdit_sub_type.setText(config['media']['sub_type'])

# ========================================================================显示版本号
def show_version(self):
@@ -401,6 +402,7 @@ def save_config_clicked(self):
'api_key': self.Ui.lineEdit_api_key.text(),
'media_path': self.Ui.lineEdit_movie_path.text(),
'media_type': self.Ui.lineEdit_movie_type.text(),
'sub_type': self.Ui.lineEdit_sub_type.text(),
}
save_config(json_config)

@@ -528,7 +530,7 @@ def move_file(self):

def move_file_thread(self):
escape_dir = self.Ui.lineEdit_escape_dir_move.text()
sub_type = ['.srt', '.ass', '.sub']
sub_type = self.Ui.lineEdit_sub_type.text().split('|')
movie_path = self.Ui.lineEdit_movie_path.text()
movie_type = self.Ui.lineEdit_movie_type.text()
movie_list = movie_lists(escape_dir, movie_type, movie_path)
@@ -748,9 +750,12 @@ def add_text_main(self, text):
# ========================================================================移动到失败文件夹
def moveFailedFolder(self, filepath, failed_folder):
if self.Ui.radioButton_fail_move_on.isChecked():
if not os.path.exists(failed_folder + '/' + os.path.split(filepath)[1]):
self.add_text_main('[-]Move to Failed output folder')
shutil.move(filepath, failed_folder + '/')
if self.Ui.radioButton_soft_off.isChecked():
try:
shutil.move(filepath, failed_folder + '/')
self.add_text_main('[-]Move ' + os.path.split(filepath)[1] + ' to Failed output folder Success')
except Exception as error_info:
self.add_text_main('[-]Error in moveFailedFolder! ' + str(error_info))

# ========================================================================下载文件
def DownloadFileWithFilename(self, url, filename, path, Config, filepath, failed_folder):
@@ -793,16 +798,7 @@ def DownloadFileWithFilename(self, url, filename, path, Config, filepath, failed
code.write(r.content)
code.close()
return
except requests.exceptions.RequestException:
i += 1
print('[-]Image Download : Connect retry ' + str(i) + '/' + str(retry_count))
except requests.exceptions.ConnectionError:
i += 1
print('[-]Image Download : Connect retry ' + str(i) + '/' + str(retry_count))
except requests.exceptions.ProxyError:
i += 1
print('[-]Image Download : Connect retry ' + str(i) + '/' + str(retry_count))
except requests.exceptions.ConnectTimeout:
except :
i += 1
print('[-]Image Download : Connect retry ' + str(i) + '/' + str(retry_count))
self.add_text_main('[-]Connect Failed! Please check your Proxy or Network!')
@@ -1021,8 +1017,8 @@ def copyRenameJpgToBackdrop(self, option, path, naming_rule):

# ========================================================================移动文件、字幕
def pasteFileToFolder(self, filepath, path, naming_rule, failed_folder):
type = str(os.path.splitext(filepath)[1])
try:
type = str(os.path.splitext(filepath)[1])
if os.path.exists(path + '/' + naming_rule + type):
raise FileExistsError
if self.Ui.radioButton_soft_on.isChecked(): # 如果使用软链接
@@ -1033,15 +1029,16 @@ def pasteFileToFolder(self, filepath, path, naming_rule, failed_folder):
self.add_text_main('[+]Movie Moved! ' + naming_rule + type)
path_old = filepath.replace(filepath.split('/')[-1], '')
filename = filepath.split('/')[-1].split('.')[0]
sub_type = ['.srt', '.ass', '.sub']
sub_type = self.Ui.lineEdit_sub_type.text().split('|')
for sub in sub_type:
if os.path.exists(path_old + '/' + filename + sub): # 字幕移动
shutil.move(path_old + '/' + filename + sub, path + '/' + naming_rule + sub)
self.add_text_main('[+]Sub moved! ' + naming_rule + sub)
break
except FileExistsError:
self.moveFailedFolder(filepath, failed_folder)
self.add_text_main('[-]' + os.path.split(filepath)[1] + ' already exists!')
self.add_text_main('[+]Movie Existed! ' + naming_rule + type)
if os.path.split(filepath)[0] != path:
self.moveFailedFolder(filepath, failed_folder)
except PermissionError:
self.add_text_main('[-]PermissionError! Please run as Administrator!')
except Exception as error_info:
@@ -1177,6 +1174,11 @@ def Core_Main(self, file_path, number_th, mode, count):
self.item_fail.addChild(node)
self.moveFailedFolder(filepath, failed_folder)
return 'not found'
elif 'http' not in json_data['cover']:
raise Exception('Cover Url is None!')
elif json_data['imagecut'] == 3 and 'http' not in json_data['cover_small']:
raise Exception('Cover_small Url is None!')

# =======================================================================调试模式
if self.Ui.radioButton_debug_on.isChecked():
self.debug_mode(json_data)
@@ -1249,7 +1251,7 @@ def UpdateCheck(self):

# ========================================================================新建失败输出文件夹
def CreatFailedFolder(self, failed_folder):
if self.Ui.radioButton_fail_move_on.isChecked() and not os.path.exists(failed_folder + '/'):
if self.Ui.radioButton_fail_move_on.isChecked() and not os.path.exists(failed_folder):
try:
os.makedirs(failed_folder + '/')
self.add_text_main('[+]Created folder named ' + failed_folder + '!')
@@ -1316,14 +1318,8 @@ def AVDC_Main(self):
node.setText(0, str(count) + '.' + os.path.splitext(movie.split('/')[-1])[0])
self.item_fail.addChild(node)
self.add_text_main('[-]Error in AVDC_Main: ' + str(error_info))
if self.Ui.radioButton_fail_move_on.isChecked():
if config['common']['soft_link'] == '1':
self.add_text_main('[-]Link ' + movie + ' to failed folder')
try:
os.symlink(movie, failed_folder + '/')
except Exception as error_info:
self.add_text_main('[-]Error in AVDC_Main: ' + str(error_info))
else:
if self.Ui.radioButton_fail_move_on.isChecked() and not os.path.exists(failed_folder + '/' + os.path.split(movie)[1]):
if config['common']['soft_link'] == '0':
try:
shutil.move(movie, failed_folder + '/')
self.add_text_main('[-]Move ' + movie + ' to failed folder')
1 change: 1 addition & 0 deletions Function/Function.py
Original file line number Diff line number Diff line change
@@ -294,6 +294,7 @@ def save_config(json_config):
print("", file=code)
print("[media]", file=code)
print("media_type = " + json_config['media_type'], file=code)
print("sub_type = " + json_config['sub_type'], file=code)
print("media_path = " + json_config['media_path'], file=code)
print("media_warehouse = " + json_config['media_warehouse'], file=code)
print("# emby or plex or kodi ,emby = jellyfin", file=code)
34 changes: 22 additions & 12 deletions Ui/AVDC.py
Original file line number Diff line number Diff line change
@@ -166,7 +166,10 @@ def setupUi(self, AVDV):
self.checkBox_cover.setGeometry(QtCore.QRect(210, 420, 321, 21))
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.setGeometry(QtCore.QRect(540, 420, 241, 20))
self.label_progress.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
self.label_progress.setLayoutDirection(QtCore.Qt.LeftToRight)
self.label_progress.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.label_progress.setObjectName("label_progress")
self.stackedWidget.addWidget(self.page_avdc)
self.page_tool = QtWidgets.QWidget()
@@ -396,10 +399,10 @@ def setupUi(self, AVDV):
self.lineEdit_local_name.setObjectName("lineEdit_local_name")
self.formLayout_6.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.lineEdit_local_name)
self.groupBox_16 = QtWidgets.QGroupBox(self.tab_2)
self.groupBox_16.setGeometry(QtCore.QRect(10, 140, 761, 261))
self.groupBox_16.setGeometry(QtCore.QRect(10, 140, 761, 281))
self.groupBox_16.setObjectName("groupBox_16")
self.formLayoutWidget_5 = QtWidgets.QWidget(self.groupBox_16)
self.formLayoutWidget_5.setGeometry(QtCore.QRect(0, 20, 751, 161))
self.formLayoutWidget_5.setGeometry(QtCore.QRect(0, 20, 751, 181))
self.formLayoutWidget_5.setObjectName("formLayoutWidget_5")
self.formLayout_2 = QtWidgets.QFormLayout(self.formLayoutWidget_5)
self.formLayout_2.setContentsMargins(0, 0, 0, 0)
@@ -412,31 +415,37 @@ def setupUi(self, AVDV):
self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.lineEdit_movie_path)
self.label_48 = QtWidgets.QLabel(self.formLayoutWidget_5)
self.label_48.setObjectName("label_48")
self.formLayout_2.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_48)
self.formLayout_2.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.label_48)
self.lineEdit_escape_dir = QtWidgets.QLineEdit(self.formLayoutWidget_5)
self.lineEdit_escape_dir.setObjectName("lineEdit_escape_dir")
self.formLayout_2.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.lineEdit_escape_dir)
self.formLayout_2.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.lineEdit_escape_dir)
self.label_46 = QtWidgets.QLabel(self.formLayoutWidget_5)
self.label_46.setObjectName("label_46")
self.formLayout_2.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.label_46)
self.formLayout_2.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.label_46)
self.lineEdit_fail = QtWidgets.QLineEdit(self.formLayoutWidget_5)
self.lineEdit_fail.setObjectName("lineEdit_fail")
self.formLayout_2.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.lineEdit_fail)
self.formLayout_2.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.lineEdit_fail)
self.label_47 = QtWidgets.QLabel(self.formLayoutWidget_5)
self.label_47.setFrameShape(QtWidgets.QFrame.NoFrame)
self.label_47.setObjectName("label_47")
self.formLayout_2.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.label_47)
self.formLayout_2.setWidget(5, QtWidgets.QFormLayout.LabelRole, self.label_47)
self.lineEdit_success = QtWidgets.QLineEdit(self.formLayoutWidget_5)
self.lineEdit_success.setObjectName("lineEdit_success")
self.formLayout_2.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.lineEdit_success)
self.formLayout_2.setWidget(5, QtWidgets.QFormLayout.FieldRole, self.lineEdit_success)
self.label_40 = QtWidgets.QLabel(self.formLayoutWidget_5)
self.label_40.setObjectName("label_40")
self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_40)
self.lineEdit_movie_type = QtWidgets.QLineEdit(self.formLayoutWidget_5)
self.lineEdit_movie_type.setObjectName("lineEdit_movie_type")
self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.lineEdit_movie_type)
self.label_42 = QtWidgets.QLabel(self.formLayoutWidget_5)
self.label_42.setObjectName("label_42")
self.formLayout_2.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_42)
self.lineEdit_sub_type = QtWidgets.QLineEdit(self.formLayoutWidget_5)
self.lineEdit_sub_type.setObjectName("lineEdit_sub_type")
self.formLayout_2.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.lineEdit_sub_type)
self.label_7 = QtWidgets.QLabel(self.groupBox_16)
self.label_7.setGeometry(QtCore.QRect(20, 180, 731, 61))
self.label_7.setGeometry(QtCore.QRect(10, 210, 731, 61))
self.label_7.setObjectName("label_7")
self.tabWidget.addTab(self.tab_2, "")
self.tab_3 = QtWidgets.QWidget()
@@ -555,13 +564,13 @@ def setupUi(self, AVDV):
AVDV.setCentralWidget(self.centralwidget)

self.retranslateUi(AVDV)
self.stackedWidget.setCurrentIndex(3)
self.stackedWidget.setCurrentIndex(2)
self.tabWidget.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(AVDV)

def retranslateUi(self, AVDV):
_translate = QtCore.QCoreApplication.translate
AVDV.setWindowTitle(_translate("AVDV", "AVDC-3.91"))
AVDV.setWindowTitle(_translate("AVDV", "AVDC-3.92"))
self.pushButton_start_cap.setText(_translate("AVDV", "开始"))
self.textBrowser_warning.setHtml(_translate("AVDV", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
@@ -668,6 +677,7 @@ def retranslateUi(self, AVDV):
self.label_46.setText(_translate("AVDV", " 失败输出目录: "))
self.label_47.setText(_translate("AVDV", " 成功输出目录: "))
self.label_40.setText(_translate("AVDV", " 视频类型: "))
self.label_42.setText(_translate("AVDV", " 字幕类型: "))
self.label_7.setText(_translate("AVDV", "说明:\n"
" 1、‘排除目录’、‘成功输出目录’、‘失败输出目录’应为‘视频目录’下的目录。\n"
" 2‘成功输出目录’、‘失败输出目录’不存在,则会在‘视频目录’下创建。、"))
47 changes: 33 additions & 14 deletions Ui/AVDC.ui
Original file line number Diff line number Diff line change
@@ -11,7 +11,7 @@
</rect>
</property>
<property name="windowTitle">
<string>AVDC-3.91</string>
<string>AVDC-3.92</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QStackedWidget" name="stackedWidget">
@@ -24,7 +24,7 @@
</rect>
</property>
<property name="currentIndex">
<number>3</number>
<number>2</number>
</property>
<widget class="QWidget" name="page_avdc">
<widget class="QPushButton" name="pushButton_start_cap">
@@ -510,15 +510,24 @@ p, li { white-space: pre-wrap; }
<widget class="QLabel" name="label_progress">
<property name="geometry">
<rect>
<x>690</x>
<x>540</x>
<y>420</y>
<width>91</width>
<width>241</width>
<height>20</height>
</rect>
</property>
<property name="cursor">
<cursorShape>ArrowCursor</cursorShape>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="text">
<string>0/0</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</widget>
<widget class="QWidget" name="page_tool">
@@ -1304,7 +1313,7 @@ p, li { white-space: pre-wrap; }
<x>10</x>
<y>140</y>
<width>761</width>
<height>261</height>
<height>281</height>
</rect>
</property>
<property name="title">
@@ -1316,7 +1325,7 @@ p, li { white-space: pre-wrap; }
<x>0</x>
<y>20</y>
<width>751</width>
<height>161</height>
<height>181</height>
</rect>
</property>
<layout class="QFormLayout" name="formLayout_2">
@@ -1330,27 +1339,27 @@ p, li { white-space: pre-wrap; }
<item row="0" column="1">
<widget class="QLineEdit" name="lineEdit_movie_path"/>
</item>
<item row="2" column="0">
<item row="3" column="0">
<widget class="QLabel" name="label_48">
<property name="text">
<string> 排除目录:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<item row="3" column="1">
<widget class="QLineEdit" name="lineEdit_escape_dir"/>
</item>
<item row="3" column="0">
<item row="4" column="0">
<widget class="QLabel" name="label_46">
<property name="text">
<string> 失败输出目录: </string>
</property>
</widget>
</item>
<item row="3" column="1">
<item row="4" column="1">
<widget class="QLineEdit" name="lineEdit_fail"/>
</item>
<item row="4" column="0">
<item row="5" column="0">
<widget class="QLabel" name="label_47">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
@@ -1360,7 +1369,7 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="4" column="1">
<item row="5" column="1">
<widget class="QLineEdit" name="lineEdit_success"/>
</item>
<item row="1" column="0">
@@ -1373,13 +1382,23 @@ p, li { white-space: pre-wrap; }
<item row="1" column="1">
<widget class="QLineEdit" name="lineEdit_movie_type"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_42">
<property name="text">
<string> 字幕类型: </string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="lineEdit_sub_type"/>
</item>
</layout>
</widget>
<widget class="QLabel" name="label_7">
<property name="geometry">
<rect>
<x>20</x>
<y>180</y>
<x>10</x>
<y>210</y>
<width>731</width>
<height>61</height>
</rect>
3 changes: 2 additions & 1 deletion config.ini
Original file line number Diff line number Diff line change
@@ -25,7 +25,8 @@ save_log = 1

[media]
media_type = .mp4|.avi|.rmvb|.wmv|.mov|.mkv|.flv|.ts|.webm|.MP4|.AVI|.RMVB|.WMV|.MOV|.MKV|.FLV|.TS|.WEBM
media_path = E:\TEMP
sub_type = .smi|.srt|.idx|.sub|.sup|.psb|.ssa|.ass|.txt|.usf|.xss|.ssf|.rt|.lrc|.sbv|.vtt|.ttml
media_path = E:/TEMP
media_warehouse = emby
# emby or plex or kodi ,emby = jellyfin

4 changes: 2 additions & 2 deletions update_check.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": "3.91",
"version_show":"3.91",
"version": "3.92",
"version_show":"3.92",
"download": "https://github.com/moyy996/AVDC/releases"
}

0 comments on commit d8fae1a

Please sign in to comment.