hh-applicant-tool 0.5.4__tar.gz → 0.5.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of hh-applicant-tool might be problematic. Click here for more details.

Files changed (29) hide show
  1. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/PKG-INFO +6 -6
  2. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/README.md +3 -3
  3. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/main.py +2 -5
  4. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/operations/authorize.py +14 -6
  5. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/pyproject.toml +3 -3
  6. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/__init__.py +0 -0
  7. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/__main__.py +0 -0
  8. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/ai/__init__.py +0 -0
  9. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/ai/blackbox.py +0 -0
  10. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/api/__init__.py +0 -0
  11. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/api/client.py +0 -0
  12. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/api/errors.py +0 -0
  13. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/color_log.py +0 -0
  14. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/constants.py +0 -0
  15. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/mixins.py +0 -0
  16. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/operations/__init__.py +0 -0
  17. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/operations/apply_similar.py +0 -0
  18. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/operations/call_api.py +0 -0
  19. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/operations/clear_negotiations.py +0 -0
  20. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/operations/config.py +0 -0
  21. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/operations/get_employer_contacts.py +0 -0
  22. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/operations/list_resumes.py +0 -0
  23. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/operations/refresh_token.py +0 -0
  24. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/operations/reply_employers.py +0 -0
  25. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/operations/update_resumes.py +0 -0
  26. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/operations/whoami.py +0 -0
  27. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/telemetry_client.py +0 -0
  28. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/types.py +0 -0
  29. {hh_applicant_tool-0.5.4 → hh_applicant_tool-0.5.5}/hh_applicant_tool/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: hh-applicant-tool
3
- Version: 0.5.4
3
+ Version: 0.5.5
4
4
  Summary:
5
5
  Author: Senior YAML Developer
6
6
  Author-email: yamldeveloper@proton.me
@@ -12,8 +12,8 @@ Classifier: Programming Language :: Python :: 3.12
12
12
  Classifier: Programming Language :: Python :: 3.13
13
13
  Provides-Extra: qt
14
14
  Requires-Dist: prettytable (>=3.6.0,<4.0.0)
15
- Requires-Dist: pyqt6 (>=6.7.1,<7.0.0) ; extra == "qt"
16
- Requires-Dist: pyqt6-webengine (>=6.7.0,<7.0.0) ; extra == "qt"
15
+ Requires-Dist: pyqt6 (==6.7.0) ; extra == "qt"
16
+ Requires-Dist: pyqt6-webengine (==6.7.0) ; extra == "qt"
17
17
  Requires-Dist: requests[socks] (>=2.32.3,<3.0.0)
18
18
  Description-Content-Type: text/markdown
19
19
 
@@ -34,7 +34,7 @@ Description-Content-Type: text/markdown
34
34
 
35
35
  > Утилита для генерации сопроводительного письма может использовать AI
36
36
 
