コード例 #1
0
def application(env, start_response):
    d = parse_qs(env["QUERY_STRING"])
    if "guid" not in d:
        return error(start_response, "Parameter guid required")
    guid = d["guid"][0]
    if not guidhelper.validate_uuid4(guid):
        return error(start_reponse, "Parameter guid must be a valid guid")
    row = db.get_row(guid)
    if not row:
        return error(start_response, f"Unknown guid {guid}")
    try:
        result = call_main(d, guid, row, env, start_response)
        if isinstance(result, str):
            return error(start_response, result)
        return [json.dumps(result, indent=4).encode()]
    except:
        exc_type, exc_value, exc_tb = sys.exc_info()
        start_response('200 OK', [
            ('Content-Type', 'text/json'),
        ])
        return [
            json.dumps(
                {
                    "error":
                    traceback.format_exception_only(exc_type,
                                                    exc_value)[0].strip(),
                    "stack":
                    traceback.format_tb(exc_tb)
                },
                indent=4).encode()
        ]
コード例 #2
0
def application(env, start_response):
    start_response('200 OK', [('Content-Type', 'text/csv')])
    d = parse_qs(env["QUERY_STRING"])
    guid = d["guid"]
    row = db.get_row(guid)
    result = get_transactions(row)
    db.put_row(row)
    return [result.encode()]
コード例 #3
0
def hascj(url, cjcfg):
    '''
        判断网址是否已经采集过
    '''
    url = url.strip()
    sql = "select count(*) as num from cjtools.successurls where classid='%d' and urlmd5='%s'" % (cjcfg['classid'], md5(url))
    res, row = db.get_row(sql)
    print row
    return row['num']>0
コード例 #4
0
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    d = parse_qs(env["QUERY_STRING"])
    if "get_config" in d:
        guid = guidhelper.new_guid()
        return [json.dumps({
            "new_guid": guidhelper.new_guid(),
            "client_id": settings.get_client_id(),
            "oauth_url": settings.get_oauth_url(),
            "url": settings.get_url(),
            "dev_url": settings.get_dev_url(),
            "sandbox_url": settings.get_sandbox_url(),
            "prod_url": settings.get_prod_url(),
        }).encode()]
    if "guid" not in d:
        return error("Parameter guid required")
    guid = d["guid"][0]
    if not guidhelper.validate_uuid4(guid):
        return error("Parameter guid must be a valid guid")
    code = d["code"][0] if "code" in d else ""
    row = db.get_row(guid)
    if not row:
        row = db.new_row(guid)
    if code and not row["code"]:
        row["code"] = code
        db.put_row(row)
    if not row.get("bearer"):
        if not code:
            return error("Parameter code required for guid without bearer")
        url = settings.get_token_url() + "v1/token"
        response = requests.post(url, params={
            "grant_type": "authorization_code",
            "code": code,
            "redirect_uri": settings.get_url(),
            "client_id": settings.get_client_id(),
            "client_secret": settings.get_client_secret()
        }).json()
        if "error" in response:
            return [json.dumps(response).encode()]
        if "access_token" not in response:
            return [json.dumps({"error": "No access_token returned", 
                                "raw_reply": response}).encode()]
        row["bearer"] = response["access_token"]
        db.put_row(row)
        print("Creating thread...")
        t = threading.Thread(target=prefetch_session, args=(row,))
        print("Starting thread...")
        t.start()
        print("Thread running.")
    return [json.dumps({"success": "success"}).encode()]
コード例 #5
0
ファイル: generate.py プロジェクト: wesselt/easylist
 def run(self):
     self.start_response('200 OK', [
         ('Content-Type', 'text/csv'),
         ('Content-Disposition', 'inline; filename="easylist.csv"'),
     ])
     d = parse_qs(self.env["QUERY_STRING"])
     if "guid" not in d:
         return self.error("Parameter guid required")
     self.guid = d["guid"][0]
     if not guidhelper.validate_uuid4(self.guid):
         return self.error("Parameter guid must be a valid guid")
     self.row = db.get_row(self.guid)
     if not self.row:
         return self.error(f"Unknown guid {self.guid}")
     try:
         return self.get_payments()
     except Exception as e:
         print("Error: " + str(e))
         return self.error(str(e))
コード例 #6
0
ファイル: sheet.py プロジェクト: wesselt/easylist
 def run(self):
     d = urllib.parse.parse_qs(self.env["QUERY_STRING"])
     if not "state" in d:
         return self.request_bunq_oauth()
     self.guid = d["state"][0]
     if not guidhelper.validate_uuid4(self.guid):
         return self.error("State must be a valid guid")
     self.row = db.get_row(self.guid)
     if "error" in d:
         return self.error(d["error"][0])
     if "createsheet" in d:
         if not self.row or not self.row.get("bearer"):
             return self.error("BUNQ token required to create sheet")
         return self.request_google_oauth()
     if "code" not in d:
         return error("Parameter code expected")
     code = d["code"][0]
     if not self.row:
         return self.create_bunq_installation(code)
     return self.create_sheet(code)
コード例 #7
0
def view_essay():
    id = int(request.GET.get("id"))
    row = db.get_row ( id, siteconfig.database )
    return dict ( text = row.GetHTMLTextAreaString() )