Skip to content

Commit 8efd375

Browse files
committed
Update PyExtendTools.py
1 parent 7ae461b commit 8efd375

File tree

1 file changed

+36
-19
lines changed

1 file changed

+36
-19
lines changed

PyExtendTools.py

+36-19
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,35 @@
55
import datetime
66
import json
77
import locale
8-
9-
import PySide6.QtGui
10-
from mutagen.easyid3 import EasyID3
11-
import mutagen.id3
12-
import mutagen.flac
13-
import mutagen.mp3
14-
import mutagen.mp4
15-
import numpy
168
import os
179
import pathlib
18-
import py7zr
1910
import platform
2011
import re
2112
import shutil
22-
import send2trash
2313
import sys
2414
import tarfile
25-
import time
2615
import threading
27-
import psutil
16+
import time
2817
import zipfile
18+
import chardet
19+
import mutagen.flac
20+
import mutagen.id3
21+
import mutagen.mp3
22+
import mutagen.mp4
23+
import numpy
24+
import psutil
25+
import py7zr
2926
import pyqtgraph
30-
from PySide6.QtCore import (QCoreApplication, QByteArray, QMetaObject, QRect, Qt, Signal, QSize, QFile, QEvent, QFileInfo, QTimer, QLocale, QTranslator, QLibraryInfo, QThread, QDate, QObject)
31-
from PySide6.QtGui import (QAction, QFont, QStandardItem, QStandardItemModel, QDesktopServices, QCursor, QPixmap, QPixmapCache, QIcon, QImage, QGuiApplication, QColor, QMouseEvent, QDropEvent)
32-
from PySide6.QtWidgets import (QApplication, QCheckBox, QLabel, QListView, QLineEdit, QMainWindow, QPlainTextEdit, QPushButton, QTabWidget, QTreeView, QWidget, QFileSystemModel, QMenu, QAbstractItemView, QDialog, QDialogButtonBox, QFileIconProvider, QGridLayout, QScrollArea, QCalendarWidget, QMenuBar)
27+
import send2trash
3328
from PySide6.QtCharts import (QChart, QChartView, QPieSeries, QPieSlice)
29+
from PySide6.QtCore import (QCoreApplication, QByteArray, QMetaObject, QRect, Qt, Signal, QSize, QFile, QEvent,
30+
QFileInfo, QTimer, QLocale, QTranslator, QThread, QDate)
31+
from PySide6.QtGui import (QFont, QStandardItem, QStandardItemModel, QDesktopServices, QCursor, QPixmap, QPixmapCache,
32+
QIcon, QImage, QGuiApplication, QColor)
33+
from PySide6.QtWidgets import (QApplication, QCheckBox, QLabel, QListView, QLineEdit, QMainWindow, QPlainTextEdit,
34+
QPushButton, QTabWidget, QTreeView, QWidget, QFileSystemModel, QMenu, QAbstractItemView,
35+
QDialog, QDialogButtonBox, QFileIconProvider, QGridLayout, QScrollArea, QCalendarWidget)
36+
from mutagen.easyid3 import EasyID3
3437

3538
BackupNowPath = [u'']
3639
PathListory = [u'']
@@ -1957,6 +1960,7 @@ def __init__(self):
19571960

19581961
def icon(self, fileInfo):
19591962
AcceptFileType = ('.svg', '.jpg', '.jpeg', '.png', '.bmp', '.gif', '.rgb', '.tiff', '.xbm', '.pbm', '.pgm', '.ppm')
1963+
self.fileInfo = fileInfo
19601964
try:
19611965
if fileInfo.isFile():
19621966
if fileInfo.filePath().lower().endswith(AcceptFileType):
@@ -1989,7 +1993,7 @@ def LoadFLAC(self, path):
19891993
self.loader.setCacheLimit(100)
19901994
return QIcon(img.scaled(64, 64))
19911995
except Exception as E:
1992-
return QFileIconProvider.icon(self, fileInfo)
1996+
return QFileIconProvider.icon(self, self.fileInfo)
19931997

19941998
def LoadMP3(self, path):
19951999
try:
@@ -1999,7 +2003,7 @@ def LoadMP3(self, path):
19992003
self.loader.setCacheLimit(100)
20002004
return QIcon(img.scaled(64, 64))
20012005
except Exception as E:
2002-
return QFileIconProvider.icon(self, fileInfo)
2006+
return QFileIconProvider.icon(self, self.fileInfo)
20032007

20042008
def LoadM4A(self, path):
20052009
try:
@@ -2009,7 +2013,7 @@ def LoadM4A(self, path):
20092013
self.loader.setCacheLimit(100)
20102014
return QIcon(img.scaled(64, 64))
20112015
except Exception as E:
2012-
return QFileIconProvider.icon(self, fileInfo)
2016+
return QFileIconProvider.icon(self, self.fileInfo)
20132017

20142018
class FileSystemListView(QListView):
20152019
def __init__(self, parent, model=QFileSystemModel()):
@@ -2651,7 +2655,20 @@ def OutSideUnArchive(self):
26512655
if self.filePath(DetectFile).endswith('.zip'):
26522656
os.makedirs(self.filePath(DetectFile).replace(os.getcwd(), os.curdir).split('.zip')[0], exist_ok=True)
26532657
with zipfile.ZipFile(self.filePath(DetectFile), 'r') as ExtractZip:
2654-
ExtractZip.extractall(path='{}{}{}'.format(os.getcwd(), '/', self.filePath(DetectFile).split(os.getcwd().replace(os.sep, '/'))[-1].split('.zip')[0]))
2658+
bkpath = os.getcwd()
2659+
current_paths = '{}{}{}'.format(os.getcwd(), '/', self.filePath(DetectFile).split(os.getcwd().replace(os.sep, '/'))[-1].split('.zip')[0])
2660+
os.makedirs(current_paths, exist_ok=True)
2661+
os.chdir(current_paths)
2662+
for info in ExtractZip.infolist():
2663+
enc = chardet.detect(info.orig_filename.encode())['encoding']
2664+
try:
2665+
info.filename = info.orig_filename.encode('cp437').decode(enc)
2666+
except:
2667+
info.filename = info.orig_filename.encode(enc).decode(enc)
2668+
if os.sep != "/" and os.sep in info.filename:
2669+
info.filename = info.filename.replace(os.sep, "/")
2670+
ExtractZip.extract(info)
2671+
os.chdir(bkpath)
26552672
if self.filePath(DetectFile).endswith('.tar.gz'):
26562673
os.makedirs(self.filePath(DetectFile).replace(os.getcwd(), os.curdir).split('.tar.gz')[0], exist_ok=True)
26572674
with tarfile.open(self.filePath(DetectFile), 'r') as ExtractTgz:

0 commit comments

Comments
 (0)