From 20d45d866097b6d1c69481cd23d8d83f4314d833 Mon Sep 17 00:00:00 2001 From: "[object Object]" Date: Tue, 12 Nov 2024 23:05:03 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hh_applicant_tool/operations/apply_similar.py | 33 ++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/hh_applicant_tool/operations/apply_similar.py b/hh_applicant_tool/operations/apply_similar.py index db1e0f6..3a6b720 100644 --- a/hh_applicant_tool/operations/apply_similar.py +++ b/hh_applicant_tool/operations/apply_similar.py @@ -55,14 +55,20 @@ def setup_parser(self, parser: argparse.ArgumentParser) -> None: type=self._parse_interval, ) parser.add_argument( - "--sort-by", + "--order-by", help="Сортировка вакансий", - choices=["publication_time", "salary_desc", "salary_asc", "relevance", "distance"], + choices=[ + "publication_time", + "salary_desc", + "salary_asc", + "relevance", + "distance", + ], default="relevance", ) parser.add_argument( "--search", - help="Строка поиска для фильтрации вакансий, например, 'москва бухгалтер 100500', те можно и город указать и ожидаемую зряплату", + help="Строка поиска для фильтрации вакансий, например, 'москва бухгалтер 100500', те можно и город указать, и ожидаемую зряплату", type=str, default=None, ) @@ -141,7 +147,13 @@ def _apply_similar( telemetry_data = defaultdict(dict) vacancies = self._get_vacancies( - api, resume_id, page_min_interval, page_max_interval, per_page=100, order_by=order_by, search=search + api, + resume_id, + page_min_interval, + page_max_interval, + per_page=100, + order_by=order_by, + search=search, ) self._collect_vacancy_telemetry(telemetry_data, vacancies) @@ -195,14 +207,16 @@ def _apply_similar( if vacancy.get("response_letter_required"): message_template = random.choice(application_messages) - + try: params["message"] = template_message % vacancy except TypeError as ex: # TypeError: not enough arguments for format string # API HH все кривое, иногда нет идентификатора работодателя, иногда у вакансии нет названия. # И это типа рашн хайлоад, где из-за дрочки на аджайл слепили кривую говнину. - logger.error(f"Ошибка форматирования шаблона сообщения {template_message!r} для {vacancy = }") + logger.error( + f"Ошибка форматирования шаблона сообщения {template_message!r} для {vacancy = }" + ) continue res = api.post("/negotiations", params) @@ -231,7 +245,7 @@ def _get_vacancies( page_max_interval: float, per_page: int, order_by: str, - search: str = None, + search: str | None = None, ) -> list[VacancyItem]: rv = [] for page in range(20): @@ -243,10 +257,7 @@ def _get_vacancies( if search: params["text"] = search res: ApiListResponse = api.get( - f"/resumes/{resume_id}/similar_vacancies", - page=page, - per_page=per_page, - order_by="relevance", + f"/resumes/{resume_id}/similar_vacancies", params ) rv.extend(res["items"])