Пример #1
0
def __create_shell_item_array(items: List[str]):  # -> shell.PyIShellItemArray:
    pidls = []
    for it in items:
        it = it.replace('/', '\\')
        pidl = shell.SHParseDisplayName(it, 0, None)
        pidls.append(pidl[0])
    return shell.SHCreateShellItemArrayFromIDLists(pidls)
Пример #2
0
 def open(self):
     i = len(self.__fl) - 1
     r = ""
     while i >= 0:
         fn = self.__fl[i]
         if exists(fn) and isfile(fn):
             r = fn
             break
         i = i - 1
     if r != "":
         if system() == "Windows":
             pa = split(r)[0]
             if self.__logg is not None:
                 self.__logg.write(f"Try open '{r}'.", currentframe(),
                                   "Auto Open File List Open")
             c = shell.SHParseDisplayName(pa, 0)
             d = shell.SHParseDisplayName(r, 0)
             shell.SHOpenFolderAndSelectItems(c[0], [d[0]], 0)
Пример #3
0
def loginwithqrcode(r: requests.Session, logg=None):
    print(lan['WARN1'])
    prepareSession(r)
    year = 365 * 24 * 3600
    while True:
        url = "https://passport.bilibili.com/qrcode/getLoginUrl"
        if logg:
            logg.write(f"GET {url}", currentframe(), "getloginurl")
        re = r.get(url)
        re = re.json()
        if re['code'] != 0:
            print(f"{re['code']}")
            if logg:
                logg.write(f"content: {re}", currentframe(), "unknownerror")
            return -1
        ts = re['ts']
        oauthKey = re['data']['oauthKey']
        oauthUrl = re['data']['url']
        if not exists('Temp/'):
            mkdir('Temp/')
        qr = QRCode(version=1,
                    error_correction=qrconst.ERROR_CORRECT_H,
                    box_size=10)
        qr.add_data(oauthUrl)
        pn = f'Temp/{ts}.svg'
        qr.make_image(SvgImage).save(pn)
        print(lan['OUTPUT3'].replace("<path>", pn))  # 二维码已保存至
        if system() == "Windows":
            from win32com.shell import shell  # pylint: disable=import-error no-name-in-module
            d = shell.SHParseDisplayName(abspath(pn), 0)
            shell.SHOpenFolderAndSelectItems(d[0], [], 0)
        suc = False
        while not suc:
            re = r.post("https://passport.bilibili.com/qrcode/getLoginInfo",
                        data={
                            "oauthKey": oauthKey,
                            "gourl": ""
                        })
            re = re.json()
            if re['status']:
                url = re['data']['url']
                for (key, value) in parse_qsl(urlsplit(url).query):
                    if key != "gourl" and key != "Expires":
                        r.cookies.set(key,
                                      value,
                                      path="/",
                                      domain=".bilibili.com",
                                      expires=round(time.time() + year),
                                      discard=False)
                suc = True
                if exists(pn):
                    try:
                        remove(pn)
                    except:
                        pass
                break
            else:
                if re['data'] == -4:
                    time.sleep(3)
                    if time.time() > ts + 300:
                        if exists(pn):
                            try:
                                remove(pn)
                            except:
                                pass
                        input(lan['OUTPUT4'])
                        break
                elif re['data'] == -2:
                    if exists(pn):
                        try:
                            remove(pn)
                        except:
                            pass
                    input(lan['OUTPUT4'])
                    break
                else:
                    if exists(pn):
                        try:
                            remove(pn)
                        except:
                            pass
                    print(f"{re['data']} {re['message']}")
                    return -1
        if suc:
            sa = []
            for domain in r.cookies._cookies.keys():
                for path in r.cookies._cookies[domain].keys():
                    for cookiename in r.cookies._cookies[domain][path]:
                        cookie = r.cookies._cookies[domain][path][cookiename]
                        if not cookie.discard:
                            sa.append({
                                "name": cookie.name,
                                "value": cookie.value,
                                'domain': cookie.domain,
                                'path': cookie.path
                            })
            return sa