(serverConfig: ServerVariables, parent)
| 223 | |
| 224 | |
| 225 | def backupSaves(serverConfig: ServerVariables, parent): |
| 226 | try: |
| 227 | readServerProperties(serverConfig) |
| 228 | levelName = serverConfig.serverProperties.get("level-name") |
| 229 | serverName = serverConfig.serverName |
| 230 | levelNameList = generateLevelNameList(serverName, levelName) |
| 231 | if levelNameList is not None: |
| 232 | if osp.exists(f"./MCSL2/BackupTemp_{serverConfig.serverName}/"): |
| 233 | rmtree(f"./MCSL2/BackupTemp_{serverConfig.serverName}/") |
| 234 | s = QFileDialog.getSaveFileName( |
| 235 | parent, |
| 236 | parent.tr("MCSL2 - 备份服务器存档"), |
| 237 | f"{serverConfig.serverName}_{levelName}_backup.zip", |
| 238 | parent.tr("Zip 压缩包 (*.zip)"), |
| 239 | )[0] |
| 240 | if s == "": |
| 241 | return |
| 242 | mkdir(f"./MCSL2/BackupTemp_{serverConfig.serverName}/") |
| 243 | for dir in levelNameList: |
| 244 | try: |
| 245 | copytree( |
| 246 | osp.abspath(f"./Servers/{serverConfig.serverName}/{dir}/"), |
| 247 | osp.abspath(f"./MCSL2/BackupTemp_{serverConfig.serverName}/{dir}/"), |
| 248 | ) |
| 249 | except FileNotFoundError: |
| 250 | levelNameList.remove(dir) |
| 251 | continue |
| 252 | existsDir = "\n".join(levelNameList) |
| 253 | tmpArchiveThread = MakeArchiveThread( |
| 254 | s.replace(".zip", ""), |
| 255 | "zip", |
| 256 | osp.abspath(f"./MCSL2/BackupTemp_{serverConfig.serverName}/"), |
| 257 | parent, |
| 258 | ) |
| 259 | tmpArchiveThread.successSignal.connect( |
| 260 | lambda: InfoBar.success( |
| 261 | title=parent.tr("备份完毕"), |
| 262 | content=parent.tr("已保存至 {s}。\n备份了以下文件夹:\n{existsDir}").format( |
| 263 | s=s, existsDir=existsDir |
| 264 | ), |
| 265 | orient=Qt.Horizontal, |
| 266 | isClosable=True, |
| 267 | position=InfoBarPosition.TOP, |
| 268 | duration=1500, |
| 269 | parent=parent, |
| 270 | ) |
| 271 | ) |
| 272 | tmpArchiveThread.successSignal.connect( |
| 273 | lambda: rmtree(osp.abspath(f"./MCSL2/BackupTemp_{serverConfig.serverName}/")) |
| 274 | ) |
| 275 | tmpArchiveThread.errorSignal.connect( |
| 276 | lambda: rmtree(osp.abspath(f"./MCSL2/BackupTemp_{serverConfig.serverName}/")) |
| 277 | ) |
| 278 | tmpArchiveThread.start() |
| 279 | else: |
| 280 | InfoBar.warning( |
| 281 | title=parent.tr("保存失败"), |
| 282 | content=parent.tr("代理服务端没有存档,无法保存"), |
no test coverage detected