Skip to content

Instantly share code, notes, and snippets.

View vitalibaranov's full-sized avatar

Vitaliy Baranov vitalibaranov

View GitHub Profile
import requests
cookies = {
'__ddg1_': 'P9fyAdHwfSvj2TCRYxof',
'_xsrf': '30f3fa354a1646a3b02b17c488fb24fe',
'tmsuid': '56246550-0cc0-4685-a28d-e4851bc1166c',
'tmr_lvid': 'e1e09a3b70933b28bff6d02a08335773',
'tmr_lvidTS': '1735201845896',
'_ym_uid': '1735201846541518173',
'_ym_d': '1735201846',
@vitalibaranov
vitalibaranov / gist:18035db5080db43b554dce8bc299ccb0
Created May 20, 2025 14:04
Voximplant api request failure
java.net.UnknownHostException: api.voximplant.com: Temporary failure in name resolution
at java.base/java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
at java.base/java.net.Inet4AddressImpl.lookupAllHostAddr(Inet4AddressImpl.java:43)
at java.base/java.net.InetAddress$PlatformResolver.lookupByName(InetAddress.java:1211)
at java.base/java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1828)
at java.base/java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:1139)
at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1818)
at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1688)
at org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:112)
** Флоу регистрации
*** Основные поля(dt, company_id, manager_id, event_id, session_id и тд)
*** stage - название этапа регистрации
// нет (на беке нет этих названий)
*** stage_number - номер этапа
// нет, на беке хранятся только внутренние статусы - INITIALIZING, PREPARED_FOR_VERIFICATION, VERIFICATION_FORM_UPLOADED, VERIFICATION_DOCS_UPLOADED, VERIFICATION_FAILED, VERIFIED, ACCOUNT_CREDITED, PREPARED_FOR_CALLS
**** Должны быть этапы
// что имеется в виду?
**** Начали создавать аккаунт, нажали на кнопку подключить
// нет
@vitalibaranov
vitalibaranov / gist:79f8e59589140db07fcccf9cabb9b065
Last active May 6, 2025 05:53
Бековая аналитика звонков
test
test
test
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|QUERY PLAN |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|Limit (cost=0.09..552.94 rows=51 width=452) (actual time=157.297..480.580 rows=51 loops=1) |
| -> Index Scan Backward using bell_notification_history_pkey on bell_notification_history bnh1_0 (cost=0.09..89735.69 rows=8278 width=452) (actual time=157.296..480.567 rows=51 loops=1)|
| Filter: (manager_id = 91092)
Декомпозиция
Создание аккаунта
1. Первый шаг (создание аккаунта с вводом пароля)
[tms-api] мутация создания voximp интеграциии 0,5
[tms-webcall] ручка создания аккаунта + консьюмер настройки (+ новый сервис) 2
[tms-api] резолвер интеграции voximplant 0,5
[tms-webcall] ручка получения аккаунта - 0,5
2. Второй шаг верификация
[tms-api] добавление в резолвер интеграции данных выдача урла верификации - 0,25
+-----------+-----------------------+-------------------+--------------------------------+-------+-------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-------------------------------------------------------+------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------+------------------------+----------------------+----------------------+------------------------+
|service |timestamp |observed_timestamp |trace_id |span_id|severity_text|body
@vitalibaranov
vitalibaranov / split_talantix_csv.py
Created January 22, 2025 13:13
Spit talantix csv file
import argparse
import csv
import os.path
MAX_AVAILABLE_SIZE = 10_000_000
def read_vacancies(vacancies_file_path):
if not vacancies_file_path:
return {}
1. Накатить версию эластика с установленным плагином
https://jira.hh.ru/browse/HH-245087
cd /opt/deploy && git fetch && git co HH-245087
ansible-playbook -vv -i /opt/deploy/testenv -i /opt/deploy/extenv -i /opt/deploy/public/playbooks/roles/search/search_inventory_test.py -e '@//opt/deploy/secure/utils/common_vars.json' -e '{"container_state": "restarted"}' --skip-tags=production-only,resolv --tags=all --limit='all:!skip-hosts' /opt/deploy/playbooks/tms-elasticsearch-teststands.yml
2. Создать новый индекс persons
Задача на эксп, на стенде можно сделать через команду
curl -XPUT "http://tms17.pyn.ru:7600/persons" -H 'Content-Type: application/json' -d'
import argparse
import csv
import os.path
MAX_AVAILABLE_SIZE = 10_000_000
def main(file_path, output_directory_path):
header_row, data_rows = read_file_data(file_path)
vacancy_sizes = get_vacancy_rows_sizes(data_rows)