mirror of
https://github.com/JimmXinu/FanFicFare.git
synced 2025-12-06 08:52:55 +01:00
Browser Simple Cache adding orig resp time field & removing browser_cache_simple_header_old option.
This commit is contained in:
parent
35aa5d2143
commit
81cb631491
2 changed files with 28 additions and 14 deletions
|
|
@ -38,7 +38,6 @@ class SimpleCacheException(BrowserCacheException):
|
|||
SIMPLE_EOF = struct.Struct('<QLLLL') # magic_number, flags, crc32, stream_size, padding
|
||||
SIMPLE_EOF_SIZE = SIMPLE_EOF.size
|
||||
FLAG_HAS_SHA256 = 2
|
||||
META_HEADER = struct.Struct('<LLLQQL')
|
||||
ENTRY_MAGIC_NUMBER = 0xfcfb6d1ba7725c30
|
||||
EOF_MAGIC_NUMBER = 0xf4fa6f45970d41d8
|
||||
THE_REAL_INDEX_MAGIC_NUMBER = 0x656e74657220796f
|
||||
|
|
@ -51,11 +50,6 @@ class SimpleCache(BaseChromiumCache):
|
|||
super(SimpleCache,self).__init__(*args, **kargs)
|
||||
logger.debug("Using SimpleCache")
|
||||
|
||||
if self.getConfig("browser_cache_simple_header_old",False):
|
||||
logger.warning("browser_cache_simple_header_old:true - Using older META_HEADER definition.")
|
||||
global META_HEADER
|
||||
META_HEADER = struct.Struct('<LLQQL')
|
||||
|
||||
# self.scan_cache_keys()
|
||||
# 1/0
|
||||
|
||||
|
|
@ -127,9 +121,9 @@ class SimpleCache(BaseChromiumCache):
|
|||
continue
|
||||
logger.debug("en_fl:%s"%en_fl)
|
||||
(request_time, response_time, header_size) = _read_meta_headers(entry_file)
|
||||
headers = _read_headers(entry_file,header_size)
|
||||
logger.debug("request_time: %s (%s)"%(datetime.datetime.fromtimestamp(self.make_age(request_time)),request_time))
|
||||
logger.debug("response_time: %s (%s)"%(datetime.datetime.fromtimestamp(self.make_age(response_time)),response_time))
|
||||
headers = _read_headers(entry_file,header_size)
|
||||
logger.debug(headers)
|
||||
## seen both Location and location
|
||||
location = headers.get('location','')
|
||||
|
|
@ -229,11 +223,33 @@ def _read_meta_headers(entry_file):
|
|||
## actually know if info_size, flags, and new extra are correct.
|
||||
## We didn't use them before, so this shouldn't hurt anything
|
||||
|
||||
## Jan 2025
|
||||
## uint64 orig_response_time added to Simple cache
|
||||
## presence indicated by bit 2 in extra_flags.
|
||||
## https://www.gitclear.com/open_repos/chromium/chromium/release/132.0.6825.0
|
||||
## https://www.gitclear.com/open_repos/chromium/chromium/commits?sha=f5a004e60f7f00dcb0274780d74770d360c0660b&expanded=true#code_file_12568188
|
||||
|
||||
# read stream 0 meta header:
|
||||
# uint32 info_size, uint32 flags, uint32 extra??, uint64 request_time, uint64 response_time, uint32 header_size
|
||||
# uint32 info_size, uint32 flags, uint32 extra_flags, uint64 request_time, uint64 response_time, uint64 orig_response_time, uint32 header_size
|
||||
PRE_META_HEADER = struct.Struct('<LLL')
|
||||
predata = entry_file.read(PRE_META_HEADER.size)
|
||||
logger.debug(predata)
|
||||
logger.debug(PRE_META_HEADER.unpack(predata))
|
||||
extra_flags = PRE_META_HEADER.unpack(predata)[2]
|
||||
RESPONSE_EXTRA_INFO_HAS_ORIGINAL_RESPONSE_TIME = 1 << 2
|
||||
if ((extra_flags & RESPONSE_EXTRA_INFO_HAS_ORIGINAL_RESPONSE_TIME) != 0):
|
||||
logger.debug("Including ORIGINAL_RESPONSE_TIME")
|
||||
META_HEADER = struct.Struct('<QQQL')
|
||||
else:
|
||||
logger.debug("Excluding ORIGINAL_RESPONSE_TIME")
|
||||
META_HEADER = struct.Struct('<QQL')
|
||||
|
||||
data = entry_file.read(META_HEADER.size)
|
||||
# logger.debug(data)
|
||||
(request_time, response_time, header_size) = META_HEADER.unpack(data)[-3:]
|
||||
logger.debug(data)
|
||||
logger.debug(META_HEADER.unpack(data))
|
||||
(request_time, response_time) = META_HEADER.unpack(data)[:2]
|
||||
# not using original_response_time at this time.
|
||||
header_size = META_HEADER.unpack(data)[-1]
|
||||
return (request_time, response_time, header_size)
|
||||
|
||||
|
||||
|
|
@ -244,8 +260,8 @@ def _read_headers(entry_file,header_size):
|
|||
# It is a series of null terminated strings, first is status code,e.g., "HTTP/1.1 200"
|
||||
# the rest are name:value pairs used to populate the headers dict.
|
||||
data = entry_file.read(header_size)
|
||||
# logger.debug("header_size:%s"%header_size)
|
||||
# logger.debug(data)
|
||||
logger.debug("header_size:%s"%header_size)
|
||||
logger.debug(data)
|
||||
strings = data.decode('utf-8').split('\0')
|
||||
headers = dict([ (y[0].lower(),y[1]) for y in [s.split(':', 1) for s in strings[1:] if ':' in s]])
|
||||
return headers
|
||||
|
|
|
|||
|
|
@ -219,7 +219,6 @@ def get_valid_set_options():
|
|||
'browser_cache_path':(['defaults'],None,None),
|
||||
'use_browser_cache':(None,None,boollist),
|
||||
'use_browser_cache_only':(None,None,boollist),
|
||||
'browser_cache_simple_header_old':(None,None,boollist),
|
||||
'open_pages_in_browser':(None,None,boollist),
|
||||
|
||||
'continue_on_chapter_error':(None,None,boollist),
|
||||
|
|
@ -525,7 +524,6 @@ def get_valid_keywords():
|
|||
'use_basic_cache',
|
||||
'use_browser_cache',
|
||||
'use_browser_cache_only',
|
||||
'browser_cache_simple_header_old',
|
||||
'open_pages_in_browser',
|
||||
'use_nsapa_proxy',
|
||||
'nsapa_proxy_address',
|
||||
|
|
|
|||
Loading…
Reference in a new issue