Exemple #1
0
def processFile(manager, archiveDir, filePath):
    size = os.path.getsize(filePath)
    md5 = file_utils.getMd5(filePath)

    shouldArchive = True
    records = manager.queryBySize(size)
    if len(records) != 0:
        # 已归档目录中包含大小相同的文件,进一步判断是否同一文件
        for record in records:
            # 判断数据库中的记录是否有效,归档文件是否未被删除等
            recorePath = f'{archiveDir}/{record.path}'
            fileExists = os.path.exists(recorePath)
            if fileExists:
                fileSize = os.path.getsize(recorePath)
            else:
                fileSize = -1

            if fileExists and fileSize == record.size:
                # 记录有效, 根据 md5 判断是否同一文件
                if md5 == record.md5:
                    shouldArchive = False
                    log.log(
                        f'{filePath} is already archived, size={size}, md5={md5}'
                    )
                    break
            else:
                # 记录无效,删除数据库记录
                log.failure(f'delete invalid record, path={recorePath}')
                manager.deleteRecord(record)

    if shouldArchive:
        doArchive(manager, archiveDir, filePath, size, md5)
Exemple #2
0
def main():
    config = Config.loadConfig('config.ini')
    ensureArchiveDir(config.archiveDir)
    manager = DatabaseManager.createManager(config.archiveDir)
    manager.connectDB()
    for dirpath, dirnames, filenames in os.walk(config.inputDir):
        for filename in filenames:
            try:
                filePath = os.path.join(dirpath, filename)
                extension = os.path.splitext(filePath)[1].strip().strip('.')
                if len(extension) == 0:
                    log.warning(f'skip unknown file: {filePath}')
                elif file_utils.isImage(extension) or file_utils.isVideo(
                        extension):
                    processFile(manager, config.archiveDir, filePath)
                else:
                    log.warning(f'skip unsupported file: {filePath}')
            except Exception as e:
                log.failure(f'Unexpected error: {e}')
    manager.closeDB()
Exemple #3
0
def eventBattle(player):
    print("Woaw ! An ennemy ship is here. Get ready for battle !")
    # generate ennemy ship
    ennemy = character.Character(5 * player._level, 1 * player._level, 5 * player._level, 0, 0, 10, 0, 1, "ennemy")
    # Fight !
    turn = 0
    while ennemy._life != 0 and player._life != 0:
        order = input("What do you want to do ? [fight - escape - status] \n >>>")
        if order == "fight":
            if turn % 2 == 0:  # player's turn
                ennemy.getDamages(player.dealtDamages())
            else:
                player.getDamages(ennemy.dealtDamages())
        elif order == "escape":
            rand_event = random.randint(1, 3)
            if rand_event == 2:
                log.success("Escaping suceeded !")
                return True
            else:
                log.failure("failed escape")
                player.getDamages(ennemy.dealtDamages())
        elif order == "status":
            player.status()
            ennemy.status()

        turn = turn + 1

    if ennemy._life == 0 and player._life != 0:
        log.success("You defeated the ennemy !")
        player.earnXP(10)
        player.earnCredits(10)
        player.levelUp()
        return True
    elif player._life == 0 and ennemy._life != 0:
        log.failure("You've been defeated !")
        return False
    else:
        log.debug("Should not happen")
        return False
Exemple #4
0
player = character.Character()
menu.menu(player)
random.seed(); # random event

order = "go"
success = True
# DAEMON
os.system('cls')
utils.printFile("text/intro")

while player._life > 0 and order!="quit":
	order = input("What do you want to do ? [move - repare - status - save - load - quit]\n >>> ")

	if order == "move":
		if player.isEnergyEmpty():
			log.failure("You have no more energy. You will die alone, drifting in space")
			event.gameOver()
			break;
		else:
			player._energy = player._energy-1
			rand_event = random.randint(1,3)
			if rand_event == 1:
				success = event.eventNothing()
			elif rand_event == 2:
				success = event.eventBattle(player)
			else:
				success = event.eventSpaceStation(player)
	elif order == "repare":
		choice = input("How much energy to you want to consumme for charging shield ? \n >>> ")
		if utils.isInt(choice):
			if player._energy - int(choice) >= 0:
Exemple #5
0
def gameOver():
    log.failure("It's game over, man ! Game Over !")