From 829b2f9bc288a3a044212cb9fbd6c68ba9d38e98 Mon Sep 17 00:00:00 2001 From: lifegpc Date: Mon, 6 Sep 2021 21:40:13 +0800 Subject: [PATCH] minor bug fix --- game_backuper/backuper.py | 2 ++ game_backuper/db.py | 2 ++ game_backuper/leveldb.py | 10 +++++----- game_backuper/main.py | 4 ++++ 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/game_backuper/backuper.py b/game_backuper/backuper.py index 2fdfdd0..defd185 100644 --- a/game_backuper/backuper.py +++ b/game_backuper/backuper.py @@ -47,6 +47,8 @@ class BackupTask(Thread): from game_backuper.leveldb import have_leveldb if not have_leveldb: raise ValueError('Leveldb is not supported.') + if not exists(f.full_path): + continue from game_backuper.leveldb import ( list_leveldb_entries, leveldb_stats, diff --git a/game_backuper/db.py b/game_backuper/db.py index 7f6ed1c..73df339 100644 --- a/game_backuper/db.py +++ b/game_backuper/db.py @@ -52,6 +52,8 @@ class Db: self.__write_version() if 'files' not in self._exist_table: self.db.execute(FILES_TABLE) + if 'filetype' not in self._exist_table: + self.db.execute(FILETYPE_TABLE) self.db.commit() def __init__(self, loc: str): diff --git a/game_backuper/leveldb.py b/game_backuper/leveldb.py index 0991c94..a7ef6ba 100644 --- a/game_backuper/leveldb.py +++ b/game_backuper/leveldb.py @@ -1,16 +1,16 @@ try: from plyvel import DB have_leveldb = True - from typing import List - from hashlib import sha512 - from base64 import b85encode - from collections import namedtuple - from sqlite3 import connect except ImportError: have_leveldb = False if have_leveldb: + from typing import List + from hashlib import sha512 + from base64 import b85encode + from collections import namedtuple + from sqlite3 import connect LeveldbStats = namedtuple('LeveldbStats', ['hash', 'size']) MAP_TABLE = '''CREATE TABLE map ( key TEXT, diff --git a/game_backuper/main.py b/game_backuper/main.py index 6a3f1e2..b752e82 100644 --- a/game_backuper/main.py +++ b/game_backuper/main.py @@ -2,6 +2,8 @@ from game_backuper.config import Config from game_backuper.cml import Opts from game_backuper.db import Db from game_backuper.backuper import Backuper +from os import makedirs +from os.path import exists def main(cm=None): @@ -10,6 +12,8 @@ def main(cm=None): cm = sys.argv[1:] cml = Opts(cm) cfg = Config(cml.config_file) + if not exists(cfg.dest): + makedirs(cfg.dest) db = Db(cfg.dest) bk = Backuper(db, cfg, cml) return bk.run()