Skip to main content

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

Project description

freq_table

PyPI version PyPI pyversion

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

Пример сгенерированной таблицы (кликабельно): 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! Любые изменения в коде будут сразу подхватываться.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for freq-table, version 0.2.2
Filename, size File type Python version Upload date Hashes
Filename, size freq_table-0.2.2-py3-none-any.whl (14.1 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size freq_table-0.2.2.tar.gz (14.1 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page