MCPcopy Create free account
hub / github.com/MCSLTeam/MCSL2 / backupSaves

Function backupSaves

MCSL2Lib/ServerControllers/serverUtils.py:225–294  ·  view source on GitHub ↗
(serverConfig: ServerVariables, parent)

Source from the content-addressed store, hash-verified

223
224
225def 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("代理服务端没有存档,无法保存"),

Callers 2

scrollAreaProcessorMethod · 0.90
initSlotsMethod · 0.90

Calls 8

readServerPropertiesFunction · 0.85
generateLevelNameListFunction · 0.85
MakeArchiveThreadClass · 0.85
removeMethod · 0.80
successMethod · 0.80
warningMethod · 0.80
getMethod · 0.45
startMethod · 0.45

Tested by

no test coverage detected