def do_extract_only_archive(user, coll, rec, wb_url, archive): request.path_shift(4) return self.handle_routing(wb_url, user, coll, rec, type='extract', sources=archive, inv_sources='*', redir_route='extract_only:' + archive)
def do_extract_all(user, coll, rec, wb_url): request.path_shift(4) return self.handle_routing(wb_url, user, coll, rec, type='extract', sources='*', inv_sources='*', redir_route='extract')
def do_replay_coll(user, coll, wb_url): request.path_shift(2) # BEGIN PERMA CUSTOMIZATION # see self.refuse_playback for more information if any(url in wb_url for url in self.refuse_playback): self._raise_error(404, 'no_such_recording') # END PERMA CUSTOMIZATION return self.handle_routing(wb_url, user, coll, '*', type='replay-coll')
def test_shift(s, p, c): request.bind({"SCRIPT_NAME": s, "PATH_INFO": p}) request.path_shift(c) return [request["SCRIPT_NAME"], request.path]
def do_replay_rec(user, coll, list_id, bk_id, wb_url): request.path_shift(5) return self.handle_routing(wb_url, user, coll, '*', type='replay-coll')
def logged_in_patch(user, coll, rec, wb_url): request.path_shift(4) return self.handle_routing(wb_url, user, coll, rec, type='patch')
def live(wb_url): request.path_shift(1) return self.handle_routing(wb_url, user='******', coll='temp', rec='', type='live')
def do_replay_rec(user, coll, rec, wb_url): request.path_shift(4) return self.handle_routing(wb_url, user, coll, rec, type='replay')
def do_record(user, coll, rec, wb_url): request.path_shift(4) return self.handle_routing(wb_url, user, coll, rec, type='record', redir_route='record')
def do_patch(user, coll, rec, wb_url): request.path_shift(4) return self.handle_routing(wb_url, user, coll, rec, type='patch', redir_route='patch')
def embed_replay(user, coll, wb_url): request.path_shift(3) #return self.do_replay_coll_or_rec(user, coll, wb_url, is_embed=True, # is_display=True) return self.handle_routing(wb_url, user, coll, '*', type='replay-coll', is_embed=True, is_display=True)
def test_shift(s, p, c): request = BaseRequest({'SCRIPT_NAME': s, 'PATH_INFO': p}) request.path_shift(c) return [request['SCRIPT_NAME'], request.path]
def call_pywb(self, user=None, coll=None, state=None, anon=False): if anon: wrsesh = request.environ['webrec.session'] if state != 'live' and wrsesh.curr_user: wrsesh.flash_message('You are logged in. Please select a collection to record or browse', 'info') redirect('/' + wrsesh.curr_user) return user = wrsesh.anon_user coll = '@anon' path = '@anon' coll_path = 'replay' curr_path = state sesh_id = self.path_parser.get_coll_path(user, coll) if state == 'record' or state == 'patch': if not wrsesh.is_anon(): self.redir_no_cookie() user = self.manager.get_anon_user() if not self.manager.has_space(user): request.environ['webrec.no_space'] = True elif state == 'replay': request.path_shift(1) elif user and coll: request.path_shift(self.path_parser.get_path_shift()) sesh_id = self.path_parser.get_coll_path(user, coll) path = sesh_id curr_path = path coll_path = path if state != 'replay': curr_path += '/' + state if anon or (user and coll): output_dir = self.path_parser.get_archive_dir(user, coll) name_prefix = self.path_parser.get_name_prefix(user, coll) request.environ['w_output_dir'] = output_dir request.environ['w_sesh_id'] = sesh_id request.environ['w_path'] = path request.environ['w_nameprefix'] = name_prefix request.environ['w_manager'] = self.manager request.environ['w_user_id'] = 'u:' + user params = request.environ['pywb.template_params'] params['state'] = state params['user'] = user params['coll'] = coll params['path'] = coll_path params['curr_path'] = curr_path try: resp = self.pywb(request.environ) except WbException as wbe: status = int(wbe.status().split(' ', 1)[0]) raise HTTPError(status=status, body=str(wbe)) if not resp: raise HTTPError(status=404, body='No Response Found') resp = HTTPResponse(body=resp.body, status=resp.status_headers.statusline, headers=resp.status_headers.headers) return resp
def call_pywb(self, user=None, coll=None, state=None, anon=False): if anon: wrsesh = request.environ.get('webrec.session') if state != 'live' and wrsesh.curr_user: wrsesh.flash_message('You are logged in. Please select a collection to record or browse', 'info') redirect('/' + wrsesh.curr_user) return user = wrsesh.anon_user coll = '@anon' path = '@anon' coll_path = 'replay' curr_path = state sesh_id = self.path_parser.get_coll_path(user, coll) if state == 'record' or state == 'patch': if not wrsesh.is_anon(): wrsesh.set_anon() self.manager.init_anon_user(user) elif not self.manager.has_space(user): request.environ['webrec.no_space'] = True elif state == 'replay': request.path_shift(1) elif user and coll: request.path_shift(self.path_parser.get_path_shift()) sesh_id = self.path_parser.get_coll_path(user, coll) path = sesh_id curr_path = path coll_path = path if state != 'replay': curr_path += '/' + state if anon or (user and coll): output_dir = self.path_parser.get_archive_dir(user, coll) name_prefix = self.path_parser.get_name_prefix(user, coll) request.environ['w_output_dir'] = output_dir request.environ['w_sesh_id'] = sesh_id request.environ['w_path'] = path request.environ['w_nameprefix'] = name_prefix request.environ['w_manager'] = self.manager request.environ['w_user_id'] = 'u:' + user params = request.environ['pywb.template_params'] params['state'] = state params['user'] = user params['coll'] = coll params['path'] = coll_path params['curr_path'] = curr_path try: resp = self.pywb(request.environ) except WbException as wbe: status = int(wbe.status().split(' ', 1)[0]) raise HTTPError(status=status, body=str(wbe)) if not resp: raise HTTPError(status=404, body='No Response Found') resp = HTTPResponse(body=resp.body, status=resp.status_headers.statusline, headers=resp.status_headers.headers) return resp
def embed_replay(user, coll, wb_url): request.path_shift(1) return self.do_replay_coll_or_rec(user, coll, wb_url, is_embed=True)
def do_replay_coll(user, coll, wb_url): request.path_shift(2) return self.handle_routing(wb_url, user, coll, '*', type='replay-coll')