Fixed Cloud Saves
This commit is contained in:
parent
bf8ceff8c4
commit
881b32b89b
|
@ -66,7 +66,9 @@ class SyncWidget(QWidget):
|
||||||
if self.res == SaveGameStatus.NO_SAVE:
|
if self.res == SaveGameStatus.NO_SAVE:
|
||||||
self.logger.info('No cloud or local savegame found.')
|
self.logger.info('No cloud or local savegame found.')
|
||||||
return
|
return
|
||||||
|
|
||||||
game_title = QLabel(f"<h2>{igame.title}</h2>")
|
game_title = QLabel(f"<h2>{igame.title}</h2>")
|
||||||
|
|
||||||
if self.dt_local:
|
if self.dt_local:
|
||||||
local_save_date = QLabel(
|
local_save_date = QLabel(
|
||||||
self.tr("Local Save date: ") + str(self.dt_local.strftime('%Y-%m-%d %H:%M:%S')))
|
self.tr("Local Save date: ") + str(self.dt_local.strftime('%Y-%m-%d %H:%M:%S')))
|
||||||
|
@ -113,7 +115,7 @@ class SyncWidget(QWidget):
|
||||||
self.download_button.setDisabled(True)
|
self.download_button.setDisabled(True)
|
||||||
self.logger.info(f'- Local save date: {self.dt_local.strftime("%Y-%m-%d %H:%M:%S")}')
|
self.logger.info(f'- Local save date: {self.dt_local.strftime("%Y-%m-%d %H:%M:%S")}')
|
||||||
else:
|
else:
|
||||||
self.logger.error("Error")
|
self.logger.error(self.res)
|
||||||
return
|
return
|
||||||
|
|
||||||
self.upload_button.clicked.connect(self.upload)
|
self.upload_button.clicked.connect(self.upload)
|
||||||
|
|
|
@ -6,7 +6,7 @@ from Rare import __version__
|
||||||
from PyQt5.QtCore import QTranslator, QSettings
|
from PyQt5.QtCore import QTranslator, QSettings
|
||||||
from PyQt5.QtGui import QIcon
|
from PyQt5.QtGui import QIcon
|
||||||
from PyQt5.QtWidgets import QApplication
|
from PyQt5.QtWidgets import QApplication
|
||||||
from legendary.core import LegendaryCore
|
from custom_legendary.core import LegendaryCore
|
||||||
|
|
||||||
from Rare import style_path, lang_path
|
from Rare import style_path, lang_path
|
||||||
from Rare.Components.Launch.LaunchDialog import LaunchDialog
|
from Rare.Components.Launch.LaunchDialog import LaunchDialog
|
||||||
|
|
|
@ -6,7 +6,7 @@ from logging import getLogger
|
||||||
import requests
|
import requests
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
from PyQt5.QtCore import pyqtSignal, QLocale, QSettings
|
from PyQt5.QtCore import pyqtSignal, QLocale, QSettings
|
||||||
from legendary.core import LegendaryCore
|
from custom_legendary.core import LegendaryCore
|
||||||
|
|
||||||
from Rare import lang_path
|
from Rare import lang_path
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ import logging
|
||||||
|
|
||||||
from requests.auth import HTTPBasicAuth
|
from requests.auth import HTTPBasicAuth
|
||||||
|
|
||||||
from legendary.models.exceptions import InvalidCredentialsError
|
from custom_legendary.models.exceptions import InvalidCredentialsError
|
||||||
|
|
||||||
|
|
||||||
class EPCAPI:
|
class EPCAPI:
|
||||||
|
|
|
@ -19,12 +19,12 @@ from logging.handlers import QueueListener
|
||||||
from multiprocessing import freeze_support, Queue as MPQueue
|
from multiprocessing import freeze_support, Queue as MPQueue
|
||||||
from sys import exit, stdout
|
from sys import exit, stdout
|
||||||
|
|
||||||
from legendary import __version__, __codename__
|
from custom_legendary import __version__, __codename__
|
||||||
from legendary.core import LegendaryCore
|
from custom_legendary.core import LegendaryCore
|
||||||
from legendary.models.exceptions import InvalidCredentialsError
|
from custom_legendary.models.exceptions import InvalidCredentialsError
|
||||||
from legendary.models.game import SaveGameStatus, VerifyResult
|
from custom_legendary.models.game import SaveGameStatus, VerifyResult
|
||||||
from legendary.utils.cli import get_boolean_choice, sdl_prompt
|
from custom_legendary.utils.cli import get_boolean_choice, sdl_prompt
|
||||||
from legendary.utils.custom_parser import AliasedSubParsersAction
|
from custom_legendary.utils.custom_parser import AliasedSubParsersAction
|
||||||
|
|
||||||
# todo custom formatter for cli logger (clean info, highlighted error/warning)
|
# todo custom formatter for cli logger (clean info, highlighted error/warning)
|
||||||
logging.basicConfig(
|
logging.basicConfig(
|
||||||
|
|
|
@ -17,23 +17,23 @@ from requests.exceptions import HTTPError
|
||||||
from typing import List, Dict, Callable
|
from typing import List, Dict, Callable
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from legendary.api.egs import EPCAPI
|
from custom_legendary.api.egs import EPCAPI
|
||||||
from legendary.downloader.manager import DLManager
|
from custom_legendary.downloader.manager import DLManager
|
||||||
from legendary.lfs.egl import EPCLFS
|
from custom_legendary.lfs.egl import EPCLFS
|
||||||
from legendary.lfs.lgndry import LGDLFS
|
from custom_legendary.lfs.lgndry import LGDLFS
|
||||||
from legendary.utils.lfs import clean_filename, delete_folder, delete_filelist, validate_files
|
from custom_legendary.utils.lfs import clean_filename, delete_folder, delete_filelist, validate_files
|
||||||
from legendary.models.downloading import AnalysisResult, ConditionCheckResult
|
from custom_legendary.models.downloading import AnalysisResult, ConditionCheckResult
|
||||||
from legendary.models.egl import EGLManifest
|
from custom_legendary.models.egl import EGLManifest
|
||||||
from legendary.models.exceptions import InvalidCredentialsError
|
from custom_legendary.models.exceptions import InvalidCredentialsError
|
||||||
from legendary.models.game import GameAsset, Game, InstalledGame, SaveGameFile, SaveGameStatus, VerifyResult
|
from custom_legendary.models.game import GameAsset, Game, InstalledGame, SaveGameFile, SaveGameStatus, VerifyResult
|
||||||
from legendary.models.json_manifest import JSONManifest
|
from custom_legendary.models.json_manifest import JSONManifest
|
||||||
from legendary.models.manifest import Manifest, ManifestMeta
|
from custom_legendary.models.manifest import Manifest, ManifestMeta
|
||||||
from legendary.models.chunk import Chunk
|
from custom_legendary.models.chunk import Chunk
|
||||||
from legendary.utils.game_workarounds import is_opt_enabled
|
from custom_legendary.utils.game_workarounds import is_opt_enabled
|
||||||
from legendary.utils.savegame_helper import SaveGameHelper
|
from custom_legendary.utils.savegame_helper import SaveGameHelper
|
||||||
from legendary.utils.manifests import combine_manifests
|
from custom_legendary.utils.manifests import combine_manifests
|
||||||
from legendary.utils.wine_helpers import read_registry, get_shell_folders
|
from custom_legendary.utils.wine_helpers import read_registry, get_shell_folders
|
||||||
from legendary.utils.selective_dl import get_sdl_appname
|
from custom_legendary.utils.selective_dl import get_sdl_appname
|
||||||
|
|
||||||
|
|
||||||
# ToDo: instead of true/false return values for success/failure actually raise an exception that the CLI/GUI
|
# ToDo: instead of true/false return values for success/failure actually raise an exception that the CLI/GUI
|
||||||
|
|
|
@ -14,9 +14,9 @@ from queue import Empty
|
||||||
from sys import exit
|
from sys import exit
|
||||||
from threading import Condition, Thread
|
from threading import Condition, Thread
|
||||||
|
|
||||||
from legendary.downloader.workers import DLWorker, FileWorker
|
from custom_legendary.downloader.workers import DLWorker, FileWorker
|
||||||
from legendary.models.downloading import *
|
from custom_legendary.models.downloading import *
|
||||||
from legendary.models.manifest import ManifestComparison, Manifest
|
from custom_legendary.models.manifest import ManifestComparison, Manifest
|
||||||
|
|
||||||
|
|
||||||
class DLManager(Process):
|
class DLManager(Process):
|
||||||
|
|
|
@ -10,8 +10,8 @@ from multiprocessing import Process
|
||||||
from multiprocessing.shared_memory import SharedMemory
|
from multiprocessing.shared_memory import SharedMemory
|
||||||
from queue import Empty
|
from queue import Empty
|
||||||
|
|
||||||
from legendary.models.chunk import Chunk
|
from custom_legendary.models.chunk import Chunk
|
||||||
from legendary.models.downloading import DownloaderTaskResult, WriterTaskResult
|
from custom_legendary.models.downloading import DownloaderTaskResult, WriterTaskResult
|
||||||
|
|
||||||
|
|
||||||
class DLWorker(Process):
|
class DLWorker(Process):
|
||||||
|
|
|
@ -6,7 +6,7 @@ import os
|
||||||
|
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from legendary.models.egl import EGLManifest
|
from custom_legendary.models.egl import EGLManifest
|
||||||
|
|
||||||
|
|
||||||
class EPCLFS:
|
class EPCLFS:
|
||||||
|
|
|
@ -7,8 +7,8 @@ import logging
|
||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from legendary.models.game import *
|
from custom_legendary.models.game import *
|
||||||
from legendary.utils.lfs import clean_filename
|
from custom_legendary.utils.lfs import clean_filename
|
||||||
|
|
||||||
|
|
||||||
class LGDLFS:
|
class LGDLFS:
|
||||||
|
|
|
@ -7,7 +7,7 @@ from hashlib import sha1
|
||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from legendary.utils.rolling_hash import get_hash
|
from custom_legendary.utils.rolling_hash import get_hash
|
||||||
|
|
||||||
|
|
||||||
# ToDo do some reworking to make this more memory efficient
|
# ToDo do some reworking to make this more memory efficient
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
from distutils.util import strtobool
|
from distutils.util import strtobool
|
||||||
|
|
||||||
from legendary.models.game import InstalledGame, Game
|
from custom_legendary.models.game import InstalledGame, Game
|
||||||
|
|
||||||
|
|
||||||
_template = {
|
_template = {
|
||||||
|
|
|
@ -5,7 +5,7 @@ import struct
|
||||||
|
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
|
|
||||||
from legendary.models.manifest import (
|
from custom_legendary.models.manifest import (
|
||||||
Manifest, ManifestMeta, CDL, ChunkPart, ChunkInfo, FML, FileManifest, CustomFields
|
Manifest, ManifestMeta, CDL, ChunkPart, ChunkInfo, FML, FileManifest, CustomFields
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from legendary.utils.selective_dl import games
|
from custom_legendary.utils.selective_dl import games
|
||||||
|
|
||||||
|
|
||||||
def get_boolean_choice(prompt, default=True):
|
def get_boolean_choice(prompt, default=True):
|
||||||
|
|
|
@ -7,7 +7,7 @@ import logging
|
||||||
|
|
||||||
from typing import List, Iterator
|
from typing import List, Iterator
|
||||||
|
|
||||||
from legendary.models.game import VerifyResult
|
from custom_legendary.models.game import VerifyResult
|
||||||
|
|
||||||
logger = logging.getLogger('LFS Utils')
|
logger = logging.getLogger('LFS Utils')
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from legendary.models.manifest import Manifest
|
from custom_legendary.models.manifest import Manifest
|
||||||
|
|
||||||
|
|
||||||
def combine_manifests(base_manifest: Manifest, delta_manifest: Manifest):
|
def combine_manifests(base_manifest: Manifest, delta_manifest: Manifest):
|
||||||
|
|
|
@ -7,8 +7,8 @@ from hashlib import sha1
|
||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
from tempfile import TemporaryFile
|
from tempfile import TemporaryFile
|
||||||
|
|
||||||
from legendary.models.chunk import Chunk
|
from custom_legendary.models.chunk import Chunk
|
||||||
from legendary.models.manifest import \
|
from custom_legendary.models.manifest import \
|
||||||
Manifest, ManifestMeta, CDL, FML, CustomFields, FileManifest, ChunkPart, ChunkInfo
|
Manifest, ManifestMeta, CDL, FML, CustomFields, FileManifest, ChunkPart, ChunkInfo
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue