snowwm / freq-table

Make printable tables using http://radioscanner.ru frequency DB.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

freq_table

PyPI version PyPI pyversion

Мощный инструмент для создания красиво оформленных таблиц радиочастот.
Проект имеет большой потенциал, помощь в развитии приветствуется.

Внимание! До версии 1.0.0 интерфейс и функциональность будут нестабильными.

Пример сгенерированной таблицы (кликабельно): Sample

Возможности

  • Получение записей из базы портала radioscanner.ru. Сайт поддерживает расширенные поиск и фильтрацию.
  • Сохранение и редактирование записей в формате YAML, объединение и обновление списков.
  • Генерация HTML-файлов по шаблону, стилизация с помощью CSS.
  • Простая кастомизация не требует знания HTML&CSS.

Недостатки:

  • Остаётся необходимость (полу)ручной подгонки вёрстки.

Использование

Установка

  1. Убедиться в наличии Python (протестировано на версии 3.7).

  2. Рекомендуемая установка (необходим pipx):

    pipx install freq_table
    

    ИЛИ

    Простая установка (может привести к конфликту зависимостей):

    pip install --user freq_table
    

Конфигурирование

  1. Создать пустую папку и перейти в неё.

  2. Инициализировать файлы конфигурации и шаблонов:

    freq_table --init
    

    Должно появиться три файла с предустановленными параметрами, которые можно менять по своему усмотрению. Текущие параметры подогнаны под вертикальный лист формата A1. Чтобы вернуть изначальные, просто начните заново в другой папке.

  3. В файле config.yaml:

    • Вписать URL нужной таблицы с сайта radioscanner.ru (со всеми фильтрами), не забудьте заменить номер страницы на {page}.
    • Настроить содержимое и заголовки колонок по своему вкусу, ширину можно подобрать позже, экспериментальным путём.
  4. Можно поменять также файлы output.html.mako и output.css.

Генерация таблицы

  1. Первый запуск загрузит и сохранит записи с сайта в файл records.yaml, а также сразу сгенерирует таблицу:

    freq_table --dump
    
  2. Открыть полученный output.html в достаточно новом браузере (рекомендую Chrome, Yandex). Открыть предпросмотр печати, настроить параметры страницы. Желательно сразу выбрать экспорт в PDF.

  3. Кол-во строк в каждой таблице регулируется ключом slices в конфиге. Эмпирически подобрать нужные значения.

  4. После каждого изменения необходимо запускать скрипт (без аргументов) и перезагружать страницу в браузере. При изменении CSS достаточно перезагрузки страницы.

Продвинутое использование

Программа работает со списком записей. Запись представляет собой частоту и произвольную информацию, ассоциированную с ней. Обязательные поля:

  • frequency - частота (в МГц), по ней записи сортируются
  • url - уникальный идентификатор, при скрейпинге с сайта соответствует URL страницы

При загрузке записей из нескольких источников (интернет, файлы) каждая обработанная запись перезаписывает предыдущие с тем же url. В будущем планируется добавить инструменты для разрешения конфликтов вручную.

Подробное описание опций запуска программы можно получить, выполнив:

freq_table --help

Редактирование и обновление записей

  • Можно редактировать записи в файле records.yaml и добавлять новые.

  • Получить новые записи с сервера (существующие при этом изменены не будут):

    freq_table -s -l -d
    
  • Получить новые записи с перезаписью существующих:

    freq_table -u -l -d
    

Доработка кода

Если хочется залезть в код ручками:

  1. Склонировать этот репозиторий.
  2. pip install -e .
  3. ???
  4. Profit! Любые изменения в коде будут сразу подхватываться.

About

Make printable tables using http://radioscanner.ru frequency DB.

License:MIT License


Languages

Language:Python 81.7%Language:Mako 9.5%Language:CSS 6.8%Language:Makefile 2.1%