Frontend changes: - Add /admin dashboard for article management - Add AdminButton component (Alt+Shift+A on articles) - Add /api/admin/article API endpoints Backend improvements: - scraper_v2.py: Multi-layer fallback extraction (newspaper → trafilatura → readability) - translator_v2.py: Better chunking, repetition detection, validation - admin_tools.py: CLI admin commands - test_scraper.py: Individual source testing Docs: - WEB-ADMIN-GUIDE.md: Web admin usage - ADMIN-GUIDE.md: CLI admin usage - SCRAPER-IMPROVEMENT-PLAN.md: Scraper fixes details - TRANSLATION-FIX.md: Translation improvements - ADMIN-FEATURES-SUMMARY.md: Implementation summary Fixes: - Article scraping from 0 → 96+ articles working - Translation quality issues (repetition, truncation) - Added 13 new RSS sources
7.0 KiB
Burmddit Admin Tools Guide
Location: /home/ubuntu/.openclaw/workspace/burmddit/backend/admin_tools.py
Admin CLI tool for managing articles on burmddit.com
🚀 Quick Start
cd /home/ubuntu/.openclaw/workspace/burmddit/backend
python3 admin_tools.py --help
📋 Available Commands
1. List Articles
View all articles with status and stats:
# List all articles (last 20)
python3 admin_tools.py list
# List only published articles
python3 admin_tools.py list --status published
# List only drafts
python3 admin_tools.py list --status draft
# Show more results
python3 admin_tools.py list --limit 50
Output:
ID Title Status Views Ratio
----------------------------------------------------------------------------------------------------
87 Co-founders behind Reface and Prisma... published 0 52.3%
86 OpenAI, Reliance partner to add AI search... published 0 48.7%
2. Find Problem Articles
Automatically detect articles with issues:
python3 admin_tools.py find-problems
Detects:
- ❌ Translation too short (< 30% of original)
- ❌ Missing Burmese translation
- ❌ Very short articles (< 500 chars)
Example output:
Found 3 potential issues:
----------------------------------------------------------------------------------------------------
ID 50: You ar a top engineer wiht expertise on cutting ed
Issue: Translation too short
Details: EN: 51244 chars, MM: 3400 chars (6.6%)
3. Unpublish Article
Remove article from live site (changes status to "draft"):
# Unpublish article ID 50
python3 admin_tools.py unpublish 50
# With custom reason
python3 admin_tools.py unpublish 50 --reason "Translation incomplete"
What it does:
- Changes
statusfrompublishedtodraft - Article disappears from website immediately
- Data preserved in database
- Can be republished later
4. Republish Article
Restore article to live site:
# Republish article ID 50
python3 admin_tools.py republish 50
What it does:
- Changes
statusfromdrafttopublished - Article appears on website immediately
5. View Article Details
Get detailed information about an article:
# Show full details for article 50
python3 admin_tools.py details 50
Output:
================================================================================
Article 50 Details
================================================================================
Title (EN): You ar a top engineer wiht expertise on cutting ed...
Title (MM): ကျွန်တော်က AI (အထက်တန်းကွန်ပျူတာဦးနှောက်) နဲ့...
Slug: k-n-tteaa-k-ai-athk-ttn...
Status: published
Author: Compiled from 3 sources
Published: 2026-02-19 14:48:52.238217
Views: 0
Content length: 51244 chars
Burmese length: 3400 chars
Translation ratio: 6.6%
6. Delete Article (Permanent)
⚠️ WARNING: This permanently deletes the article from the database!
# Delete article (requires --confirm flag)
python3 admin_tools.py delete 50 --confirm
Use with caution! Data cannot be recovered after deletion.
🔥 Common Workflows
Fix Broken Translation Article
-
Find problem articles:
python3 admin_tools.py find-problems -
Check article details:
python3 admin_tools.py details 50 -
Unpublish if broken:
python3 admin_tools.py unpublish 50 --reason "Incomplete translation" -
Fix the article (re-translate, edit, etc.)
-
Republish:
python3 admin_tools.py republish 50
Quick Daily Check
# 1. Find any problems
python3 admin_tools.py find-problems
# 2. If issues found, unpublish them
python3 admin_tools.py unpublish <ID> --reason "Quality check"
# 3. List current published articles
python3 admin_tools.py list --status published
📊 Article Statuses
| Status | Meaning | Visible on Site? |
|---|---|---|
published |
Active article | ✅ Yes |
draft |
Unpublished/hidden | ❌ No |
🎯 Tips
Finding Articles by ID
Articles have sequential IDs (1, 2, 3...). To find a specific article:
# Show details
python3 admin_tools.py details <ID>
# Check on website
# URL format: https://burmddit.com/article/<SLUG>
Bulk Operations
To unpublish multiple articles, use a loop:
# Unpublish articles 50, 83, and 9
for id in 50 83 9; do
python3 admin_tools.py unpublish $id --reason "Translation issues"
done
Checking Translation Quality
Good translation ratios:
- ✅ 40-80% - Normal (Burmese is slightly shorter than English)
- ⚠️ 20-40% - Check manually (might be okay for technical content)
- ❌ < 20% - Likely incomplete translation
🔐 Security
Access control:
- Only works with direct server access
- Requires database credentials (
.envfile) - No public API or web interface
Backup before major operations:
# List all published articles first
python3 admin_tools.py list --status published > backup_published.txt
🐛 Troubleshooting
"Article not found"
- Check article ID is correct
- Use
listcommand to see available articles
"Database connection error"
- Check
.envfile has correctDATABASE_URL - Verify database is running
Changes not showing on website
- Frontend may cache for a few minutes
- Try clearing browser cache or private browsing
📞 Examples
Example 1: Hide broken article immediately
# Quick unpublish
cd /home/ubuntu/.openclaw/workspace/burmddit/backend
python3 admin_tools.py unpublish 50 --reason "Broken translation"
Example 2: Weekly quality check
# Find and review all problem articles
python3 admin_tools.py find-problems
# Review each one
python3 admin_tools.py details 50
python3 admin_tools.py details 83
# Unpublish bad ones
python3 admin_tools.py unpublish 50
python3 admin_tools.py unpublish 83
Example 3: Emergency cleanup
# List all published
python3 admin_tools.py list --status published
# Unpublish several at once
for id in 50 83 9; do
python3 admin_tools.py unpublish $id
done
# Verify they're hidden
python3 admin_tools.py list --status draft
🎓 Integration Ideas
Add to cron for automatic checks
Create /home/ubuntu/.openclaw/workspace/burmddit/scripts/auto-quality-check.sh:
#!/bin/bash
cd /home/ubuntu/.openclaw/workspace/burmddit/backend
# Find problems and log
python3 admin_tools.py find-problems > /tmp/quality_check.log
# If problems found, send alert
if [ $(wc -l < /tmp/quality_check.log) -gt 5 ]; then
echo "⚠️ Quality issues found - check /tmp/quality_check.log"
fi
Run weekly:
# Add to crontab
0 10 * * 1 /home/ubuntu/.openclaw/workspace/burmddit/scripts/auto-quality-check.sh
Created: 2026-02-26
Last updated: 2026-02-26 09:09 UTC