def add_banphrase(bot, source, message, event, args): """Dispatch method for creating and editing banphrases. Usage: !add banphrase BANPHRASE [options] Multiple options available: --length LENGTH --perma/--no-perma --notify/--no-notify """ if message: options, phrase = bot.banphrase_manager.parse_banphrase_arguments(message) if options is False: bot.whisper(source.username, 'Invalid banphrase') return False options['added_by'] = source.id banphrase, new_banphrase = bot.banphrase_manager.create_banphrase(phrase, **options) if new_banphrase is True: bot.whisper(source.username, 'Added your banphrase (ID: {banphrase.id})'.format(banphrase=banphrase)) return True banphrase.set(**options) DBManager.session_add_expunge(banphrase) bot.whisper(source.username, 'Updated your banphrase (ID: {banphrase.id}) with ({what})'.format(banphrase=banphrase, what=', '.join([key for key in options])))
def add_banphrase(self, **options): """Method for creating and editing banphrases. Usage: !add banphrase BANPHRASE [options] Multiple options available: --length LENGTH --perma/--no-perma --notify/--no-notify """ message = options['message'] bot = options['bot'] source = options['source'] if message: options, phrase = bot.banphrase_manager.parse_banphrase_arguments(message) if options is False: bot.whisper(source.username, 'Invalid banphrase') return False options['added_by'] = source.id options['edited_by'] = source.id banphrase, new_banphrase = bot.banphrase_manager.create_banphrase(phrase, **options) if new_banphrase is True: bot.whisper(source.username, 'Added your banphrase (ID: {banphrase.id})'.format(banphrase=banphrase)) return True banphrase.set(**options) banphrase.data.set(edited_by=options['edited_by']) DBManager.session_add_expunge(banphrase) bot.banphrase_manager.commit() bot.whisper(source.username, 'Updated your banphrase (ID: {banphrase.id}) with ({what})'.format(banphrase=banphrase, what=', '.join([key for key in options if key != 'added_by'])))
def create_stream_chunk(self, status): if self.current_stream_chunk is not None: # There's already a stream chunk started! self.current_stream_chunk.chunk_end = datetime.datetime.now() DBManager.session_add_expunge(self.current_stream_chunk) with DBManager.create_session_scope( expire_on_commit=False) as db_session: stream_chunk = db_session.query(StreamChunk).filter_by( broadcast_id=status['broadcast_id']).one_or_none() if stream_chunk is None: log.info('Creating stream chunk, from create_stream_chunk') stream_chunk = StreamChunk(self.current_stream, status['broadcast_id'], status['created_at']) self.current_stream_chunk = stream_chunk db_session.add(stream_chunk) db_session.commit() else: log.info('We already have a stream chunk!') self.current_stream_chunk = stream_chunk db_session.expunge_all() db_session.close() self.current_stream.stream_chunks.append(stream_chunk)
def refresh_video_url(self): if self.online is False: return if self.current_stream_chunk is None or self.current_stream is None: return log.info('Attempting to fetch video url for broadcast {0}'.format( self.current_stream_chunk.broadcast_id)) stream_chunk = self.current_stream_chunk if self.current_stream_chunk.video_url is None else None video_url, video_preview_image_url, video_recorded_at = self.fetch_video_url( stream_chunk) if video_url is not None: log.info('Successfully fetched a video url: {0}'.format(video_url)) if self.current_stream_chunk is None or self.current_stream_chunk.video_url is None: with DBManager.create_session_scope( expire_on_commit=False) as db_session: self.current_stream_chunk.video_url = video_url self.current_stream_chunk.video_preview_image_url = video_preview_image_url db_session.add(self.current_stream_chunk) db_session.commit() db_session.expunge_all() log.info('Successfully commited video url data.') elif self.current_stream_chunk.video_url != video_url: # End current stream chunk self.current_stream_chunk.chunk_end = datetime.datetime.now() DBManager.session_add_expunge(self.current_stream_chunk) with DBManager.create_session_scope( expire_on_commit=False) as db_session: stream_chunk = StreamChunk( self.current_stream, self.current_stream_chunk.broadcast_id, video_recorded_at) self.current_stream_chunk = stream_chunk self.current_stream_chunk.video_url = video_url self.current_stream_chunk.video_preview_image_url = video_preview_image_url db_session.add(self.current_stream_chunk) db_session.commit() db_session.expunge_all() log.info( 'Successfully commited video url data in a new chunk.') else: log.info('Not video for broadcast found')
def refresh_video_url(self): if self.online is False: return if self.current_stream_chunk is None or self.current_stream is None: return log.info('Attempting to fetch video url for broadcast {0}'.format(self.current_stream_chunk.broadcast_id)) stream_chunk = self.current_stream_chunk if self.current_stream_chunk.video_url is None else None video_url, video_preview_image_url, video_recorded_at = self.fetch_video_url(stream_chunk) if video_url is not None: log.info('Successfully fetched a video url: {0}'.format(video_url)) if self.current_stream_chunk is None or self.current_stream_chunk.video_url is None: with DBManager.create_session_scope(expire_on_commit=False) as db_session: self.current_stream_chunk.video_url = video_url self.current_stream_chunk.video_preview_image_url = video_preview_image_url db_session.add(self.current_stream_chunk) db_session.commit() db_session.expunge_all() log.info('Successfully commited video url data.') elif self.current_stream_chunk.video_url != video_url: # End current stream chunk self.current_stream_chunk.chunk_end = datetime.datetime.now() DBManager.session_add_expunge(self.current_stream_chunk) with DBManager.create_session_scope(expire_on_commit=False) as db_session: stream_chunk = StreamChunk(self.current_stream, self.current_stream_chunk.broadcast_id, video_recorded_at) self.current_stream_chunk = stream_chunk self.current_stream_chunk.video_url = video_url self.current_stream_chunk.video_preview_image_url = video_preview_image_url db_session.add(self.current_stream_chunk) db_session.commit() db_session.expunge_all() log.info('Successfully commited video url data in a new chunk.') else: log.info('Not video for broadcast found')
def create_stream_chunk(self, status): if self.current_stream_chunk is not None: # There's already a stream chunk started! self.current_stream_chunk.chunk_end = datetime.datetime.now() DBManager.session_add_expunge(self.current_stream_chunk) with DBManager.create_session_scope(expire_on_commit=False) as db_session: stream_chunk = db_session.query(StreamChunk).filter_by(broadcast_id=status['broadcast_id']).one_or_none() if stream_chunk is None: log.info('Creating stream chunk, from create_stream_chunk') stream_chunk = StreamChunk(self.current_stream, status['broadcast_id'], status['created_at']) self.current_stream_chunk = stream_chunk db_session.add(stream_chunk) db_session.commit() else: log.info('We already have a stream chunk!') self.current_stream_chunk = stream_chunk db_session.expunge_all() db_session.close() self.current_stream.stream_chunks.append(stream_chunk)
def add_banphrase(bot, source, message, event, args): """Dispatch method for creating and editing banphrases. Usage: !add banphrase BANPHRASE [options] Multiple options available: --length LENGTH --perma/--no-perma --notify/--no-notify """ if message: options, phrase = bot.banphrase_manager.parse_banphrase_arguments( message) if options is False: bot.whisper(source.username, 'Invalid banphrase') return False options['added_by'] = source.id banphrase, new_banphrase = bot.banphrase_manager.create_banphrase( phrase, **options) if new_banphrase is True: bot.whisper( source.username, 'Added your banphrase (ID: {banphrase.id})'.format( banphrase=banphrase)) return True banphrase.set(**options) DBManager.session_add_expunge(banphrase) bot.whisper( source.username, 'Updated your banphrase (ID: {banphrase.id}) with ({what})'. format(banphrase=banphrase, what=', '.join([key for key in options])))
def edit_command(self, command_to_edit, **options): command_to_edit.set(**options) command_to_edit.data.set(**options) DBManager.session_add_expunge(command_to_edit) self.commit()
def edit_command(self, command_to_edit, **options): command_to_edit.set(**options) DBManager.session_add_expunge(command_to_edit)
def edit_command(self, command, **options): command.set(**options) DBManager.session_add_expunge(command)