mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-07-01 12:40:31 +12:00
0f68c24b84
Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
98 lines
2.8 KiB
Python
98 lines
2.8 KiB
Python
#!/usr/bin/env python
|
|
# --!-- coding: utf8 --!--
|
|
|
|
import os
|
|
|
|
from zipfile import BadZipFile
|
|
from manuskript.data.version import Version, CURRENT_MSK_VERSION
|
|
from manuskript.data.info import Info
|
|
from manuskript.data.summary import Summary
|
|
from manuskript.data.labels import LabelHost
|
|
from manuskript.data.status import StatusHost
|
|
from manuskript.data.settings import Settings
|
|
from manuskript.data.characters import Characters
|
|
from manuskript.data.plots import Plots
|
|
from manuskript.data.world import World
|
|
from manuskript.data.outline import Outline
|
|
from manuskript.data.revisions import Revisions
|
|
from manuskript.io.mskFile import MskFile
|
|
|
|
|
|
class Project:
|
|
|
|
def __init__(self, path):
|
|
self.file = MskFile(path)
|
|
|
|
self.version = Version(self.file.dir_path)
|
|
self.info = Info(self.file.dir_path)
|
|
self.summary = Summary(self.file.dir_path)
|
|
self.labels = LabelHost(self.file.dir_path)
|
|
self.statuses = StatusHost(self.file.dir_path)
|
|
self.settings = Settings(self.file.dir_path)
|
|
self.characters = Characters(self.file.dir_path)
|
|
self.plots = Plots(self.file.dir_path, self.characters)
|
|
self.world = World(self.file.dir_path)
|
|
self.outline = Outline(self.file.dir_path, self.plots, self.labels, self.statuses)
|
|
self.revisions = Revisions(self.file.dir_path)
|
|
|
|
def __del__(self):
|
|
del self.file
|
|
|
|
def getName(self):
|
|
parts = os.path.split(self.file.path)
|
|
name = parts[-1]
|
|
|
|
if name.endswith('.msk'):
|
|
name = name[:-4]
|
|
|
|
return name
|
|
|
|
def getVersion(self) -> int:
|
|
return self.version.value
|
|
|
|
def canUpgradeVersion(self) -> bool:
|
|
return self.version.value < CURRENT_MSK_VERSION
|
|
|
|
def upgradeVersion(self):
|
|
self.version.value = CURRENT_MSK_VERSION
|
|
|
|
def load(self):
|
|
try:
|
|
self.file.load()
|
|
except BadZipFile or FileNotFoundError:
|
|
return
|
|
|
|
self.version.load()
|
|
self.info.load()
|
|
self.summary.load()
|
|
self.labels.load()
|
|
self.statuses.load()
|
|
self.settings.load()
|
|
self.characters.load()
|
|
self.plots.load()
|
|
self.world.load()
|
|
self.outline.load()
|
|
self.revisions.load()
|
|
|
|
self.file.setZipFile(self.settings.isEnabled("saveToZip"))
|
|
|
|
def save(self):
|
|
saveToZip = self.settings.isEnabled("saveToZip")
|
|
|
|
self.file.setZipFile(saveToZip)
|
|
self.file.setVersion(self.version.value)
|
|
|
|
self.version.save()
|
|
self.info.save()
|
|
self.summary.save()
|
|
self.labels.save()
|
|
self.statuses.save()
|
|
self.settings.save()
|
|
self.characters.save()
|
|
self.plots.save()
|
|
self.world.save()
|
|
self.outline.save()
|
|
#self.revisions.save()
|
|
|
|
self.file.save(saveToZip)
|