예제 #1
0
def shortener():
    shortener_form = ShortenerForm(request.form)
    short_url = ''
    if request.method == 'POST' and shortener_form.validate():
        full_url = shortener_form.full_url.data
        logged_in = session.has_key('login') and session['login']
        if logged_in:
            url_hash = make_hash(full_url + session['login'])
        else:
            url_hash = make_hash(full_url)
        short_url = make_short_url(app.config['HOST'], app.config['PORT'],
                                   url_hash)
        if Hash.query.filter_by(url_hash=url_hash).first() == None:
            if logged_in:
                user = User.query.filter_by(login=session['login']).first()
                hash_obj = Hash(url_hash, full_url)
                user.hashes.append(hash_obj)
                db.session.commit()
            else:
                user = User.query.filter_by(login='******').first()
                if not user:
                    user = User('not_registered', 'pass')
                    db.session.add(user)
                hash_obj = Hash(url_hash, full_url)
                user.hashes.append(hash_obj)
                db.session.commit()

    return render_template('shortener.html',
                           short_url=short_url,
                           form=shortener_form)
예제 #2
0
 def put_hash(self, hash, linhas):
     """Atualiza um hash no banco (mesmo vazio) e anula seu cache.
        Retorna mensagem consumível pelo sptscraper"""
     try:
         self.cache.delete("linhas_por_hash_" + hash)
         hash_obj = Hash.all().filter("hash =", hash).fetch(1)
         if hash_obj:
             hash_obj = hash_obj[0]
             hash_obj.linhas = linhas
         else:
             hash_obj = Hash(hash=hash, linhas=linhas)
         hash_obj.put()
         return "OK HASH UPLOAD %s " % id
     except:
         return "ERRO HASH: %s" % sys.exc_info()[1]