Пример #1
0
 def add_barrages(barrages, cid):
     video = VideoDao.get_video_by_cid(cid)
     if video is None:
         return False
     # 批量存储数据库记录。
     session = DBUtil.open_session()
     try:
         for barrage in barrages:
             b = Barrage(row_id=barrage[7],
                         play_timestamp=barrage[0],
                         type=barrage[1],
                         font_size=barrage[2],
                         font_color=barrage[3],
                         unix_timestamp=barrage[4],
                         pool=barrage[5],
                         sender_id=barrage[6],
                         content=barrage[8],
                         video=video)
             # b.video = video
             session.merge(b)
         session.commit()
         return True
     except Exception as e:
         print e
         session.rollback()
         return False
     finally:
         DBUtil.close_session(session)
Пример #2
0
 def add_barrage(play_timestamp, type, font_size, font_color,
                 unix_timestamp, pool, sender_id, row_id, content, cid):
     video = VideoDao.get_video_by_cid(cid)
     if video is None:
         return False
     barrage = Barrage(play_timestamp=play_timestamp,
                       type=type,
                       font_size=font_size,
                       font_color=font_color,
                       unix_timestamp=unix_timestamp,
                       pool=pool,
                       sender_id=sender_id,
                       row_id=row_id,
                       content=content,
                       video=video)
     # barrage.video = video  # bug 在这里就无法将video外键信息写入。
     print barrage.content  # 调试信息
     session = DBUtil.open_session()
     try:
         session.add(barrage)
         session.commit()
         return True
     except Exception as e:
         print e
         session.rollback()
         return False
     finally:
         DBUtil.close_session(session)
Пример #3
0
 def get_all_barrages_by_cid(cid, order_flag=False):
     session = DBUtil.open_session()
     try:
         barrages = session.query(Barrage).filter(Barrage.video_cid == cid).all()
         return sort_barrages(barrages, order_flag)
     except Exception as e:
         print e
         session.rollback()
         return False
     finally:
         DBUtil.close_session(session)
Пример #4
0
 def get_all_barrages_by_cid(cid, order_flag=False):
     session = DBUtil.open_session()
     try:
         barrages = session.query(Barrage).filter(
             Barrage.video_cid == cid).all()
         return sort_barrages(barrages, order_flag)
     except Exception as e:
         print e
         session.rollback()
         return False
     finally:
         DBUtil.close_session(session)
Пример #5
0
 def get_video_by_cid(cid):
     if cid is None:
         return None
     session = DBUtil.open_session()
     # 根据主键查询
     video_query = session.query(Video).filter(Video.cid == cid)
     if video_query.count() <= 0:
         DBUtil.close_session(session)
         return None
     else:
         video_info = video_query.one()
         DBUtil.close_session(session)
         return video_info
Пример #6
0
 def get_video_by_cid(cid):
     if cid is None:
         return None
     session = DBUtil.open_session()
     # 根据主键查询
     video_query = session.query(Video).filter(Video.cid == cid)
     if video_query.count() <= 0:
         DBUtil.close_session(session)
         return None
     else:
         video_info = video_query.one()
         DBUtil.close_session(session)
         return video_info
Пример #7
0
 def add_video(cid, title, tags, aid, url):
     print "video info before"
     print cid, title, tags, aid, url
     video_info = Video(cid=cid, title=title, tags=tags, aid=aid, url=url)
     print "video info after"
     session = DBUtil.open_session()
     try:
         session.add(video_info)
         session.commit()
         return True
     except Exception as e:
         print e
         session.rollback()
         return False
     finally:
         DBUtil.close_session(session)
Пример #8
0
 def add_video(cid, title, tags, aid, url):
     print "video info before"
     print cid, title, tags, aid, url
     video_info = Video(cid=cid, title=title, tags=tags, aid=aid, url=url)
     print "video info after"
     session = DBUtil.open_session()
     try:
         session.add(video_info)
         session.commit()
         return True
     except Exception as e:
         print e
         session.rollback()
         return False
     finally:
         DBUtil.close_session(session)
Пример #9
0
 def add_video(cid, title, tags, metakeywords, aid, url, season_id=None, season_index=None):
     video_info = Video(cid=cid, title=title, tags=tags, metakeywords=metakeywords, aid=aid, url=url)
     if (season_id is not None) and (season_index is not None):
         video_info.xinfan = XinFanDao.get_xinfan_by_season_id(season_id)
         video_info.season_index = season_index
     session = DBUtil.open_session()
     try:
         session.merge(video_info)
         session.commit()
         return True
     except Exception as e:
         print e
         session.rollback()
         return False
     finally:
         DBUtil.close_session(session)
Пример #10
0
 def add_barrage(play_timestamp, type, font_size, font_color, unix_timestamp, pool, sender_id, row_id, content, cid):
     video = VideoDao.get_video_by_cid(cid)
     if video is None:
         return False
     barrage = Barrage(play_timestamp=play_timestamp, type=type, font_size=font_size, font_color=font_color,
                       unix_timestamp=unix_timestamp, pool=pool, sender_id=sender_id,
                       row_id=row_id, content=content, video=video)
     # barrage.video = video  # bug 在这里就无法将video外键信息写入。
     print barrage.content  # 调试信息
     session = DBUtil.open_session()
     try:
         session.add(barrage)
         session.commit()
         return True
     except Exception as e:
         print e
         session.rollback()
         return False
     finally:
         DBUtil.close_session(session)
