forked from LiveCarta/BookConverter
Make task to add numbering in titles (I, (ABC))
This commit is contained in:
@@ -7,6 +7,8 @@ from io import BytesIO
|
|||||||
|
|
||||||
|
|
||||||
class Access:
|
class Access:
|
||||||
|
"""Class accessing our platform"""
|
||||||
|
|
||||||
PENDING = 1
|
PENDING = 1
|
||||||
PROCESS = 2
|
PROCESS = 2
|
||||||
GENERATE = 3
|
GENERATE = 3
|
||||||
@@ -21,21 +23,21 @@ class Access:
|
|||||||
refresh = None
|
refresh = None
|
||||||
refresh_time = None
|
refresh_time = None
|
||||||
headers = None
|
headers = None
|
||||||
|
|
||||||
refreshing = Event()
|
refreshing = Event()
|
||||||
|
|
||||||
def __init__(self, url):
|
def __init__(self, url):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
:param url: str, url received from queue message, if field apiURL exists
|
:param url: str, url received from queue message, if field apiURL exists
|
||||||
else None
|
else None
|
||||||
"""
|
"""
|
||||||
|
|
||||||
self.set_credentials(url)
|
self.set_credentials(url)
|
||||||
self.get_token()
|
self.get_token()
|
||||||
self.refreshing.set()
|
self.refreshing.set()
|
||||||
|
|
||||||
def sleep(timeout: float, retry=3):
|
def sleep(timeout: float, retry=3):
|
||||||
def decorator(function):
|
def decorator(function):
|
||||||
|
"""Decorator sleeping timeout sec and makes 3 retries"""
|
||||||
def wrapper(*args, **kwargs):
|
def wrapper(*args, **kwargs):
|
||||||
retries = 0
|
retries = 0
|
||||||
while retries < retry:
|
while retries < retry:
|
||||||
@@ -66,6 +68,9 @@ class Access:
|
|||||||
self.headers = {
|
self.headers = {
|
||||||
'Authorization': f'Bearer {self.token}'
|
'Authorization': f'Bearer {self.token}'
|
||||||
}
|
}
|
||||||
|
# self.session = requests.Session()
|
||||||
|
# self.session.auth=
|
||||||
|
# self.session.headers.update({'Authorization': f'Bearer {self.token}'})
|
||||||
|
|
||||||
def is_time_for_refreshing(self):
|
def is_time_for_refreshing(self):
|
||||||
return self.refresh_time < time.time()
|
return self.refresh_time < time.time()
|
||||||
@@ -76,7 +81,10 @@ class Access:
|
|||||||
'username': self.username,
|
'username': self.username,
|
||||||
'password': self.password
|
'password': self.password
|
||||||
}
|
}
|
||||||
response = requests.post(f'{self.url}/token', json=json_form)
|
response = requests.post(
|
||||||
|
f'{self.url}/token', json=json_form,
|
||||||
|
# auth=('kiryl.miatselitsa', 'iK4yXCvdyHFEEOvG2v3F')
|
||||||
|
)
|
||||||
|
|
||||||
if response.status_code == 400:
|
if response.status_code == 400:
|
||||||
raise Exception('400 Bad request: invalid login and/or password.')
|
raise Exception('400 Bad request: invalid login and/or password.')
|
||||||
@@ -95,7 +103,10 @@ class Access:
|
|||||||
'grantType': 'refresh_token',
|
'grantType': 'refresh_token',
|
||||||
'refreshToken': self.refresh
|
'refreshToken': self.refresh
|
||||||
}
|
}
|
||||||
response = requests.post(f'{self.url}/token', json=json_form)
|
response = requests.post(
|
||||||
|
f'{self.url}/token', json=json_form,
|
||||||
|
# auth=('kiryl.miatselitsa', 'iK4yXCvdyHFEEOvG2v3F')
|
||||||
|
)
|
||||||
|
|
||||||
if response.status_code == 400:
|
if response.status_code == 400:
|
||||||
raise Exception(
|
raise Exception(
|
||||||
@@ -113,12 +124,15 @@ class Access:
|
|||||||
raise Exception(f'{response.status_code}')
|
raise Exception(f'{response.status_code}')
|
||||||
|
|
||||||
def get_book(self, book_id):
|
def get_book(self, book_id):
|
||||||
|
"""Function downloads the book from site"""
|
||||||
if self.is_time_for_refreshing():
|
if self.is_time_for_refreshing():
|
||||||
self.refresh_token()
|
self.refresh_token()
|
||||||
|
|
||||||
self.refreshing.wait()
|
self.refreshing.wait()
|
||||||
response = requests.get(
|
response = requests.get(
|
||||||
f'{self.url}/doc-convert/{book_id}/file', headers=self.headers)
|
f'{self.url}/doc-convert/{book_id}/file', headers=self.headers,
|
||||||
|
# auth=('kiryl.miatselitsa', 'iK4yXCvdyHFEEOvG2v3F')
|
||||||
|
)
|
||||||
|
|
||||||
if response.status_code == 404:
|
if response.status_code == 404:
|
||||||
raise FileNotFoundError('404 Not Found: file have not found.')
|
raise FileNotFoundError('404 Not Found: file have not found.')
|
||||||
@@ -132,6 +146,7 @@ class Access:
|
|||||||
|
|
||||||
@sleep(3)
|
@sleep(3)
|
||||||
def send_image(self, img_path, doc_id, img_content: bytes = None):
|
def send_image(self, img_path, doc_id, img_content: bytes = None):
|
||||||
|
"""Function sends images to site"""
|
||||||
if self.is_time_for_refreshing():
|
if self.is_time_for_refreshing():
|
||||||
self.refresh_token()
|
self.refresh_token()
|
||||||
self.refreshing.wait()
|
self.refreshing.wait()
|
||||||
@@ -141,7 +156,9 @@ class Access:
|
|||||||
'image': (os.path.basename(img_path), img_obj)
|
'image': (os.path.basename(img_path), img_obj)
|
||||||
}
|
}
|
||||||
response = requests.post(
|
response = requests.post(
|
||||||
f'{self.url}/doc-convert/image', files=files, headers=self.headers)
|
f'{self.url}/doc-convert/image', files=files, headers=self.headers
|
||||||
|
# auth=('kiryl.miatselitsa', 'iK4yXCvdyHFEEOvG2v3F')
|
||||||
|
)
|
||||||
img_obj.close()
|
img_obj.close()
|
||||||
|
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
@@ -153,6 +170,7 @@ class Access:
|
|||||||
return img_url
|
return img_url
|
||||||
|
|
||||||
def send_book(self, doc_id, content):
|
def send_book(self, doc_id, content):
|
||||||
|
"""Function sends the book to site"""
|
||||||
if self.is_time_for_refreshing():
|
if self.is_time_for_refreshing():
|
||||||
self.refresh_token()
|
self.refresh_token()
|
||||||
|
|
||||||
@@ -171,6 +189,7 @@ class Access:
|
|||||||
f'{response.status_code} Bad request: {response.json()["message"]}.')
|
f'{response.status_code} Bad request: {response.json()["message"]}.')
|
||||||
|
|
||||||
def update_status(self, doc_id, status):
|
def update_status(self, doc_id, status):
|
||||||
|
"""Function updates status of the book on site"""
|
||||||
if self.is_time_for_refreshing():
|
if self.is_time_for_refreshing():
|
||||||
self.refresh_token()
|
self.refresh_token()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user