Пример #1
0
def admin(key):
    auth = MongoSave().auth(key)
    if auth == 1:
        if request.form.get('approve', None) == 'Approve':
            user = request.form.get('userset')
            val = MongoSave().change_status(user)
        elif request.form.get('stats', None) == 'Spider Stats':
            return redirect(url_for('spider_stats', key=key))
        users = MongoSave().get_req()
        return render_template("requests.html", users=users)
    else:
        return render_template("response.html", response='Wrong API key. Signup or login to get your API key'), 401
Пример #2
0
def signup(user_type="newuser"):
    """
    Main Sigup/login method
    """
    print(user_type)
    if user_type == 'admin' and request.method == 'GET':
        return render_template("adminlog.html", title="Admin Login")

    elif request.form.get('adminlogin', None) == 'Log in':
        if not request.form:
            abort(400)
        if len(request.form['pass']) < 4 or len(request.form['email']) < 6:
            return render_template("response.html", response= 'Error in email and password combination(Password must be longer than 4 characters.)'), 400
        umail = str(request.form['email'])
        upass = str(request.form['pass'])
        uhash = hashlib.sha1(upass+umail).hexdigest()
        result = MongoSave().signup(umail, uhash)
        if result == 1:
            return redirect(url_for('admin', key=uhash))
        #when signup request submitted but not approved
        elif result == -1:
            return render_template("response.html", response='Request Submitted. You are not an admin. o_0'), 200
        #when request rejected
        else:
            return render_template("response.html", response='Error. A user with this email id exists. Some problem with email or password'), 400

    elif request.form.get('newsignup', None) == 'Sign up':
        if not request.form:
            abort(400)
        if len(request.form['pass']) < 4:
            return render_template("response.html", response= 'Password must be longer than 4 characters.'), 400
        umail = str(request.form['email'])
        upass = str(request.form['pass'])
        uhash = hashlib.sha1(upass+umail).hexdigest()
        result = MongoSave().signup(umail, uhash)
        #when user approved by admin return api key
        if result == 1:
            return render_template("response.html", uhash=uhash), 201
            return jsonify({'response':  uhash}), 201
        #when signup request submitted but not approved
        elif result == -1:
            return render_template("response.html", response='Request submitted awaiting admin approval'), 200
        #when request rejected
        elif result == 0:
            return render_template("response.html", response='Request rejected.'), 400
        else:
            return render_template("response.html", response='Wrong username and password format.'), 400

    else:
        return render_template("signup.html", title="Sign up")
Пример #3
0
def get_app_review_emotions(appid, key):
    auth = MongoSave().auth(key)
    if auth==1:
        data = rate_opinion.get_review_rate(appid)
        return jsonify(data if data is not None else {'_id': appid, 'n_percent': None, 'p_percent':None})
    else:
        return jsonify({'response':'Wrong API key'})
Пример #4
0
def get_app_meta_similar(appid, key):
    auth = MongoSave().auth(key)
    if  auth == 1:
        data = list(collection.find({'_id' :appid}, {'_id':0,'similar':1,'crawling_date':1}))
        if data:
            return jsonify({appid: data[0]}), 200
        return jsonify({'response':'error'}), 404
    else:
        return jsonify({'response':'Wrong API key. Signup or login to get your API key'}), 401
Пример #5
0
def get_app_meta_rank(appid, key):
    auth = MongoSave().auth(key)
    if  auth == 1:
        data = list(collection.find({'_id' :appid}, {'_id':1,'category_rank':1, 'topchart_rank':1,'crawling_date':1, 'country':1}))
        if data:
            return jsonify(data[0]), 200
        return jsonify({'response':'error'}), 404
    else:
        return jsonify({'response':'Wrong API key. Signup or login to get your API key'}), 401
Пример #6
0
def get_app_by_country(appid, countrycode, key):
    auth = MongoSave().auth(key)
    if  auth == 1:
        data = list(collection.find({'_id':appid, 'country':countrycode}))
        if data:
            return jsonify({'response': data}), 200
        return jsonify({'response':'error'}), 404
    else:
        return jsonify({'response':'Wrong API key. Signup or login to get your API key'}), 401
