Return a retry request for HTTP 498 responses. HTTP 498 means load_args are not present on server; client should retry the request with full argument values instead of their hashes.
(self, request, response)
| 434 | self._remote_keys[fp] = key |
| 435 | |
| 436 | def _498_retry_request(self, request, response): |
| 437 | """ |
| 438 | Return a retry request for HTTP 498 responses. HTTP 498 means |
| 439 | load_args are not present on server; client should retry the request |
| 440 | with full argument values instead of their hashes. |
| 441 | """ |
| 442 | meta = copy.deepcopy(request.meta) |
| 443 | local_arg_fingerprints = meta['splash']['_local_arg_fingerprints'] |
| 444 | args = meta['splash']['args'] |
| 445 | args.pop('load_args', None) |
| 446 | args['save_args'] = list(local_arg_fingerprints.keys()) |
| 447 | |
| 448 | for name, fp in local_arg_fingerprints.items(): |
| 449 | args[name] = self._argument_values[fp] |
| 450 | # print('remote_keys before:', self._remote_keys) |
| 451 | self._remote_keys.pop(fp, None) |
| 452 | # print('remote_keys after:', self._remote_keys) |
| 453 | |
| 454 | body = json.dumps(args, ensure_ascii=False, sort_keys=True, indent=4) |
| 455 | # print(body) |
| 456 | request = request.replace( |
| 457 | meta=meta, |
| 458 | body=body, |
| 459 | priority=request.priority+self.retry_498_priority_adjust |
| 460 | ) |
| 461 | return request |
| 462 | |
| 463 | def _set_download_slot(self, request, meta, slot_policy): |
| 464 | if slot_policy == SlotPolicy.PER_DOMAIN: |
no test coverage detected