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)
Beispiel #10
0
    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()
Beispiel #11
0
 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)
Beispiel #12
0
		def _setup_sqlalchemy(self):
			self.sa_session = db.db_session()
			self.sa_models = db