Skip to content

Commit

Permalink
отключение телеметрии
Browse files Browse the repository at this point in the history
  • Loading branch information
s3rgeym committed Nov 15, 2024
1 parent 872cfb4 commit 6686121
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 11 deletions.
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,8 @@ https://hh.ru/employer/1918903

### Сбор данных

> Данный функционал можно отключить с помощью специльного флага, но ради котят и из-за ненависти к херкам не делайте этого!
Утилита собирает и передает на сервер разработчика следующую информацию:

1. Название вакансии.
Expand All @@ -278,10 +280,8 @@ https://hh.ru/employer/1918903
1. Название компании.
1. Тип компании.
1. Описание компании.
1. Ссылка на сайт компании.
1. Ссылка на сайт компании.
1. Город, в котором находится компания.

[Исходники сервера](https://gist.github.com/s3rgeym/b9fb04ef529a511326413c1090597ac5)

!!! УТИЛИТА НЕ СОБИРАЕТ НИКАКИХ ПЕРСОНАЛЬНЫХ ДАННЫХ ПОЛЬЗОВАТЕЛЕЙ (IP ТОЖЕ НЕ СОХРАНЯЕТ) — ТОЛЬКО ДАННЫЕ ВСЯКИХ РАБОТАДАТЕЛЕЙ И ИХ ОВЧАРОК. ТАК ЖЕ Я ОБЕЩАЮ, ЧТО УТИЛИТА ВСЕГДА БУДЕТ БЕСПЛАТНОЙ, ВСЕ КТО ЕЮ ПЫТАЮТСЯ ТОРГОВАТЬ — УЕБКИ И У НИХ ПОЧЕРНЕЕТ И ОТВАЛИТСЯ ХУЙ. ЕДИНСТВЕННАЯ ПЛАТА ЗА ЕЕ ИСПОЛЬЗОВАНИЕ — ЭТО ПОМОЩЬ В ПАРСИНГЕ САЙТА HEADHUNTER (МЕНЯ ИНТЕРЕСУЕТ ЕГО БАЗА КОМПАНИЙ)
**УТИЛИТА НЕ ПЕРЕДАЕТ НИКАКИХ ПЕРСОНАЛЬНЫХ ДАННЫХ ПОЛЬЗОВАТЕЛЕЙ — ТОЛЬКО ДАННЫЕ ВСЯКИХ РАБОТАДАТЕЛЕЙ И ИХ ОВЧАРОК. СЕРВЕР НЕ ХРАНИТ IP ОТПРАВИТЕЛЯ. ЛОГИ НА СЕРВЕРЕ НЕ ВЕДУТСЯ. ТАК ЖЕ Я ОБЕЩАЮ, ЧТО УТИЛИТА ВСЕГДА БУДЕТ БЕСПЛАТНОЙ, ВСЕ КТО ЕЮ ПЫТАЮТСЯ ТОРГОВАТЬ — УЕБКИ, И У НИХ ПОЧЕРНЕЕТ И ОТВАЛИТСЯ ХУЙ. ЕДИНСТВЕННАЯ ПЛАТА ЗА ЕЕ ИСПОЛЬЗОВАНИЕ — ЭТО ПОМОЩЬ В ПАРСИНГЕ САЙТА HEADHUNTER (МЕНЯ ИНТЕРЕСУЕТ ЕГО БАЗА КОМПАНИЙ).**

7 changes: 7 additions & 0 deletions hh_applicant_tool/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ class Namespace(argparse.Namespace):
delay: float
user_agent: str
proxy_url: str
disable_telemetry: bool


def get_proxies(args: Namespace) -> dict[Literal["http", "https"], str | None]:
Expand Down Expand Up @@ -103,6 +104,12 @@ def create_parser(self) -> argparse.ArgumentParser:
parser.add_argument(
"--proxy-url", help="Прокси, используемый для запросов к API"
)
parser.add_argument(
"--disable-telemetry",
default=False,
action=argparse.BooleanOptionalAction,
help="Отключить телеметрию",
)
subparsers = parser.add_subparsers(help="commands")
package_dir = Path(__file__).resolve().parent / OPERATIONS
for _, module_name, _ in iter_modules([str(package_dir)]):
Expand Down
29 changes: 23 additions & 6 deletions hh_applicant_tool/operations/apply_similar.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,20 @@ def _parse_interval(interval: str) -> Tuple[float, float]:
return min(min_interval, max_interval), max(min_interval, max_interval)

def run(self, args: Namespace) -> None:
self.enable_telemetry = True
if args.disable_telemetry:
print(
"👁️ Телеметрия используется только для сбора данных о работодателях и их вакансиях, персональные данные пользователей не передаются на сервер."
)
if (
input("Вы действительно хотите отключить телеметрию (д/Н)? ")
.lower()
.startswith(("д", "y"))
):
self.enable_telemetry = False
logger.info("Телеметрия отключена")
else:
logger.info("Телеметрия включена")
api = get_api(args)
resume_id = self._get_resume_id(args, api)
application_messages = self._get_application_messages(args)
Expand Down Expand Up @@ -156,8 +170,8 @@ def _apply_similar(
message_min_interval: float,
message_max_interval: float,
order_by: str,
search: str | None = None,
reply_message: str | None = None,
search: str | None,
reply_message: str | None,
) -> None:
telemetry_client = TelemetryClient(proxies=api.proxies)
telemetry_data = defaultdict(dict)
Expand All @@ -172,7 +186,8 @@ def _apply_similar(
search=search,
)

self._collect_vacancy_telemetry(telemetry_data, vacancies)
if self.enable_telemetry:
self._collect_vacancy_telemetry(telemetry_data, vacancies)

me = api.get("/me")

Expand Down Expand Up @@ -287,7 +302,8 @@ def _apply_similar(
employer_id = vacancy.get("employer", {}).get("id")

if (
employer_id
self.enable_telemetry
and employer_id
and employer_id not in telemetry_data["employers"]
and 200 > len(telemetry_data["employers"])
):
Expand Down Expand Up @@ -346,8 +362,9 @@ def _apply_similar(

print("📝 Отклики на вакансии разосланы!")

# Я собираюсь выложить контакты херок в общественный доступ
self._send_telemetry(telemetry_client, telemetry_data)
if self.enable_telemetry:
# Я собираюсь выложить контакты херок в общественный доступ
self._send_telemetry(telemetry_client, telemetry_data)

def _get_vacancies(
self,
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "hh-applicant-tool"
version = "0.3.9"
version = "0.4.0"
description = ""
authors = ["Senior YAML Developer <yamldeveloper@proton.me>"]
readme = "README.md"
Expand Down

0 comments on commit 6686121

Please sign in to comment.