예제 #1
0
    def UpdateEvernotebooks(self, enNotebookList: Sequence[Types.Notebook]):
        '''
            更新印象笔记的 笔记本
        '''
        # 创建session对象:
        session = self.DBSession()

        # 清空表
        session.query(ENDBTypes.Notebook).delete()

        for enNotebook in enNotebookList:
            dbNotebook = ENDBTypes.Notebook(
                guid=enNotebook.guid,
                name=enNotebook.name,
                updateSequenceNum=enNotebook.updateSequenceNum,
                defaultNotebook=enNotebook.defaultNotebook,
                serviceCreated=enNotebook.serviceCreated,
                serviceUpdated=enNotebook.serviceUpdated,
                published=enNotebook.published,
                stack=enNotebook.stack,
            )
            session.add(dbNotebook)

        # 提交修改
        session.commit()

        # 关闭数据库
        session.close()
예제 #2
0
    def UpdateYuqueBooks(self, booklist: Sequence[BookSerializer]):
        '''
            更新印象笔记的 笔记本
        '''
        # 创建session对象:
        session = self.DBSession()

        # 清空表
        session.query(YQDBTypes.YuqueBook).delete()

        for book in booklist:
            dbNotebook = YQDBTypes.YuqueBook(
                id=book.id,
                type=book.type,
                slug=book.slug,
                name=book.name,
                namespace=book.namespace,
                user_id=book.user_id,
                description=book.description,
                creator_id=book.creator_id,
                public=book.public,
                likes_count=book.likes_count,
                watches_count=book.watches_count,
                created_at=book.created_at,
                updated_at=book.updated_at,
            )
            session.add(dbNotebook)

        # 提交修改
        session.commit()

        # 关闭数据库
        session.close()

        return
예제 #3
0
    def UpdateYuqueEvernoteBookMap(
            self, bookmapList: Sequence[SNTypes.SystemConfig.SyncBookMap]):
        # 创建session对象:
        session = self.DBSession()

        # 清空原有的对应关系
        session.query(DBOTyping.YuqueEvernoteBookMap).delete()

        for bookmap in bookmapList:
            res = session.query(ENDBTypes.Notebook) \
                .filter(ENDBTypes.Notebook.name == bookmap.evernoteBook).first()
            evernoteNoteBookGuid = res.guid
            res = session.query(YQDBTypes.YuqueBook) \
                .filter(YQDBTypes.YuqueBook.name == bookmap.yuqueBook).first()
            yuqueBookNamespace = res.namespace

            dbmap = DBOTyping.YuqueEvernoteBookMap(
                evernoteNoteBookGuid=evernoteNoteBookGuid,
                yuqueBookNamespace=yuqueBookNamespace,
            )
            session.add(dbmap)

        # 提交修改
        session.commit()

        # 关闭数据库
        session.close()
예제 #4
0
    def SaveEvernoteLocalUSN(self, localUSN: int):
        session = self.DBSession()
        # 更新USN
        session.query(ENDBTypes.SyncState).delete()
        syncState = ENDBTypes.SyncState(updateCount=localUSN)
        session.add(syncState)

        # 提交修改
        session.commit()
        session.close()
예제 #5
0
    def InsertEvernoteData(self, noteList: Sequence[Types.Note]):
        if noteList is None:
            return

        session = self.DBSession()

        for note in noteList:
            # 如果是有效数据 才记录到数据库中,不然就删除
            dbNote = ENDBTypes.Note(
                guid=note.guid,
                title=note.title,
                content=note.content,
                # contentHash=note.contentHash,
                contentLength=note.contentLength,
                created=note.created,
                updated=note.updated,
                deleted=note.deleted,
                active=note.active,
                updateSequenceNum=note.updateSequenceNum,
                notebookGuid=note.notebookGuid,
                # tagGuids=note.tagGuids,
                # resources=note.resources,
                # attributes=note.attributes,
                # tagNames=note.tagNames,
                syncToYuque=False,
                downloaded=False)
            # 删除原有的
            session.query(ENDBTypes.Note).filter(
                ENDBTypes.Note.guid == note.guid).delete()

            # 添加新数据
            session.add(dbNote)

            # 更新USN
            session.query(ENDBTypes.SyncState).delete()
            syncState = ENDBTypes.SyncState(updateCount=note.updateSequenceNum)
            session.add(syncState)

        # 提交修改
        session.commit()
        session.close()