| 12345678910111213141516171819202122232425262728293031323334353637 |
- from http.cookiejar import Cookie, CookieJar
- from typing import NewType, Dict, Optional, Tuple, List
- from requests.cookies import RequestsCookieJar
- Key = NewType('Key', str)
- Domain = NewType('Domain', str)
- Path = NewType('Path', str)
- CookieTuple = Tuple[Key, Domain, Path]
- class BnetCookieJar(RequestsCookieJar):
- _template: List[CookieTuple] = [
- ('_ntes_nuid', '.163.com', '/'),
- ('MTK_BBID', '.163.com', '/'),
- ('opt', '.battlenet.com.cn', '/'),
- ('web.id', '.battlenet.com.cn', '/'),
- ('BA-tassadar-login.key', '.battlenet.com.cn', '/'),
- ('login.key', '.battlenet.com.cn', '/'),
- ('BA-tassadar', '.battlenet.com.cn', '/login'),
- ('bnet.extra', '.battlenet.com.cn', '/login'),
- ]
- @classmethod
- def load_bnet_cookies(cls, obj):
- new = cls()
- try:
- for key, domain, path in cls._template:
- value = obj[key]
- new.set(key, value, path=path, domain=domain)
- except KeyError:
- raise KeyError('Invalid Cookies: missing keys')
- return new
- def dump_bnet_cookies(self):
- tmp = self.get_dict()
- return {key: tmp[key] for key, *_ in self._template}
|