5
5
import datetime
6
6
import json
7
7
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
16
8
import os
17
9
import pathlib
18
- import py7zr
19
10
import platform
20
11
import re
21
12
import shutil
22
- import send2trash
23
13
import sys
24
14
import tarfile
25
- import time
26
15
import threading
27
- import psutil
16
+ import time
28
17
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
29
26
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
33
28
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
34
37
35
38
BackupNowPath = [u'']
36
39
PathListory = [u'']
@@ -1957,6 +1960,7 @@ def __init__(self):
1957
1960
1958
1961
def icon(self, fileInfo):
1959
1962
AcceptFileType = ('.svg', '.jpg', '.jpeg', '.png', '.bmp', '.gif', '.rgb', '.tiff', '.xbm', '.pbm', '.pgm', '.ppm')
1963
+ self.fileInfo = fileInfo
1960
1964
try:
1961
1965
if fileInfo.isFile():
1962
1966
if fileInfo.filePath().lower().endswith(AcceptFileType):
@@ -1989,7 +1993,7 @@ def LoadFLAC(self, path):
1989
1993
self.loader.setCacheLimit(100)
1990
1994
return QIcon(img.scaled(64, 64))
1991
1995
except Exception as E:
1992
- return QFileIconProvider.icon(self, fileInfo)
1996
+ return QFileIconProvider.icon(self, self. fileInfo)
1993
1997
1994
1998
def LoadMP3(self, path):
1995
1999
try:
@@ -1999,7 +2003,7 @@ def LoadMP3(self, path):
1999
2003
self.loader.setCacheLimit(100)
2000
2004
return QIcon(img.scaled(64, 64))
2001
2005
except Exception as E:
2002
- return QFileIconProvider.icon(self, fileInfo)
2006
+ return QFileIconProvider.icon(self, self. fileInfo)
2003
2007
2004
2008
def LoadM4A(self, path):
2005
2009
try:
@@ -2009,7 +2013,7 @@ def LoadM4A(self, path):
2009
2013
self.loader.setCacheLimit(100)
2010
2014
return QIcon(img.scaled(64, 64))
2011
2015
except Exception as E:
2012
- return QFileIconProvider.icon(self, fileInfo)
2016
+ return QFileIconProvider.icon(self, self. fileInfo)
2013
2017
2014
2018
class FileSystemListView(QListView):
2015
2019
def __init__(self, parent, model=QFileSystemModel()):
@@ -2651,7 +2655,20 @@ def OutSideUnArchive(self):
2651
2655
if self.filePath(DetectFile).endswith('.zip'):
2652
2656
os.makedirs(self.filePath(DetectFile).replace(os.getcwd(), os.curdir).split('.zip')[0], exist_ok=True)
2653
2657
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)
2655
2672
if self.filePath(DetectFile).endswith('.tar.gz'):
2656
2673
os.makedirs(self.filePath(DetectFile).replace(os.getcwd(), os.curdir).split('.tar.gz')[0], exist_ok=True)
2657
2674
with tarfile.open(self.filePath(DetectFile), 'r') as ExtractTgz:
0 commit comments