You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
Ibraheem Saleh 336ebc43de Restructure: pre-downloaded letters in git, add 6 new sources
Architecture change:
- letters/ directory stores pre-parsed JSON, committed to git
- download_letters.py handles fetching from Gutenberg (run by maintainers)
- love_letters.py reads from letters/ only (no internet needed)

New sources (6 collections, 774 additional letters):
- Robert Browning & Elizabeth Barrett Browning, Vol. 1 (281 letters)
- Robert Browning & Elizabeth Barrett Browning, Vol. 2 (292 letters)
- Robert Burns to Clarinda / Agnes McLehose (60 letters)
- Dorothy Osborne to Sir William Temple (51 letters)
- Beethoven's Letters, love letters selected (30 letters)
- Mozart's Letters, love letters selected (60 letters)

Total: 1,307 letters from 11 collections spanning the 12th–19th centuries.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 week ago
letters Restructure: pre-downloaded letters in git, add 6 new sources 1 week ago
.gitignore Restructure: pre-downloaded letters in git, add 6 new sources 1 week ago
README.md Restructure: pre-downloaded letters in git, add 6 new sources 1 week ago
download_letters.py Restructure: pre-downloaded letters in git, add 6 new sources 1 week ago
love_letters.py Restructure: pre-downloaded letters in git, add 6 new sources 1 week ago

README.md

letters

A Python app that displays random historic love letters from authentic sources, downloaded from Project Gutenberg.

Quick Start

python3 love_letters.py              # Show a random love letter
python3 love_letters.py -n 3         # Show 3 random love letters
python3 love_letters.py --list       # List available collections
python3 love_letters.py --source keats_brawne   # Filter by source

The letters/ directory ships with 1,300+ pre-parsed letters — no download needed.

Refreshing / Adding Sources

To re-download all letter collections from Project Gutenberg:

python3 download_letters.py           # Download (skips existing)
python3 download_letters.py --force   # Re-download everything
python3 download_letters.py --list    # List available sources

Sources

Collection Author → Recipient Period Letters
Henry VIII to Anne Boleyn Henry VIII → Anne Boleyn c. 15271528 18
Mary Wollstonecraft to Gilbert Imlay Mary Wollstonecraft → Gilbert Imlay 17931795 75
Letters of Abelard and Heloise Abelard & Heloise 12th century 6
Napoleon's Letters to Josephine Napoleon Bonaparte → Josephine 17961812 395
Letters of John Keats to Fanny Brawne John Keats → Fanny Brawne 18191820 39
Robert Browning & Elizabeth Barrett Barrett, Vol. 1 Browning ↔ Barrett 18451846 281
Robert Browning & Elizabeth Barrett Barrett, Vol. 2 Browning ↔ Barrett 18451846 292
Robert Burns to Clarinda Robert Burns → Agnes McLehose 17871794 60
Dorothy Osborne to Sir William Temple Dorothy Osborne → William Temple 16521654 51
Beethoven's Letters (love letters selected) Ludwig van Beethoven 17901826 30
Mozart's Letters (love letters selected) Wolfgang Amadeus Mozart 17691791 60

All texts are sourced from Project Gutenberg and are in the public domain.

Requirements

Python 3.10+ (no external dependencies).