Пример #11
0
 def add_barrages(barrages, cid):
     video = VideoDao.get_video_by_cid(cid)
     if video is None:
         return False
     # 批量存储数据库记录。
     session = DBUtil.open_session()
     try:
         for barrage in barrages:
             b = Barrage(row_id=barrage[7], play_timestamp=barrage[0], type=barrage[1], font_size=barrage[2],
                         font_color=barrage[3], unix_timestamp=barrage[4], pool=barrage[5], sender_id=barrage[6],
                         content=barrage[8], video=video)
             # b.video = video
             session.merge(b)
         session.commit()
         return True
     except Exception as e:
         print e
         session.rollback()
         return False
     finally:
         DBUtil.close_session(session)
Пример #12
0
class VideoDao(DBUtil):
    # 初始化数据库的相关信息。
    DBUtil.init_db()

    @staticmethod
    def add_video(cid, title, tags, aid, url):
        print "video info before"
        print cid, title, tags, aid, url
        video_info = Video(cid=cid, title=title, tags=tags, aid=aid, url=url)
        print "video info after"
        session = DBUtil.open_session()
        try:
            session.add(video_info)
            session.commit()
            return True
        except Exception as e:
            print e
            session.rollback()
            return False
        finally:
            DBUtil.close_session(session)

    @staticmethod
    def get_video_by_cid(cid):
        if cid is None:
            return None
        session = DBUtil.open_session()
        # 根据主键查询
        video_query = session.query(Video).filter(Video.cid == cid)
        if video_query.count() <= 0:
            DBUtil.close_session(session)
            return None
        else:
            video_info = video_query.one()
            DBUtil.close_session(session)
            return video_info
Пример #13
0
class VideoDao(DBUtil):
    # 初始化数据库的相关信息。
    DBUtil.init_db()

    @staticmethod
    def add_video(cid, title, tags, metakeywords, aid, url, season_id=None, season_index=None):
        video_info = Video(cid=cid, title=title, tags=tags, metakeywords=metakeywords, aid=aid, url=url)
        if (season_id is not None) and (season_index is not None):
            video_info.xinfan = XinFanDao.get_xinfan_by_season_id(season_id)
            video_info.season_index = season_index
        session = DBUtil.open_session()
        try:
            session.merge(video_info)
            session.commit()
            return True
        except Exception as e:
            print e
            session.rollback()
            return False
        finally:
            DBUtil.close_session(session)

    @staticmethod
    def get_video_by_aid(aid):
        if aid is None:
            return None
        session = DBUtil.open_session()
        # 根据主键查询
        video_query = session.query(Video).filter(Video.aid == aid)
        if video_query.count() <= 0:
            DBUtil.close_session(session)
            return None
        else:
            video_info = video_query.one()
            DBUtil.close_session(session)
            return video_info
Пример #14
0
class BarrageDao(object):
    # 初始化数据库的相关信息。
    DBUtil.init_db()
    """
    barrages: [(,,,,,,,), (,,,,,,,).....]
    cid: barrage对应的cid信息
    """
    @staticmethod
    def add_barrages(barrages, cid):
        video = VideoDao.get_video_by_cid(cid)
        if video is None:
            return False
        # 批量存储数据库记录。
        session = DBUtil.open_session()
        try:
            for barrage in barrages:
                b = Barrage(row_id=barrage[7],
                            play_timestamp=barrage[0],
                            type=barrage[1],
                            font_size=barrage[2],
                            font_color=barrage[3],
                            unix_timestamp=barrage[4],
                            pool=barrage[5],
                            sender_id=barrage[6],
                            content=barrage[8],
                            video=video)
                # b.video = video
                session.merge(b)
            session.commit()
            return True
        except Exception as e:
            print e
            session.rollback()
            return False
        finally:
            DBUtil.close_session(session)

    @staticmethod
    def add_barrage(play_timestamp, type, font_size, font_color,
                    unix_timestamp, pool, sender_id, row_id, content, cid):
        video = VideoDao.get_video_by_cid(cid)
        if video is None:
            return False
        barrage = Barrage(play_timestamp=play_timestamp,
                          type=type,
                          font_size=font_size,
                          font_color=font_color,
                          unix_timestamp=unix_timestamp,
                          pool=pool,
                          sender_id=sender_id,
                          row_id=row_id,
                          content=content,
                          video=video)
        # barrage.video = video  # bug 在这里就无法将video外键信息写入。
        print barrage.content  # 调试信息
        session = DBUtil.open_session()
        try:
            session.add(barrage)
            session.commit()
            return True
        except Exception as e:
            print e
            session.rollback()
            return False
        finally:
            DBUtil.close_session(session)

    # 查询出cid对应的所有的barrage
    # order_flag:True 按照play_timestamp降序排列
    # order_flag:False 按照play_timestamp升序排列
    @staticmethod
    def get_all_barrages_by_cid(cid, order_flag=False):
        session = DBUtil.open_session()
        try:
            barrages = session.query(Barrage).filter(
                Barrage.video_cid == cid).all()
            return sort_barrages(barrages, order_flag)
        except Exception as e:
            print e
            session.rollback()
            return False
        finally:
            DBUtil.close_session(session)