Make printable tables using http://radioscanner.ru frequency db
Project description
freq_table
Мощный инструмент для создания красиво оформленных таблиц радиочастот.
Проект имеет большой потенциал, помощь в развитии приветствуется.
Пример сгенерированной таблицы (кликабельно):
Возможности
- Получение записей из базы портала radioscanner.ru. Сайт поддерживает расширенные поиск и фильтрацию.
- Сохранение и редактирование записей в формате YAML, объединение и обновление списков.
- Генерация HTML-файлов по шаблону, стилизация с помощью CSS.
- Простая кастомизация не требует знания HTML&CSS.
Недостатки:
- Остаётся необходимость (полу)ручной подгонки вёрстки.
Использование
Установка
-
Убедиться в наличии Python (протестировано на версии 3.7).
-
Рекомендуемая установка (необходим pipx):
pipx install freq_table
ИЛИ
Простая установка (может привести к конфликту зависимостей):
pip install --user freq_table
Конфигурирование
-
Создать пустую папку и перейти в неё.
-
Инициализировать файлы конфигурации и шаблонов:
freq_table --init
Должно появиться три файла с предустановленными параметрами, которые можно менять по своему усмотрению. Текущие параметры подогнаны под вертикальный лист формата A1. Чтобы вернуть изначальные, просто начните заново в другой папке.
-
В файле
config.yaml
:- Вписать URL нужной таблицы с сайта radioscanner.ru (со всеми фильтрами), не забудьте заменить номер страницы на
{page}
. - Настроить содержимое и заголовки колонок по своему вкусу, ширину можно подобрать позже, экспериментальным путём.
- Вписать URL нужной таблицы с сайта radioscanner.ru (со всеми фильтрами), не забудьте заменить номер страницы на
-
Можно поменять также файлы
output.html.mako
иoutput.css
.
Генерация таблицы
-
Первый запуск загрузит и сохранит записи с сайта в файл
records.yaml
, а также сразу сгенерирует таблицу:freq_table --dump
-
Открыть полученный
output.html
в достаточно новом браузере (рекомендую Chrome, Yandex). Открыть предпросмотр печати, настроить параметры страницы. Желательно сразу выбрать экспорт в PDF. -
Кол-во строк в каждой таблице регулируется ключом
slices
в конфиге. Эмпирически подобрать нужные значения. -
После каждого изменения необходимо запускать скрипт (без аргументов) и перезагружать страницу в браузере. При изменении CSS достаточно перезагрузки страницы.
Продвинутое использование
Программа работает со списком записей. Запись представляет собой частоту и произвольную информацию, ассоциированную с ней. Обязательные поля:
frequency
- частота (в МГц), по ней записи сортируютсяurl
- уникальный идентификатор, при скрейпинге с сайта соответствует URL страницы
При загрузке записей из нескольких источников (интернет, файлы) каждая обработанная запись перезаписывает предыдущие с тем же url
.
В будущем планируется добавить инструменты для разрешения конфликтов вручную.
Подробное описание опций запуска программы можно получить, выполнив:
freq_table --help
Редактирование и обновление записей
-
Можно редактировать записи в файле
records.yaml
и добавлять новые. -
Получить новые записи с сервера (существующие при этом изменены не будут):
freq_table -s -l -d
-
Получить новые записи с перезаписью существующих:
freq_table -u -l -d
Доработка кода
Если хочется залезть в код ручками:
- Склонировать этот репозиторий.
pip install -e .
- ???
- Profit! Любые изменения в коде будут сразу подхватываться.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for freq_table-0.2.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d83381461f989f3b56f1594d6a1926f7eecf4f6d66b5463b9e801d7ee6a03f4 |
|
MD5 | 53341bde4502a9b2c2f9d0ce99ca4d46 |
|
BLAKE2b-256 | 98ff92f24101227380d0ad7035511219539f4de670f33c0ec64a8e965d83cfec |