Improve user expirience

This commit is contained in:
ZhymabekRoman 2024-04-05 22:13:54 +05:00
parent 2ba0aa534c
commit 4b25d1735e
4 changed files with 14 additions and 15 deletions

View file

@ -84,20 +84,19 @@ class MediumParser:
logger.exception(ex)
return None
async def query_get(self, use_cache: bool):
async def query_get(self, use_cache: bool, force_cache: bool = False):
cache_used = True
post_data = await self.get_post_data_from_cache() if use_cache else None
if not post_data:
cache_used = False
if not post_data and not force_cache:
logger.debug("Getting value from cache failed, using API")
cache_used = False
post_data = await self.get_post_data_from_api()
return post_data, cache_used
async def query(self, use_cache: bool = True, retry: int = 3):
logger.debug(f"Medium QUERY: {use_cache=}, {retry=}")
async def query(self, use_cache: bool = True, retry: int = 3, force_cache: bool = False):
logger.debug(f"Medium QUERY: {use_cache=}, {retry=}, {force_cache=}")
post_data, is_cache_used = None, False
@ -105,7 +104,7 @@ class MediumParser:
reason = None
while not post_data and attempt < retry:
try:
post_data, is_cache_used = await self.query_get(use_cache)
post_data, is_cache_used = await self.query_get(use_cache, force_cache)
if not post_data:
reason = "No post data returned"
@ -194,10 +193,10 @@ class MediumParser:
current_pos += 1
continue
if paragraph["text"] is None:
text_formater = None
else:
if paragraph["text"] is not None:
text_formater = parse_paragraph_text(paragraph["text"], paragraph["markups"])
else:
text_formater = None
for highlight in highlights:
for highlight_paragraph in highlight["paragraphs"]:
@ -343,10 +342,10 @@ class MediumParser:
break
_tmp_current_pos += 1
code_block_template_rendered = await code_block_template.render_async(text="\n".join(code_list), code_css_class=" ".join(code_css_class))
pre_template_rendered = await pre_template.render_async(code_block=code_block_template_rendered)
out_paragraphs.append(pre_template_rendered)
current_pos = _tmp_current_pos - 1
elif paragraph["type"] == "BQ":

View file

@ -27,7 +27,7 @@ async def route_processing(path: str, request: Request):
if key_data != config.ADMIN_SECRET_KEY:
return JSONResponse({"message": f"Wrong secret key: {key_data}"}, status_code=403)
path = path.removeprefix("render-no-cache/")
if path.startswith("/no-redis/"):
path = path.removeprefix("/no-redis/")

View file

@ -29,7 +29,7 @@ async def render_postleter(limit: int = 30, as_html: bool = False):
for post_id in random_post_id_list:
try:
post = MediumParser(post_id, timeout=config.TIMEOUT, host_address=config.HOST_ADDRESS, auth_cookies=config.MEDIUM_AUTH_COOKIES)
await post.query()
await post.query(force_cache=True, retry=1)
post_metadata = await post.generate_metadata(as_dict=True)
outlet_posts_list.append(post_metadata)
except Exception as ex:

View file

@ -28,7 +28,7 @@ def enable_maintenance_mode():
send_message("Maintenance mode disabled")
def do_maintenance(sleep_time: int = 60 * 60):
def do_maintenance(sleep_time: int = 60 * 60 * 24):
while True:
try:
enable_maintenance_mode()