church-api/README_BULLETIN_CLEANING.md
Benjamin Slingo 0c06e159bb Initial commit: Church API Rust implementation
Complete church management system with bulletin management, media processing, live streaming integration, and web interface. Includes authentication, email notifications, database migrations, and comprehensive test suite.
2025-08-19 20:56:41 -04:00

105 lines
3.6 KiB
Markdown

# 📱 iOS Bulletin Text Cleaning Tool
## Complete Solution for iOS App Compatibility
This tool cleans **all bulletin text fields** to ensure perfect compatibility with your iOS app:
### ✅ What it cleans:
1. **HTML Entities** - Decodes ALL entities including:
- ` ` → space
- `&``&`
- `&lt;``<`
- `&gt;``>`
- `&quot;``"`
- `&apos;`, `&#39;``'`
- **Extended Latin**: `&aelig;``æ`, `&eacute;``é`, `&ntilde;``ñ`, etc.
- **Special chars**: `&copy;``©`, `&trade;``™`, `&hellip;``…`, etc.
- **Smart quotes**: `&ldquo;`/`&rdquo;` → `"`, `&lsquo;`/`&rsquo;` → `'`
2. **Line Endings** - Converts Windows (`\r\n`) to Unix (`\n`)
3. **Whitespace** - Normalizes excessive spaces, tabs, and newlines
4. **HTML Tags** - Removes tags but converts `<br/>`, `</p>`, `</div>` to newlines
### 🎯 Target Fields:
- `title`
- `scripture_reading`
- `sabbath_school`
- `divine_worship`
- `sunset`
## 🚀 Usage
```bash
# Set your database connection (replace with your actual credentials)
export DATABASE_URL="postgresql://user:password@host/database"
# Run the iOS bulletin cleaner
cargo run --bin clean-bulletin-text
```
## 📊 Example Output
```
📱 Church API - iOS Bulletin Text Cleaner
==========================================
Cleaning all bulletin text fields for iOS compatibility:
• Decodes ALL HTML entities (&nbsp;, &aelig;, &amp;, etc.)
• Converts Windows line endings (\r\n) to Unix (\n)
• Trims excessive whitespace and normalizes spacing
• Targets: title, scripture_reading, sabbath_school, divine_worship, sunset
📡 Connecting to database...
✅ Connected successfully!
🔍 Analyzing bulletin text fields...
📊 Bulletin Analysis Results:
• Total bulletins: 45
• Bulletins with HTML entities: 12
• Bulletins with Windows line endings: 3
• Bulletins with excessive whitespace: 8
• Bulletins needing cleaning: 18
🚀 Starting bulletin text cleanup for iOS compatibility...
🧹 Processing bulletin text fields...
📝 Found 18 bulletins needing text cleaning
📄 Bulletin Weekly Bulletin - January 14, 2025 (1/18): 3 fields cleaned
• scripture: 'Romans&nbsp;8:28&nbsp;-&nbsp;All...' → 'Romans 8:28 - All things work...'
• divine_worship: '<p>Service&nbsp;begins&nbsp;at...' → 'Service begins at 11:00 AM...'
• sunset: 'Tonight:&nbsp;7:45&nbsp;PM' → 'Tonight: 7:45 PM'
🎉 Bulletin text cleaning completed!
📊 Cleaning Results:
• Title fields cleaned: 5
• Scripture readings cleaned: 12
• Sabbath school sections cleaned: 8
• Divine worship sections cleaned: 15
• Sunset times cleaned: 6
• Total text fields cleaned: 46
• Bulletins modified: 18
⏱️ Duration: 234ms
🔍 Verifying iOS compatibility...
✅ Success! All bulletin text is now iOS-compatible.
📱 iOS app will receive clean text with Unix line endings.
```
## 🔄 What happens after running:
1. **Database is permanently cleaned** - No more HTML entities in stored data
2. **API responses are clean** - Existing output sanitization still works
3. **iOS app gets perfect text** - Unix line endings, no HTML entities
4. **Future data stays clean** - Input sanitization prevents new dirty data
## ⚡ Performance Benefits:
- **Faster API responses** - No cleaning needed on every request
- **Better iOS rendering** - Clean text displays perfectly
- **Consistent data** - All text fields use the same format
- **Developer friendly** - Direct database queries return clean data
Your iOS app will now receive perfectly clean bulletin text! 📱✨