mirror of
https://github.com/leminlimez/Nugget.git
synced 2025-04-08 04:23:05 +08:00
fix windows FileNotFound error fr this time :trollface:
This commit is contained in:
12
controllers/path_handler.py
Normal file
12
controllers/path_handler.py
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import os
|
||||||
|
|
||||||
|
def fix_windows_path(dos_path: str, encoding=None):
|
||||||
|
if os.name == 'nt':
|
||||||
|
if (not isinstance(dos_path, str) and encoding is not None):
|
||||||
|
dos_path = dos_path.decode(encoding)
|
||||||
|
path = os.path.abspath(dos_path)
|
||||||
|
if path.startswith(u"\\\\"):
|
||||||
|
return u"\\\\?\\UNC\\" + path[2:]
|
||||||
|
return u"\\\\?\\" + path
|
||||||
|
else:
|
||||||
|
return dos_path
|
||||||
@@ -12,6 +12,8 @@ from pymobiledevice3.exceptions import MuxException, PasswordRequiredError
|
|||||||
from devicemanagement.constants import Device, Version
|
from devicemanagement.constants import Device, Version
|
||||||
from devicemanagement.data_singleton import DataSingleton
|
from devicemanagement.data_singleton import DataSingleton
|
||||||
|
|
||||||
|
from controllers.path_handler import fix_windows_path
|
||||||
|
|
||||||
from tweaks.tweaks import tweaks, FeatureFlagTweak, EligibilityTweak, AITweak, BasicPlistTweak, AdvancedPlistTweak, RdarFixTweak, NullifyFileTweak
|
from tweaks.tweaks import tweaks, FeatureFlagTweak, EligibilityTweak, AITweak, BasicPlistTweak, AdvancedPlistTweak, RdarFixTweak, NullifyFileTweak
|
||||||
from tweaks.custom_gestalt_tweaks import CustomGestaltTweaks
|
from tweaks.custom_gestalt_tweaks import CustomGestaltTweaks
|
||||||
from tweaks.posterboard_tweak import PosterboardTweak
|
from tweaks.posterboard_tweak import PosterboardTweak
|
||||||
@@ -331,7 +333,7 @@ class DeviceManager:
|
|||||||
elif isinstance(tweak, PosterboardTweak):
|
elif isinstance(tweak, PosterboardTweak):
|
||||||
tmp_pb_dir = TemporaryDirectory()
|
tmp_pb_dir = TemporaryDirectory()
|
||||||
tweak.apply_tweak(
|
tweak.apply_tweak(
|
||||||
files_to_restore=files_to_restore, output_dir=tmp_pb_dir.name,
|
files_to_restore=files_to_restore, output_dir=fix_windows_path(tmp_pb_dir.name),
|
||||||
version=self.get_current_device_version()
|
version=self.get_current_device_version()
|
||||||
)
|
)
|
||||||
if tweak.enabled:
|
if tweak.enabled:
|
||||||
@@ -437,9 +439,9 @@ class DeviceManager:
|
|||||||
if tmp_pb_dir != None:
|
if tmp_pb_dir != None:
|
||||||
try:
|
try:
|
||||||
tmp_pb_dir.cleanup()
|
tmp_pb_dir.cleanup()
|
||||||
except Exception as e:
|
except Exception as e2:
|
||||||
# ignore clean up errors
|
# ignore clean up errors
|
||||||
print(str(e))
|
print(str(e2))
|
||||||
show_apply_error(e, update_label)
|
show_apply_error(e, update_label)
|
||||||
|
|
||||||
## RESETTING MOBILE GESTALT
|
## RESETTING MOBILE GESTALT
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ from tweaks.custom_gestalt_tweaks import CustomGestaltTweaks, ValueTypeStrings
|
|||||||
from tweaks.daemons_tweak import Daemon
|
from tweaks.daemons_tweak import Daemon
|
||||||
|
|
||||||
App_Version = "5.0.3"
|
App_Version = "5.0.3"
|
||||||
App_Build = 1
|
App_Build = 0
|
||||||
|
|
||||||
class Page(Enum):
|
class Page(Enum):
|
||||||
Home = 0
|
Home = 0
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
pymobiledevice3
|
pymobiledevice3
|
||||||
PySide6-Essentials
|
PySide6-Essentials
|
||||||
PyInstaller
|
PyInstaller
|
||||||
rarfile
|
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
import os
|
import os
|
||||||
import zipfile
|
import zipfile
|
||||||
import rarfile
|
|
||||||
import uuid
|
import uuid
|
||||||
import re
|
import re
|
||||||
from random import randint
|
from random import randint
|
||||||
@@ -9,6 +8,7 @@ from PySide6 import QtWidgets, QtCore, QtGui
|
|||||||
from .tweak_classes import Tweak
|
from .tweak_classes import Tweak
|
||||||
from Sparserestore.restore import FileToRestore
|
from Sparserestore.restore import FileToRestore
|
||||||
from controllers.plist_handler import set_plist_value
|
from controllers.plist_handler import set_plist_value
|
||||||
|
from controllers.path_handler import fix_windows_path
|
||||||
from qt.ui_mainwindow import Ui_Nugget
|
from qt.ui_mainwindow import Ui_Nugget
|
||||||
|
|
||||||
class TendieFile:
|
class TendieFile:
|
||||||
@@ -183,16 +183,7 @@ class PosterboardTweak(Tweak):
|
|||||||
for tendie in self.tendies:
|
for tendie in self.tendies:
|
||||||
zip_output = os.path.join(output_dir, str(uuid.uuid4()))
|
zip_output = os.path.join(output_dir, str(uuid.uuid4()))
|
||||||
os.makedirs(zip_output)
|
os.makedirs(zip_output)
|
||||||
if os == 'nt':
|
with zipfile.ZipFile(tendie.path, 'r') as zip_ref:
|
||||||
rar_archive = rarfile.RarFile(tendie.path)
|
zip_ref.extractall(zip_output)
|
||||||
try:
|
|
||||||
# Extract the contents to the target directory
|
|
||||||
rar_archive.extractall(path=zip_output)
|
|
||||||
finally:
|
|
||||||
# Close the RAR file to release resources
|
|
||||||
rar_archive.close()
|
|
||||||
else:
|
|
||||||
with zipfile.ZipFile(tendie.path, 'r') as zip_ref:
|
|
||||||
zip_ref.extractall(zip_output)
|
|
||||||
# add the files
|
# add the files
|
||||||
self.recursive_add(files_to_restore, curr_path=output_dir)
|
self.recursive_add(files_to_restore, curr_path=output_dir)
|
||||||
|
|||||||
Reference in New Issue
Block a user