Очень часто радиолюбители в коллбуки qrz.ru и qrz.com вносят информацию о поддерживаемых ими способах QSL обмена в поле VIA (хотя по идее оно предназначено несколько для другого – для позывного QSL менеджера). Причем делают это в абсолютно свободной форме. Эти данные я заношу в соответствующие поля QSO в журнале LogHX и использую при последующей выписке/отправке карточек через бюро. После того как я начал много работать в эфире, стало довольно утомительно вручную выполнять все эти действия. Захотелось как-то автоматизировать процесс и тем самым сэкономить немного времени, которого постоянная хроническая нехватка.
При этом, я уже давно хотел посмотреть на очень модный в последнее время язык программирования Python, хотя бы в самых общих чертах. Что собственно и обусловило выбор языка для реализации этой идеи.
В итоге за пару вечеров я набросал довольно корявенькую в техническом плане утилиту, чтобы проверить насколько работоспособна в принципе идея подобной автоматизации. Скажем так – прототип, но тем не менее полностью рабочий функционально и который успешно используется на постоянной основе.
В общих чертах алгоритм следующий:
- На вход утилиты подается файл in.adi экспортированный из аппаратного журнала и по каждому из QSO:
- Сначала ищется строка VIA на страничке корреспондента на qrz.com .
- Если на qrz.com ничего не найдено, то для русских позывных:
a) Идет поиск строки VIA на qrz.ru,
б) Если не найдена, то запрашиваются данные через API qrz.ru
в) Если и тут пусто, то анализируется блок QSL data на qrzcq.com
– для всех прочих позывных (включая специальные):
а) Анализируется блок QSL data на qrzcq.com
б) Если там пусто, то идет поиск строки VIA на qrz.ru,
в) Если не найдена, то запрашиваются данные через API qrz.ru - На выходе утилиты формируется файл out.adi.
- В поле USER1 out.adi будет добавлено: B – если корреспондент поддерживает обмен через бюро; D – если корреспондент поддерживает обмен директом, но не использует бюро; O – если корреспондент поддерживает запрос отправки карточки директом через сервис OQRS; E – если корреспондент поддерживает только электронный обмен.
- В поле USER2 out.adi будет добавлена найденная строка VIA.
- В поле USER3 out.adi будет добавлена ссылка на страничку корреспондента в коллбуке на которой была найдена информация.
- В поле QSL_VIA out.adi будет добавлен позывной QSL менеджера (если есть), определение позывного по входящей строке производится косвенным образом через api qrz.com.
Скачать текущую актуальную версию 0.2 утилиты pyQSLRoute
В дальнейших планах оформить эту утилиту в виде некого подобия плагина для LogHX (прямая работа с БД лога, какие-то GUI отражения процесса работы, причесать код и т.д.)
from RA9YRU
пару месяцев назад, с помощью Вашей утилиты проверил свой лог на способы обмена qsl. дополнительной строкой вывел позывные SK. был удивлен что кто-то из радиолюбителей уже не встретится в эфире, ведь проводил связь буквально месяц назад. данной функции не нашел ни в одном логе, считаю плагином будет много полезной информации и удачным дополнением. попытка собрать что-то в единый продукт была у Checklog (R2ADF) – но у него эта программа на платной основе и совсем неадекватная реакция на обратную связь пользователей.
Очень полезная штука! С Вашего позволения, встрою к себе в продукт Ваши наработки.
Может на GitHub?