Пример #7
0
def get_app_icon_name(key):
    auth = MongoSave().auth(key)
    appids = json.loads(request.data).get('ids', []) if request.data else []
    if auth == 1:
        data = list(collection.find({'_id' : {'$in': appids}}, {'_id':1, 'app_name':1, 'icon': 1}))
        if data:
            return jsonify({'response': data}), 200
        return jsonify({'response': 'error'}), 404
    else:
        return jsonify({'response': 'Unauthorized access. Failed.'}), 401
Пример #8
0
def get_app_info(appid, key):
    auth = MongoSave().auth(key)
    if  auth == 1:
        data = collection.find({'_id': appid})
        try:
            return jsonify(list(data)[0]), 200
        except IndexError:
            return jsonify({'response':'error'}), 404
    else:
        return jsonify({'response':'Wrong API key. Signup or login to get your API key'}), 401
Пример #9
0
def get_app_by_top_rank(rank, app_type, key):
    auth = MongoSave().auth(key)
    if  auth == 1:
        if app_type.lower() == 'free':
            data = list(collection.find({'topchart_rank' :rank, 'price': '0'}))
        elif app_type.lower() == 'paid':
            data = list(collection.find({'topchart_rank' :rank, 'price': {'$ne': '0'}}))
        else:
            return jsonify({'response':'error'}), 404
        if data:
            return jsonify({'response': list(data)})
        return jsonify({'response':'error'}), 404
    else:
        return jsonify({'response':'Wrong API key. Signup or login to get your API key'}), 401
Пример #10
0
def spider_stats(key):
    """
    This method return spider crawling stats
    in json/dict format. Only for approved users. 
    """
    stats = MongoSave().get_spider_stats()
    import datetime
    playstats = []
    for stat in stats:
        if stat['stats_logs'] is None:
            continue
        playstats.append(eval(stat['stats_logs']))
    headers = ["Start Time", "Finish Time", "Finish Reason", "Downloaded MB's", "Item Scraped", "Status"]
    return render_template("spiderstats.html", playstats=playstats, headers=headers)
Пример #11
0
def get_app_by_category_rank(category, rank, app_type, key):
    auth = MongoSave().auth(key)
    if  auth == 1:
        if app_type.lower() == 'free':
            #currently depending query with price = 'x' becuse error in is_free
            data = collection.find({'category': category, 'category_rank': rank, 'price': '0'})
        elif app_type.lower() == 'paid':
            data = collection.find({'category': category, 'category_rank': rank, 'price': {'$ne': '0'}})
        else:
            return jsonify({'response':'Wrong type. Type should be either "free" or "paid"'}), 404
        try:
            return jsonify(list(data)[0]), 200
        except IndexError:
            return jsonify({'response':'error'}), 404
    else:
        return jsonify({'response':'Wrong API key. Signup or login to get your API key'}), 401
Пример #12
0
def forgotkey():
    """
    Forgot your API key? 
    Recover with your email and password
    """
    if not request.json:
        abort(400)
    umail = str(request.json['email'])
    upass = str(request.json['pass'])
    uhash = hashlib.sha1(upass+umail).hexdigest()
    #r.hset('SIGNUP', umail, uhash)
    key = MongoSave().get_key(umail, uhash)
    if key == 1:
        return render_template("response.html", response= uhash ), 201
    elif key == -1:
        return render_template("response.html", response= 'Wrong email password combination. Please check the email and password'), 200
    else:
        return render_template("response.html", response= 'No user with this email exists. Signup'), 400
Пример #13
0
def get_info_list(no_of_apps, key):
        auth = MongoSave().auth(key)
        #for single digit no
        if  auth == 1:
            if no_of_apps%10 == no_of_apps:
                start = 0
                end = no_of_apps
            elif no_of_apps%10 == 0:
                start = ((no_of_apps/10)*10)-10
                end = (start+(no_of_apps%10))+10
            else:
                start = ((no_of_apps/10)*10)-1
                end = (start+(no_of_apps%10))+1

            data = list(collection.find({})[start:end])
            if data:
                return jsonify({'response' : data}), 200
            return jsonify({'response':'error'}), 404
        else:
            return jsonify({'response':'Wrong API key. Signup or login to get your API key'}), 401