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)
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)
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)
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)
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
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)
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)
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
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
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)