
Research
/Security News
Critical Vulnerability in NestJS Devtools: Localhost RCE via Sandbox Escape
A flawed sandbox in @nestjs/devtools-integration lets attackers run code on your machine via CSRF, leading to full Remote Code Execution (RCE).
A comprehensive, truly asynchronous tool for downloading Bible translations from BibleGateway.com
A comprehensive, truly asynchronous tool for downloading Bible translations from BibleGateway.com in multiple formats (JSON, CSV, YAML, XML) with genuine parallel downloads, retry mechanisms, and flexible output options.
aiohttp
for genuine parallelism, not just threadingpip install bygod
Clone the repository:
git clone git@github.com:Christ-Is-The-King/bible-gateway-downloader.git
cd bible-gateway-downloader
Install pipenv (if not already installed):
pip install pipenv
Install dependencies and activate virtual environment:
pipenv install
pipenv shell
Install in development mode:
pip install -e .
Clone the repository:
git clone git@github.com:Christ-Is-The-King/bible-gateway-downloader.git
cd bible-gateway-downloader
Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
Install dependencies:
pip install -r requirements.txt
Install in development mode:
pip install -e .
Build the package:
python build_package.py
Install the built package:
pip install dist/bygod-*.whl
Download a single translation in JSON format:
bygod --translations NIV --formats json
Download multiple translations in multiple formats:
bygod --translations NIV,KJV,ESV --formats json,csv,xml
Download specific books only:
bygod --translations NIV --books Genesis,Exodus,Psalms
Download with custom rate limiting and retry settings:
bygod \
--translations NIV,KJV \
--formats json,csv \
--rate-limit 10 \
--retries 5 \
--retry-delay 3 \
--timeout 600
Download only individual books (no full Bible):
bygod --translations NIV --output-mode books
Download only full Bible (no individual books):
bygod --translations NIV --output-mode book
Option | Description | Default |
---|---|---|
--translations | Comma-separated list of Bible translations | NIV |
--formats | Output formats: json, csv, xml, yaml | json |
--output-mode | Output mode: book, books, all | all |
--output-dir | Directory to save downloaded Bibles | ./bibles |
--rate-limit | Maximum concurrent requests | 5 |
--retries | Maximum retry attempts | 3 |
--retry-delay | Delay between retries (seconds) | 2 |
--timeout | Request timeout (seconds) | 300 |
--books | Comma-separated list of specific books | All books |
The downloader supports 30+ Bible translations including:
The downloader creates a well-organized directory structure:
bibles/
├── NIV/
│ ├── NIV.json # Full Bible in JSON
│ ├── NIV.csv # Full Bible in CSV
│ ├── NIV.xml # Full Bible in XML
│ ├── NIV.yml # Full Bible in YAML
│ └── books/
│ ├── Genesis.json # Individual book in JSON
│ ├── Genesis.csv # Individual book in CSV
│ ├── Genesis.xml # Individual book in XML
│ ├── Genesis.yml # Individual book in YAML
│ └── ...
├── KJV/
│ ├── KJV.json
│ ├── KJV.csv
│ └── books/
│ └── ...
└── ...
Unlike traditional threading approaches, this downloader uses:
asyncio
: Python's native async/await frameworkaiohttp
: True async HTTP client for concurrent requestsasyncio.gather()
: Parallel execution of multiple downloadsThe downloader directly parses BibleGateway HTML using:
Run the test suite to verify functionality:
# Using pipenv
pipenv run python tests.py
# Or using pip
python tests.py
The test suite includes:
The true async architecture provides significant performance improvements:
pipenv install
pipenv install --dev
pipenv run python tests.py
This project is licensed under the MIT License - see the LICENSE file for details.
Rate Limiting: If you encounter 429 errors, reduce the --rate-limit
value.
Timeout Errors: Increase the --timeout
value for slower connections.
Missing Verses: Some translations may have different HTML structures. The parser includes multiple fallback methods.
Memory Usage: For large downloads, consider downloading fewer books at once or using a lower rate limit.
FAQs
A comprehensive, truly asynchronous tool for downloading Bible translations from BibleGateway.com
We found that bygod demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
/Security News
A flawed sandbox in @nestjs/devtools-integration lets attackers run code on your machine via CSRF, leading to full Remote Code Execution (RCE).
Product
Customize license detection with Socket’s new license overlays: gain control, reduce noise, and handle edge cases with precision.
Product
Socket now supports Rust and Cargo, offering package search for all users and experimental SBOM generation for enterprise projects.