| Технологии | |
| Метрики | |
| Совместимость | |
| Другое | |
Перед вами "парсер" - ПО, предназначенное для получения информации с конкретного сайта напрямую, из-за его причудливого формата хранения данных. Конкретно это приложение упрощает работу с библиотекой Российского Географического Общества. У них собраны сканы редких и очень нишевых экземпляров письменных исторических источников разных эпох, которые вам могут понадобится, скажем, для интерактивной панели на выставке. Но просто их не получить, по умолчанию можно только смотреть! Так родилась идея автоматизировать процесс создания целой горы скриншотов руками: я решил облегчить жизнь знакомым, которым пришлось этим заниматься.
Важно: я НЕ ЯВЛЯЮСЬ как владельцем сайта библиотеки, так и правообладателем публикуемого на нём материала, все права защищены и принадлежат текущим владельцам сайта!
Для сторонних разработчиков: это мой первый проект ТАКОГО уровня, так что не удивляйтесь коммитам в 2 строчки и совершенно нелепым косякам, со временем я точно освоюсь и чувство стыда у вас пройдёт :3
Приложение выполнено в формате Standalone Portable, наличие языка разработки (Python) и прочего у вас НЕ требуется! В зависимости от вашей операционной системы, в блоке Assets последнего релиза скачайте один из файлов RGO_lib_parser:
- Windows —
RGO_lib_parser_win64.exe - macOS —
RGO_lib_parser_macOS.zip - Linux (пока только Debian-based) —
RGO_lib_parser_ubuntuНиже для каждого варианта описан свой порядок действий при первом запуске.
- Запуск: найдите у себя на компьютере этот файл и запустите.
- Оповещение безопасности: встроенный защитник Windows 10+ SmartScreen наверняка покажет предупреждение ("Windows защитила ваш компьютер"), потому что я не имел оффициального (и дорогущего) сертификата подписи кода.
- Если оно вам встретилось, нажмите на "Подробнее".
- После этого появится кнопка "Выполнить в любом случае", нажимайте.
- Это нужно только при первом запуске. При желании отключите у себя насовсем, инструкции в интернете.
- Распаковка: найдите у себя на компьютере этот
.zipархив и распакуйте (например, просто двойным кликом). - Запуск:
- Найдите в распакованном архиве файл
RGO Lib Parser.app. - Рекомендовано: перетащите этот файл из "Загрузки" в вашу папку "Приложения".
- Важно: правый клик (или
Control-клик) по иконкеRGO Lib Parser.app.
- Найдите в распакованном архиве файл
- Оповещение безопасности: вы наверняка увидите предупреждение, что приложение у вас от неопределённого разработчика, потому что я не обладаю оффициальным (и дорогущим) Apple Developer ID. Но так как вы открываете через "расширенный доступ", вы увидите кнопку "Открыть" в диалоговом окне, нажимайте. После этого запуск доступен просто двойным кликом.
- Работа в терминале: запустите свой терминал.
- Перемещение: перейдите в директорию, где оказался скачанный файл (e.g.,
cd ~/Downloadsorcd ~/Загрузки). - Флаг исполняемости: предоставьте файлу разрешение на запуск командой:
chmod +x RGO_lib_parser_ubuntu - Запуск: запустите приложение командой:
./RGO_lib_parser_ubuntu. После этого запуск будет доступен этой командой или через GUI.
- Запустите приложение.
- Откройте нужный вам документ на сайте библиотеки открытого Русского географического общества (в модуле защищенного просмотра (МЗП)).
- Убедитесь, что ссылка имеет вид "https://elib.rgo.ru/safe-view/123456789/.../.../.../":

- Скопируйте имя файла на сайте (есть на само́й странице документа или в МЗП) и реальное кол-во страниц (в МЗП):

