def insert_update_data(data, cache_time_delta=None): """Inserts new prased feed or updates existing parsed feed""" dt = get_datetime(time_delta=cache_time_delta) if Data.select().where( (Data.last_modified > dt) & (Data.identifier == data['identifier'])).exists(): row = Data.get( (Data.last_modified > dt) & (Data.identifier == data['identifier'])) result = update_data(row, data) elif Data.select().where( (Data.last_modified > dt) & (Data.rss_id == data['rss_id']) & (Data.description_hash == data['description_hash'])).exists(): row = Data.get( (Data.last_modified > dt) & (Data.rss_id == data['rss_id']) & (Data.description_hash == data['description_hash'])) result = update_data(row, data) else: result = insert_data(data) return result