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 7fa79a1ba7 Add love letters app with Project Gutenberg sources
Python app that downloads and displays random historic love letters from
five authentic collections on Project Gutenberg:

- Henry VIII to Anne Boleyn (c. 1527-1528)
- Mary Wollstonecraft to Gilbert Imlay (1793-1795)
- Abelard & Heloise (12th century)
- Napoleon Bonaparte to Josephine (1796-1812)
- John Keats to Fanny Brawne (1819-1820)

Features: local caching, source filtering, multi-letter display,
text wrapping, and long letter truncation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 week ago
.gitignore Add love letters app with Project Gutenberg sources 1 week ago
README.md Add love letters app with Project Gutenberg sources 1 week ago
love_letters.py Add love letters app with Project Gutenberg sources 1 week ago

README.md

letters

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

Usage

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
python3 love_letters.py --refresh    # Re-download all sources

Sources

Collection Author → Recipient Period
The Love Letters of Henry VIII to Anne Boleyn Henry VIII → Anne Boleyn c. 15271528
The Love Letters of Mary Wollstonecraft to Gilbert Imlay Mary Wollstonecraft → Gilbert Imlay 17931795
Letters of Abelard and Heloise Abelard & Heloise → each other 12th century
Napoleon's Letters to Josephine Napoleon Bonaparte → Josephine 17961812
Letters of John Keats to Fanny Brawne John Keats → Fanny Brawne 18191820

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

Requirements

Python 3.10+ (no external dependencies). An internet connection is required on first run to download the letter collections; they are cached locally after that.