Beispiel #1
0
def register(self, **kw):
    try:
        secret = request.args.get("secret")
        url = request.args.get("url")

        if sha1(secret).hexdigest() == SECRET_HASH and url:
            s = Setting.all().filter("name =", "update.url").get()
            if not s is None:
                s.value = url
                s.put()
            else:
                s = Setting(name="update.url", value=url)
                s.put()
            memcache.set(key="update.url", value=serialize_entities(url), time=CACHE_TIME * 24)
            logging.info("New url recieved: %s" % url)
        return Response("URL recieved.")
    except db.Timeout:
        msg = "\nUrl was not saved. The database timed out."
        logging.error(msg)
        return Response(msg, status=500)
    except CapabilityDisabledError:
        msg = "\nUrl was not saved. Database could not be written to."
        logging.error(msg)
        return Response(msg, status=500)
    except TransactionFailedError:
        msg = "\nUrl was not saved. Transaction failed."
        logging.error(msg)
        return Response(msg, status=500)
    except Exception, e:
        if DEBUG:
            print_exc()
        logging.error(str(e))
        return Response("\nUrl was not saved. %s." % e, status=500)
Beispiel #2
0
def send_update(user_name, user_key):
    try:
        url = deserialize_entities(memcache.get("update.url"))
        if url is None:
            url = Setting.all().filter("name =", "update.url").get()
            memcache.set(key="update.url", value=serialize_entities(url), time=CACHE_TIME * 24)
        result = urlfetch.fetch(
            url,
            payload=urlencode([("userkey", user_key), ("product", PRODUCT), ("version", VERSION)]),
            method=urlfetch.POST,
        )
        if result.status_code == 200:
            logging.info("Update %s sent to %s" % (VERSION, user_name))
        else:
            logging.error(
                "Update %s for user %s, %s failed with status_code %d."
                % (VERSION, user_name, user_key, result.status_code)
            )
    except Exception:
        if DEBUG:
            print_exc()
        logging.error("Update %s for user %s, %s failed." % (VERSION, user_name, user_key))