def create_feed(name, session=None): """ Return the named feed """ local_session = None created = None feed = None if not session: local_session = db_session() else: local_session = session feed = retrieve_feed(name, local_session) if feed: return (True, feed) try: feed = Feed(title=name) local_session.add(feed) local_session.commit() created = True except Exception as e: print "Got exception {0}".format(e) feed = None local_session.rollback() finally: if not session: local_session.close() return (created, feed)
def get_feed(name, root=None): """ Query the engine on the feed and return the subfeeds if they exist """ retrieved = None result_string = None session = None a_feed = None try: session = db_session() a_feed = retrieve_feed(name, session) if a_feed: jsonified_feeds = _jsonify_feed(a_feed, root=root) retrieved = True result_string = json.dumps(jsonified_feeds, sort_keys=True, indent=4, separators=(',', ': ')) except Exception as e: print e if not session: result_string = "Probably could not initiate session" elif a_feed: result_string = "Another problem encounter with feed {0}".format(a_feed) else: result_string = "Another problem encounter, session was {0}".format(session.info) retrieved = True finally: if session: session.close() return (retrieved, result_string)
def get_rss_feeds(atom_feed, root=None): """ Return the result set in RSS format """ dt = datetime.datetime.utcnow() session = db_session() url_root = '' retrieved = None if root: url_root = root+'static/' result_set = session.query(Feed) if result_set: retrieved = True for feed in result_set: content = None if feed.database_source: content = "database:{0},table:{1}".format(feed.database_source, feed.table_name) else: content = feed.root_url or feed.root_dir atom_feed.add(feed.title, content=content, url=url_root+feed.items_url, updated=feed.mod_time, published=feed.pub_time, id=feed.feed_uuid) session.close() return (retrieved, atom_feed)
def serve_image(): connection = db_session() if request.method == 'POST': username = request.form['user'] result = connection.query(Entry).filter(Entry.name == username).first() if result is None: return ({"filepath": "", "status": False}) print(result) filepath = result.filepath.rsplit("/", 3) filepath = filepath[-1] return ({"filepath": "/static/files/augmented" + filepath, "status": True})
def browser_upload(): connection = db_session() if request.method == 'POST': f = request.files['file'] user = request.form['user'] filePath = './static/files/' + f.filename augPath = './static/files/augmented' + f.filename f.save(filePath) results = driver(filePath) results[0].save(augPath) connection = db_session() if (connection.query(Entry).filter(Entry.filepath == filePath).first() is None): newFile = Entry(user, filePath, results[1]) connection.add(newFile) connection.commit() #print(filePath) return {"status": True, "score": results[1], "filepath": augPath[1:]} else: return render_template('index.html')
def get_feeds(root=None): """ Return all of the feeds """ session = db_session() feed_list = list() retrieved = None result_string = None for feed in session.query(Feed): feed_list.append(_jsonify_feed(feed, root=root)) if len(feed_list) > 0: retrieved = True result_string = json.dumps(feed_list, sort_keys=True, indent=4, separators=(',', ': ')) session.close() return (retrieved, result_string)
def get_results(): connection = db_session() results = connection.query(Entry).\ order_by(Entry.score) Dict = {} if (results.count() >= 10): for i in range(0, 10): Dict[i] = {"username": results[i].name, "score": results[i].score} print(Dict) else: counter = 0 for i in range(results.count()): Dict[i] = {"username": results[i].name, "score": results[i].score} counter += 1 for i in range(counter, 10): Dict[i] = {"username": "", "score": -1} return (Dict)
def destroy_feed(name): """ Destroy the given feed. """ session = db_session() a_feed = retrieve_feed(name, session) result_string = None if a_feed: try: session.delete(a_feed) session.commit() result_string = json.jsonify(result="destroyed_feed", target=name) except Exception as e: session.rollback() finally: session.close() return result_string return result_string
def update_feed(feed_params, session=None): """ Updates the feed object described by feed_params Arguments: feed_params: string json formatted string that describes the parameters of the feed object to create. session: sqlalchemy.orm.session.Session will be the session object to interact with the database """ local_session = None created = None feed = None if not session: local_session = db_session() else: local_session = session try: feed = Feed(**feed_params) existing_feed = local_session.query(Feed).filter(Feed.title == feed.title).first() if existing_feed: update_param = dict() print "Updating feed {0}".format(existing_feed) for key, value in feed_params.iteritems(): if key != 'pub_time' and key != 'feed_uuid': update_param[key] = value elif key == 'pub_time': update_param[key] = existing_feed.pub_time else: update_param[key] = existing_feed.feed_uuid print update_param local_session.query(Feed).filter(Feed.title == feed.title).update(update_param) else: local_session.merge(feed) local_session.commit() created = True except Exception as e: print "Got exception {0}".format(e) feed = None local_session.rollback() finally: if not session: local_session.close() return (created, feed)
def wrapper(*args, **kwargs): db_session = db.db_session() session_ = session.Session( session_name=APPLICATION_NAME, server_session=session.ServerSession(db_session, db), bottle=bottle) if session_.is_valid(): session_id = session_.update(secure=False) bottle.request.session = session_id else: session_id = session_.create(secure=False) bottle.request.session = session_id id(bottle.request) try: kwargs[app.config['session.keyword']] = session_id return fn(*args, **kwargs) except: db_session.rollback() raise db_session.close()
def wrapper(*args, **kwargs): db_session = db.db_session() kwargs[app.config['db.keyword']] = db_session kwargs[app.config['db_models.keyword']] = db return fn(*args, **kwargs)
def _setup_sqlalchemy(self): self.sa_session = db.db_session() self.sa_models = db