37
- Утилита для успешных волчат и старых волков с опытом, служащая для автоматизации действий на HH.RU таких как рассылка откликов на подходящие вакансии и обновление всех резюме (бесплатный аналог услуги на HH). Но данная утилита больше чем просто спамилка откликами, вы так же выступаете в роли тайного агента, и если в списке подходящих вакансий встречается отказ, она возвращает ссылку на обсуждение работодателя в группе [Отзывы о работодателях с HH.RU](https://t.me/otzyvy_headhunter). Там вы можете написать отзыв о работодателе и почитать чужие. Для этого собираются данные о работодателях и их вакансиях (персональные данные пользователя не передаются ни в каком виде). Отправку данных на сервер разработчика можно отключить, но тогда вы не получите ссылку на обсуждение, а так же не сможете пожаловаться на неадекватного мудака, выкатившего отказ после "небольшого" тестового задания на недельку. Через сайты на таких жаловаться бесполезно: владелец сайта за деньги или после угроз судом удаляют отзывы. Единственное место где можно написать отзыв это **Telegram**.
37
+ Утилита для успешных волчат и старых волков с опытом, служащая для автоматизации действий на HH.RU таких как рассылка откликов на подходящие вакансии и обновление всех резюме (бесплатный аналог услуги на HH). Утилита позволяет получить контактные данные работодателя, даже если тот не присылал приглашения. Для этого собираются данные о работодателях и их вакансиях (персональные данные пользователя не передаются ни в каком виде, а данные работодателя сами по себе персональными данными не являются, так как часто указаны на сайтах и так же доступны неограниченному кругу лиц на hh). Отправку этих данных на сервер разработчика можно отключить. У утилиты есть группа, с которой я еще не придумал, что делать: [Отзывы о работодателях с HH.RU](https://t.me/otzyvy_headhunter). Там сейчас постятся ссылки для отзывов на отказников.
38
38
 
39
39
  Работает с Python >= 3.10. Нужную версию Python можно поставить через
40
40
  asdf/pyenv/conda и что-то еще.
@@ -81,7 +81,7 @@ $ pipx upgrade hh-applicant-tool
81
81
  Данная политика разрешает текущему пользователю (от которого зашли) запускать скрипты. Без нее не будут работать виртуальные окружения.
82
82
  * Создайте и активируйте виртуальное окружение:
83
83
  ```ps
84
- PS> python -m pip venv hh-applicant-venv
84
+ PS> python -m venv hh-applicant-venv
85
85
  PS> .\hh-applicant-venv\Scripts\activate
86
86
  ```
87
87
  * Поставьте все пакеты в виртуальное окружение `hh-applicant-venv`:
@@ -251,7 +251,7 @@ https://hh.ru/employer/1918903
251
251
  | **call-api** | Вызов произвольного метода API с выводом результата. |
252
252
  | **refresh-token** | Обновляет access_token. |
253
253
  | **config** | Редактировать конфигурационный файл. |
254
- | **get-employer-contacts** | Получить список контактов работодателя, даже если тот не высылал приглашения. Это функционал для избранных, но в группе есть бесплатный бот с тем же функционалом. |
254
+ | **get-employer-contacts** | Получить список контактов работодателя, даже если тот не высылал приглашения. В группе есть бесплатный бот с тем же функционалом. |
255
255
 
256
256
  ### Формат текста сообщений
257
257
 
@@ -15,7 +15,7 @@
15
15
 
16
16
  > Утилита для генерации сопроводительного письма может использовать AI
17
17
 
18
- Утилита для успешных волчат и старых волков с опытом, служащая для автоматизации действий на HH.RU таких как рассылка откликов на подходящие вакансии и обновление всех резюме (бесплатный аналог услуги на HH). Но данная утилита больше чем просто спамилка откликами, вы так же выступаете в роли тайного агента, и если в списке подходящих вакансий встречается отказ, она возвращает ссылку на обсуждение работодателя в группе [Отзывы о работодателях с HH.RU](https://t.me/otzyvy_headhunter). Там вы можете написать отзыв о работодателе и почитать чужие. Для этого собираются данные о работодателях и их вакансиях (персональные данные пользователя не передаются ни в каком виде). Отправку данных на сервер разработчика можно отключить, но тогда вы не получите ссылку на обсуждение, а так же не сможете пожаловаться на неадекватного мудака, выкатившего отказ после "небольшого" тестового задания на недельку. Через сайты на таких жаловаться бесполезно: владелец сайта за деньги или после угроз судом удаляют отзывы. Единственное место где можно написать отзыв это **Telegram**.
18
+ Утилита для успешных волчат и старых волков с опытом, служащая для автоматизации действий на HH.RU таких как рассылка откликов на подходящие вакансии и обновление всех резюме (бесплатный аналог услуги на HH). Утилита позволяет получить контактные данные работодателя, даже если тот не присылал приглашения. Для этого собираются данные о работодателях и их вакансиях (персональные данные пользователя не передаются ни в каком виде, а данные работодателя сами по себе персональными данными не являются, так как часто указаны на сайтах и так же доступны неограниченному кругу лиц на hh). Отправку этих данных на сервер разработчика можно отключить. У утилиты есть группа, с которой я еще не придумал, что делать: [Отзывы о работодателях с HH.RU](https://t.me/otzyvy_headhunter). Там сейчас постятся ссылки для отзывов на отказников.
19
19
 
20
20
  Работает с Python >= 3.10. Нужную версию Python можно поставить через
21
21
  asdf/pyenv/conda и что-то еще.
@@ -62,7 +62,7 @@ $ pipx upgrade hh-applicant-tool
62
62
  Данная политика разрешает текущему пользователю (от которого зашли) запускать скрипты. Без нее не будут работать виртуальные окружения.
63
63
  * Создайте и активируйте виртуальное окружение:
64
64
  ```ps
65
- PS> python -m pip venv hh-applicant-venv
65
+ PS> python -m venv hh-applicant-venv
66
66
  PS> .\hh-applicant-venv\Scripts\activate
67
67
  ```
68
68
  * Поставьте все пакеты в виртуальное окружение `hh-applicant-venv`:
@@ -232,7 +232,7 @@ https://hh.ru/employer/1918903
232
232
  | **call-api** | Вызов произвольного метода API с выводом результата. |
233
233
  | **refresh-token** | Обновляет access_token. |
234
234
  | **config** | Редактировать конфигурационный файл. |
235
- | **get-employer-contacts** | Получить список контактов работодателя, даже если тот не высылал приглашения. Это функционал для избранных, но в группе есть бесплатный бот с тем же функционалом. |
235
+ | **get-employer-contacts** | Получить список контактов работодателя, даже если тот не высылал приглашения. В группе есть бесплатный бот с тем же функционалом. |
236
236
 
237
237
  ### Формат текста сообщений
238
238
 
@@ -21,8 +21,7 @@ logger = logging.getLogger(__package__)
21
21
 
22
22
 
23
23
  class BaseOperation:
24
- def setup_parser(self, parser: argparse.ArgumentParser) -> None:
25
- ...
24
+ def setup_parser(self, parser: argparse.ArgumentParser) -> None: ...
26
25
 
27
26
  def run(self, args: argparse.Namespace) -> None | int:
28
27
  raise NotImplementedError()
@@ -99,9 +98,7 @@ class HHApplicantTool:
99
98
  default=0.334,
100
99
  help="Задержка между запросами к API HH",
101
100
  )
102
- parser.add_argument(
103
- "--user-agent", help="User-Agent для каждого запроса"
104
- )
101
+ parser.add_argument("--user-agent", help="User-Agent для каждого запроса")
105
102
  parser.add_argument(
106
103
  "--proxy-url", help="Прокси, используемый для запросов к API"
107
104
  )
@@ -4,12 +4,18 @@ import time
4
4
  from urllib.parse import parse_qs, urlsplit
5
5
  import sys
6
6
  from typing import Any
7
+ from ..utils import print_err
8
+
9
+
10
+ QT_IMPORTED = False
7
11
 
8
12
  try:
9
13
  from PyQt6.QtCore import QUrl
10
14
  from PyQt6.QtWidgets import QApplication, QMainWindow
11
15
  from PyQt6.QtWebEngineCore import QWebEngineUrlSchemeHandler
12
16
  from PyQt6.QtWebEngineWidgets import QWebEngineView
17
+
18
+ QT_IMPORTED = True
13
19
  except ImportError:
14
20
  # Заглушки чтобы на сервере не нужно было ставить сотни мегабайт qt-говна
15
21
 
@@ -48,9 +54,7 @@ class HHAndroidUrlSchemeHandler(QWebEngineUrlSchemeHandler):
48
54
 
49
55
 
50
56
  class WebViewWindow(QMainWindow):
51
- def __init__(
52
- self, url: str, oauth_client: OAuthClient, config: Config
53
- ) -> None:
57
+ def __init__(self, url: str, oauth_client: OAuthClient, config: Config) -> None:
54
58
  super().__init__()
55
59
  self.oauth_client = oauth_client
56
60
  self.config = config
@@ -85,10 +89,14 @@ class Operation(BaseOperation):
85
89
  pass
86
90
 
87
91
  def run(self, args: Namespace) -> None:
92
+ if not QT_IMPORTED:
93
+ print_err(
94
+ "❗Критиническая Ошибка: PyQt6 не был импортирован, возможно, вы долбоеб и забыли его установить, либо же криворукие разрабы этой либы опять все сломали..."
95
+ )
96
+ sys.exit(1)
97
+
88
98
  oauth = OAuthClient(
89
- user_agent=(
90
- args.config["oauth_user_agent"] or args.config["user_agent"]
91
- ),
99
+ user_agent=(args.config["oauth_user_agent"] or args.config["user_agent"]),
92
100
  )
93
101
 
94
102
  app = QApplication(sys.argv)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "hh-applicant-tool"
3
- version = "0.5.4"
3
+ version = "0.5.5"
4
4
  description = ""
5
5
  authors = ["Senior YAML Developer <yamldeveloper@proton.me>"]
6
6
  readme = "README.md"
@@ -10,8 +10,8 @@ packages = [{include = "hh_applicant_tool"}]
10
10
  python = "^3.10"
11
11
  requests = {extras = ["socks"], version = "^2.32.3"}
12
12
  prettytable = "^3.6.0"
13
- pyqt6 = { version = "^6.7.1", optional = true }
14
- pyqt6-webengine = { version = "^6.7.0", optional = true }
13
+ pyqt6 = { version = "6.7.0", optional = true }
14
+ pyqt6-webengine = { version = "6.7.0", optional = true }
15
15
 
16
16
  [tool.poetry.extras]
17
17
  qt = ["pyqt6", "pyqt6-webengine"]