- Кайфуйте! ПО запоминает проблемы
Думаю внедрить авто-распознавание пустых (несодержательных) разворотов и/или страниц, добавить консольный интерфейс и улучшить текущий (скорее всего с переходом на PySide для удобства внедрения ассетов и высокоуровневого тестирования), начать прикреплять файлы SBOM и SLSA к релизам, покрыть разные связки компонентов теперь уже интеграционными тестами и отладить всё-всё-всё, что мне помогли найти после мягкого запуска программы!
RGO-lib-parser v1.4
├── .github/
│ ├── ISSUE_TEMPLATE/
│ ├── bug_report.yml
│ ├── config.yml
│ ├── documentation.yml
│ └── feature_request.yml
│ ├── workflows/
│ ├── .codecov.yml
│ ├── bandit.yml
│ ├── ci.yml
│ ├── crossbuild-release.yml
│ ├── dependabot.yml
│ ├── labeler.yml
│ ├── pull_request_template.md
│ └── scorecard.yml
│ ├── CODEOWNERS(.bib)
│ └── labels.yml
│
├── assets/
│ ├── macapp_lilacbook.icns
│ ├── winapp_lilacbook.ico
│ └── window_bnwbook.png
│
├── scripts/
│ └── run_app.py
│
├── src/
│ ├── __init__.py
│ ├── app_state.py
│ ├── config.py
│ ├── gui.py
│ ├── image_processing.py
│ ├── logic.py
│ ├── main.py
│ ├── settings_manager.py
│ ├── task_manager.py
│ ├── types.py
│ ├── ui_builder.py
│ └── utils.py
│
├── tests/
│ ├── __init__.py
│ ├── test_app_state.py
│ ├── test_config.py
│ ├── test_image_processing.py
│ ├── test_logic.py
│ ├── test_main.py
│ ├── test_settings_manager.py
│ ├── test_task_manager.py
│ ├── test_types.py
│ └── test_utils.py
│
├── v0.1 separated/
│ ├── sdloady_RGO_lib.py
│ └── spready_RGO_lib.py
│
├── .codacy.yaml
├── .gitattributes(.bib)
├── .gitignore(.bib)
├── .markdownlint.yaml
├── .pre-commit-config.yaml
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── CONTRIBUTING.ru.md
├── LICENSE(.bib)
├── pyproject.toml
├── README.md
├── README.ru.md
├── SECURITY.md
├── tox.ini
└── uv.lockRGO-lib-parser v1.4
├── pillow v11.2.1
├── requests v2.32.3
│ ├── certifi v2025.1.31
│ ├── charset-normalizer v3.4.1
│ ├── idna v3.10
│ └── urllib3 v2.4.0
│
├── coverage[toml] v6.5.0 (extra: dev)
├── coveralls v3.3.1 (extra: dev)
│ ├── coverage v6.5.0
│ ├── docopt v0.6.2
│ └── requests v2.32.3 (*)
│
├── lxml v5.3.2 (extra: dev)
├── mypy v1.15.0 (extra: dev)
│ ├── mypy-extensions v1.0.0
│ └── typing-extensions v4.13.2
│
├── pre-commit v3.8.0 (extra: dev)
│ ├── cfgv v3.4.0
│ ├── identify v2.6.9
│ ├── nodeenv v1.9.1
│ ├── pyyaml v6.0.2
│ └── virtualenv v20.30.0
│ ├── distlib v0.3.9
│ ├── filelock v3.18.0
│ └── platformdirs v4.3.7
│
├── pytest v8.3.5 (extra: dev)
│ ├── colorama v0.4.6
│ ├── iniconfig v2.1.0
│ ├── packaging v24.2
│ └── pluggy v1.5.0
│
├── pytest-cov v5.0.0 (extra: dev)
│ ├── coverage[toml] v6.5.0
│ └── pytest v8.3.5 (*)
│
├── ruff v0.11.5 (extra: dev)
├── types-pillow v10.2.0.20240822 (extra: dev)
└── types-requests v2.32.0.20250328 (extra: dev)
└── urllib3 v2.4.0
(*) Package tree already displayed



