Skip to content

Commit

Permalink
Show latest plates for a requested series
Browse files Browse the repository at this point in the history
  • Loading branch information
b00bl1k committed Nov 27, 2023
1 parent 18a6e8d commit 64a4538
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 10 deletions.
3 changes: 3 additions & 0 deletions avbot/avtonomer.py
Original file line number Diff line number Diff line change
Expand Up @@ -214,14 +214,17 @@ def validate_ru_plate_number(number):
res = re.match(r"^[abekmhopctyx]{1}\d{3}[abekmhopctyx]{2}\d{2,3}$", number)
return res


def validate_ru_pt_plate_number(number):
res = re.match(r"^[abekmhopctyx]{2}\d{5}$", number)
return res


def validate_ru_moto_plate_number(number):
res = re.match(r"^\d{4}[abekmhopctyx]{2}\d{2,3}$", number)
return res


def reformat_ru_pt_query(number):
return f"{number[:5]} {number[5:]}"

Expand Down
2 changes: 1 addition & 1 deletion avbot/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ def on_search_paginate(update: Update, context: CallbackContext):


def on_error(update: Update, context: CallbackContext):
logger.error(f"update cause error", exc_info=context.error, extra={
logger.error("update cause error", exc_info=context.error, extra={
"update": update.to_dict() if update else None,
})

Expand Down
28 changes: 19 additions & 9 deletions avbot/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ def get_car_caption(car, plate, page, count):
date = car.date.strftime("%d.%m.%Y")
plate = avtonomer.translate_to_cyrillic(plate)
return (
f"{plate} [{page + 1}/{count}] {date}\n"
f"{plate} {date}\n"
f"{car.make} {car.model}\n"
f"{car.page_url}"
)
Expand Down Expand Up @@ -142,7 +142,7 @@ def search_license_plate(self, chat_id, message_id, search_query_id, page, edit)
def get_series_ru(self, chat_id, message_id, search_query_id):
search_query = db.get_search_query(search_query_id)
series_number = search_query.query_text
key = f"avtonomer.get_series_ru({series_number})"
key = f"avtonomer.get_series_ru2({series_number})"

result = cache.get(key)
if not result:
Expand All @@ -152,8 +152,6 @@ def get_series_ru(self, chat_id, message_id, search_query_id):
series_number[1:],
),
)
if result is not None:
result = result.total_results

if result is None:
logger.warning(f"No data for query {series_number}")
Expand All @@ -167,11 +165,23 @@ def get_series_ru(self, chat_id, message_id, search_query_id):

url = avtonomer.get_series_ru_url(series_number)
series_number = avtonomer.translate_to_cyrillic(series_number)
message = (
f"В серии [{series_number}]({url}) пока нет ни одного номера"
if result == 0
else f"Количество фотографий в серии [{series_number}]({url}): {result}"
)
if result.total_results > 0:
cnt = result.total_results
message = f"Количество фотографий в серии [{series_number}]({url}): {cnt}"
message += "\n\nСвежие номера:\n"
message += "\n".join([
"• {} /{} — {} {}".format(
car.date,
avtonomer.translate_to_latin(
car.license_plate.replace(" ", "")).upper(),
car.make,
car.model,
)
for car in result.cars
])
else:
message = f"В серии [{series_number}]({url}) пока нет ни одного номера"

bot.send_message(
chat_id,
message,
Expand Down

0 comments on commit 64a4538

Please sign in to comment.