def create(): """Creates db from model and executes sql script to fill tables""" Rss.create_table() Data.create_table() Tokenized.create_table() with open(SQL_SCRIPT) as f: for line in f: SQL_DB.execute_sql(line.strip())
def insert_update_tokenized(data): """Inserts or updates tokenized data""" if Tokenized.select().where( Tokenized.data_id == data['data_id']).exists(): row = Tokenized.get( Tokenized.data_id == data['data_id']) row.tokenized_count = data['tokenized_count'] row.tokenized_plain = data['tokenized_plain'] row.save() result = row.tokenized_id else: new_row = Tokenized() new_row.data_id = data['data_id'] new_row.tokenized_count = data['tokenized_count'] new_row.tokenized_plain = data['tokenized_plain'] new_row.save() result = new_row.tokenized_id return result
def get_descriptions(date_point=None, date_range=None): """Returns list of descriptions within given date range, from given date point""" if not date_point: date_point = datetime.datetime.now() if not date_range: date_range = datetime.timedelta(hours=12) dt = get_datetime(date_point, date_range) rows = Tokenized.select().join(Data).where( (Data.published <= date_point) & (Data.published >= dt)).order_by(Tokenized.data_id.desc()) result = QueryResult('data_id', 'name', 'title', 'published', 'data') for row in rows: result.add_bunch(data_id=row.data_id.data_id, name=row.data_id.rss_id.name, title=row.data_id.title, published=row.data_id.published.isoformat(), data=schema.deserialize_plain(str(row.tokenized_plain))) return result