def load_redis_engine(): redis_url = urlparse.urlparse(settings.REDISTOGO_URL) if redis_url.scheme == "redis": engine = RedisEngine(host=redis_url.hostname, port=redis_url.port, password=redis_url.password) try: info = engine.client.info() if "db0" in info: nb_keys = info["db0"]["keys"] else: nb_keys = 0 print "Conn. Redis server, %s keys stored." % nb_keys return engine except ConnectionError: if settings.DEBUG: raise ConnectionError("Redis Server is not reachable.") else: return None else: if settings.DEBUG: raise RedisError("Redis Server '%s' URL is not valid." % settings.REDISTOGO_URL) else: return None
def loadumls(): engine = RedisEngine(prefix='umls') data = pd.read_csv("../umls/[email protected]") df = pd.DataFrame(data) df_dictarr = df.to_dict('records') for item in df_dictarr: # print item['value'] # id, search phrase, data engine.store_json(item['value'], item['label'], { 'label': item['label'], 'value': item['value'] })
import os import json import bson import pymongo from pymongo import Connection import urllib2 from redis_completion import RedisEngine import urlparse import redis url = urlparse.urlparse( 'redis://:[email protected]:6777') r = redis.Redis(host=url.hostname, port=url.port, password=url.password) engine = RedisEngine(host=url.hostname, port=url.port, password=url.password) connection = Connection( 'mongodb://*****:*****@alex.mongohq.com:10013/app8222672') jobs_collection = connection.app8222672.jobs jobs = [] for job in jobs_collection.find(): a = job['title'] a = a.lower() for word in a.split(): jobs.append(word) print jobs map(engine.store, jobs) #print engine.search(query.decode('cp1252'))
import urllib2 from redis_completion import RedisEngine import urlparse import redis engine = RedisEngine() titles = [ 'python programming', 'programming c', 'unit testing python', 'testing software', 'software design' ] map(engine.store, titles) print engine.search('test')
from redis_completion import RedisEngine import pandas as pd import json engine = RedisEngine(prefix='umls') def loadumls(): engine = RedisEngine(prefix='umls') data = pd.read_csv("../umls/[email protected]") df = pd.DataFrame(data) df_dictarr = df.to_dict('records') for item in df_dictarr: # print item['value'] # id, search phrase, data engine.store_json(item['value'], item['label'], { 'label': item['label'], 'value': item['value'] }) def search(p): return engine.search_json(p)
def get_engine(self): return RedisEngine(prefix='testac', db=15)
# Documents to append as an appendix to all manuals. #texinfo_appendices = [] # If false, no module index is generated. #texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. #texinfo_show_urls = 'footnote' ########NEW FILE######## __FILENAME__ = stocks import urllib2 from redis_completion import RedisEngine engine = RedisEngine(prefix='stocks') def load_data(): url = 'http://media.charlesleifer.com/downloads/misc/NYSE.txt' contents = urllib2.urlopen(url).read() for row in contents.splitlines()[1:]: ticker, company = row.split('\t') engine.store_json(ticker, company, { 'ticker': ticker, 'company': company }) # id, search phrase, data def search(p, **kwargs): return engine.search_json(p, **kwargs)
def create_app(env='debug'): """ TODO: if config is None: config = os.path.join(app.root_path, 'production.cfg') app.config.from_pyfile(config) """ app = Flask(__name__) app.config.from_object(__name__) app.config.update(SECRET_KEY=os.urandom(20)) if (env == 'debug'): app.debug = True if (env == 'prod'): app.debug = False if app.debug: from flaskext.lesscss import lesscss lesscss(app) app.static_path = '/static' # connect to the database connection = Connection( 'mongodb://*****:*****@alex.mongohq.com:10013/app8222672') jobs_collection = connection.app8222672.jobs users_collection = connection.app8222672.users url = urlparse.urlparse( 'redis://:[email protected]:6777') autocomplete_engine = RedisEngine(host=url.hostname, port=url.port, password=url.password) @app.route('/index/') @app.route('/home/') @app.route('/') def home(): return render_template('home.html') @app.route('/settings/') def settings(): return render_template('settings.html') @app.route('/list') def list(): jobs = [] for job in jobs_collection.find(): job['id'] = str(job['_id']) jobs.append(job) return render_template('list.html', jobs=jobs) @app.route('/delete/<jobid>') def delete(jobid): response = jobs_collection.remove({'_id': bson.ObjectId(jobid)}) if (response == None): flash('Job erased') else: flash('Error occured') return redirect(url_for('list')) @app.route('/jobs/<jobid>') def inside(jobid): found_job = jobs_collection.find_one( {'_id': bson.ObjectId(oid=str(jobid))}) found_job['id'] = str(found_job['_id']) found_job['objectid'] = str(found_job['_id']) found_job['_id'] = str(found_job['_id']) return render_template('inside.html', job=found_job) @app.route('/edit/<jobid>') def edit(jobid): return render_template('add.html', job=jobid) @app.errorhandler(404) def page_not_found(e): return render_template('404.html'), 404 # ==================== REGISTRATION ================== @app.route('/logout') def logout(): # remove the username from the session if it's there session.pop('logged_in', None) return redirect(url_for('home')) @app.route('/registration') def registration(): return render_template('registration.html') def get_user_id(email): return users_collection.find_one({'email': email}) @app.route('/login', methods=['GET', 'POST']) @app.route('/register', methods=['GET', 'POST']) def register(): """Registers the user.""" error = None if request.method == 'POST': logged_user = get_user_id(request.form['email']) if (logged_user): if (request.form['password'] == logged_user['password']): flash('Logged in as ' + logged_user['email']) session['logged_in'] = logged_user['email'] return redirect(url_for('home', session=session)) else: flash('Wrong password!') return redirect(url_for('register')) if not request.form['email'] or \ '@' not in request.form['email']: error = 'You have to enter a valid email address' elif not request.form['password']: error = 'You have to enter a password' elif get_user_id(request.form['email']) is not None: error = 'The username is already taken' else: new_user_id = users_collection.save({ 'email': request.form['email'], 'password': request.form['password'], 'status': 'awaiting confirm' }) payload = { 'from': 'Excited User <*****@*****.**>', 'to': request.form['email'], 'subject': 'Quick Hunt account confirmation', 'text': 'http://quickhunt.herokuapp.com/activate_user/' + str(new_user_id) } r = requests.post( "https://api.mailgun.net/v2/app8222672.mailgun.org/messages", auth=HTTPBasicAuth('api', 'key-9m9vuzkafbyjqhm9ieq71n0lu9dgf9b9'), data=payload) flash( 'You were successfully registered. Confirm registration and login.' ) session['logged_in'] = request.form['email'] flash('logged in successfuly') return redirect(url_for('home')) #flash('no luck ((' + request.method + error) flash('error:' + str(error)) return render_template('login.html', error=error) @app.route('/activate_user/<user_id>') def activate_user(user_id): """ Activate user function. """ found_user = users_collection.find_one( {'_id': bson.ObjectId(oid=str(user_id))}) if not found_user: return abort(404) else: if found_user['status'] == 'awaiting_confirm': ### Setting the user status active here ###* confirm_mail = { 'from': 'Quick Hunt <*****@*****.**>', 'to': found_user['email'], 'subject': 'Quick Hunt account confirmation', 'text': 'Subscription confirmed.' } r = requests.post( "https://api.mailgun.net/v2/app8222672.mailgun.org/messages", auth=HTTPBasicAuth('api', 'key-9m9vuzkafbyjqhm9ieq71n0lu9dgf9b9'), data=confirm_mail) flash('user has been activated', 'info') elif found_user['status'] == 'active': flash('user already activated', 'info') return redirect(url_for('content')) """ This is the API part of the equation """ """ @app.errorhandler(404) def not_found(error=None): message = { 'status': 404, 'message': 'Not Found: ' + request.url, } resp = jsonify(message) resp.status_code = 404 return resp """ @app.route('/api/search/', methods=['GET']) @app.route('/api/search/<query>', methods=['GET']) def search(query=None): jobs = [] for job in jobs_collection.find(): job['_id'] = str(job['_id']) jobs.append(job) return jsonify({'result': jobs}) @app.route('/api/jobs/<jobid>', methods=['GET']) def get_job(jobid): found_job = jobs_collection.find_one( {'_id': bson.ObjectId(oid=str(jobid))}) found_job['id'] = str(found_job['_id']) found_job['objectid'] = str(found_job['_id']) found_job['_id'] = str(found_job['_id']) #if userid in users: return jsonify(found_job) #else: # return not_found() #return undef @app.route('/api/jobs/new', methods=['POST']) def create_job(): js = json.dumps(request.data) json_data = json.loads(request.data) jobs_collection.save(json_data) resp = Response(js, status=200, mimetype='application/json') return resp @app.route('/api/jobs/<jobid>', methods=['PUT']) def update_job(jobid): js = json.dumps(request.data) print 'js:' + str(js) json_data = json.loads(request.data) json_data['_id'] = bson.ObjectId(json_data['objectid']) jobs_collection.save(json_data) resp = Response(js, status=200, mimetype='application/json') return resp @app.route('/api/jobs/<jobid>', methods=['DELETE']) def delete_job(jobid): response = jobs_collection.remove({'_id': bson.ObjectId(jobid)}) if (response == None): return jsonify({success: 'Success'}) else: return jsonify({error: 'Error'}) @app.route('/api/autocomplete/', methods=['GET']) def autocomplete(): js = {} searchword = request.args.get('q', '') if searchword: js = json.dumps({'result': autocomplete_engine.search(searchword)}) else: js = {'error': 'invalid argument'} return Response(js, status=200, mimetype='application/json') @app.route('/api/favorites/add/<jobid>', methods=['GET']) # FIX IT (i mean get) def add_to_favorites(jobid): me = users_collection.find_one({'email': session['logged_in']}) if 'favorites' in me: me['favorites'].append(jobid) else: me['favorites'] = [jobid] js = users_collection.save(me) print js resp = Response({'reply': js}, status=200, mimetype='application/json') return resp @app.route('/api/favorites/delete/<jobid>', methods=['DELETE']) # FIX IT (i mean get) def remove_from_favorites(jobid): me = users_collection.find_one({'email': session['logged_in']}) if 'favorites' in me: favorites = me['favorites'] favoretes.remove(jobid) me['favorites'] = favorites js = users_collection.save(me) print js resp = Response({'reply': js}, status=200, mimetype='application/json') return resp return app