Add README.md

This commit is contained in:
Edward Betts 2025-02-21 17:08:48 -05:00
parent 7f7cbfe65e
commit 520a666b3d

81
README.md Normal file
View file

@ -0,0 +1,81 @@
# Ferrocarril Central Monitor
Check for new train schedules on the Ferrocarril Central Andino line from Lima to Huancayo.
This script monitors the Ferrocarril Central Andino website (`https://ferrocarrilcentral.com.pe/appfcca/`) for available travel dates, compares them against previously seen dates, and sends an email notification when new dates are detected. Designed to run as a cron job for automated daily checks.
- **Author**: Edward Betts
- **Email**: edward@4angle.com
- **Repository**: https://git.4angle.com/edward/ferrocarrilcentral
- **License**: MIT
## Installation
1. **Clone the Repository**:
```bash
git clone https://git.4angle.com/edward/ferrocarrilcentral.git
cd ferrocarrilcentral
```
2. **Install Dependencies**:
Requires Python 3 and the following packages:
```bash
pip install requests lxml
```
3. **Make Executable**:
```bash
chmod +x check.py
```
## Usage
Run the script manually to test:
```bash
./check.py
```
For automated monitoring, add it to your crontab to run twice daily (e.g., 8 AM and 8 PM):
```bash
crontab -e
```
Add this line:
```
0 8,20 * * * /home/edward/src/ferrocarrilcentral/check.py
```
- **Interactive Mode**: Outputs informational messages (e.g., "New dates found") to stdout.
- **Cron Mode**: Silent unless errors occur, which are logged to stdout (captured by cron).
## Configuration
1. **Config File**:
Create `~/.config/ferrocarril/config` (INI format) with your SMTP settings:
```
[mail]
smtp_host = your.smtp.server
from_address = your.email@example.com
to_address = recipient@example.com
```
2. **Data Storage**:
- Previously seen dates are stored in `~/lib/data/ferrocarril_dates.json`.
- The script creates this file automatically on the first successful run.
## How It Works
1. Fetches the webpage from `https://ferrocarrilcentral.com.pe/appfcca/`.
2. Parses available travel dates using `lxml.html`.
3. Compares against dates in `~/lib/data/ferrocarril_dates.json`.
4. Sends an email if new dates are found and updates the JSON file.
## Requirements
- Python 3.6+
- `requests` library for HTTP requests
- `lxml` library for HTML parsing
- An SMTP server for email notifications
## License
This project is licensed under the MIT License.