Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
W
webarchive-api
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
aponb
webarchive-api
Commits
bc6d08fd
Commit
bc6d08fd
authored
May 22, 2019
by
Stefan Karner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Start _post method; add constants for extractor methods
parent
8859522e
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
35 additions
and
22 deletions
+35
-22
webarchiv.py
webarchiv.py
+35
-22
No files found.
webarchiv.py
View file @
bc6d08fd
...
...
@@ -7,6 +7,11 @@ from requests import HTTPError
_datetime_format_string
=
'%Y%m%d%H%M%S'
EXTRACTOR_TEXT
=
1
EXTRACTOR_CSS
=
2
EXTRACTOR_BINARY
=
3
class
SessionTimeoutError
(
Exception
):
pass
...
...
@@ -102,27 +107,39 @@ class WebarchivSession:
print
(
self
.
_error_template
.
format
(
status_code
=
e
.
response
.
status_code
,
response_text
=
e
.
response
.
text
),
file
=
sys
.
stderr
)
def
_handle_response_errors
(
self
,
r
):
if
r
.
status_code
==
403
:
print
(
'Forbidden. Invalid Token or ApiKey transmitted'
,
file
=
sys
.
stderr
)
return
r
elif
r
.
status_code
==
400
:
print
(
'Bad request'
,
file
=
sys
.
stderr
)
return
r
elif
r
.
status_code
==
410
:
print
(
'The requested API Version (via X-API-VERSION Header) is not available'
,
file
=
sys
.
stderr
)
return
r
def
_get
(
self
,
op
,
auto_connect
=
True
,
**
kwargs
,
):
kwargs
[
'params'
]
=
self
.
_add_api_key_and_token
(
kwargs
.
pop
(
'params'
,
{}))
# kwargs = self._add_api_key_and_token(kwargs)
r
=
requests
.
get
(
self
.
base_url
.
format
(
op
),
**
kwargs
)
if
r
.
ok
:
return
r
elif
r
.
status_code
==
403
and
auto_connect
:
self
.
connect
()
return
self
.
_get
(
op
=
op
,
auto_connect
=
False
,
**
kwargs
)
else
:
if
r
.
status_code
==
403
:
if
auto_connect
:
self
.
connect
()
return
self
.
_get
(
op
=
op
,
auto_connect
=
False
,
**
kwargs
)
else
:
print
(
'Forbidden. Invalid Token or ApiKey transmitted'
,
file
=
sys
.
stderr
)
return
r
elif
r
.
status_code
==
400
:
print
(
'Bad request'
,
file
=
sys
.
stderr
)
return
r
elif
r
.
status_code
==
410
:
print
(
'The requested API Version (via X-API-VERSION Header) is not available'
,
file
=
sys
.
stderr
)
return
self
.
_handle_response_errors
(
r
)
def
_post
(
self
,
op
,
auto_connect
=
True
,
**
kwargs
):
kwargs
[
'json'
]
=
self
.
_add_api_key_and_token
(
kwargs
.
pop
(
'json'
,
{}))
r
=
requests
.
post
(
self
.
base_url
.
format
(
op
),
**
kwargs
)
if
r
.
ok
:
return
r
elif
r
.
status_code
==
403
and
auto_connect
:
self
.
connect
()
return
self
.
_post
(
op
=
op
,
auto_connect
=
False
,
**
kwargs
)
else
:
return
self
.
_handle_response_errors
(
r
)
def
fulltext_search
(
self
,
query_string
,
from_
=
None
,
to_
=
None
):
"""
...
...
@@ -227,9 +244,6 @@ class WebarchivSession:
def
waitForResponse
(
self
,
response
):
"""
Polls until the server responds with a result
:param response: String to search for
:return: response
"""
if
response
.
status_code
==
400
:
return
response
...
...
@@ -242,12 +256,11 @@ class WebarchivSession:
def
status_query
(
self
,
resp
):
"""
this is the pollingrequest for the given typen of request
:param resp: String to search for
:return: response
this is the polling request for the given type of request
"""
requestid
=
resp
.
json
()[
'requestid'
]
j
=
resp
.
json
()
context
=
j
[
'context'
]
requestid
=
j
[
'requestid'
]
type_
=
resp
.
json
()[
'type'
]
if
type_
==
1
:
r
=
self
.
_get
(
op
=
'/search/status/fulltext'
,
params
=
{
'requestid'
:
requestid
})
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment