AI Newsletter Digest improvements: fixed QP soft line break decoding, URL extraction, and content cleaning

This commit is contained in:
Krilly
2026-03-04 13:29:22 +00:00
parent 29a98137a7
commit 57dd294675
13706 changed files with 2114953 additions and 237629 deletions

View File

@@ -0,0 +1,550 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>OpenClaw Daily Digest</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
color: #e4e4e4;
line-height: 1.6;
padding: 20px;
}
.container {
max-width: 680px;
margin: 0 auto;
background: #0f0f1a;
border-radius: 16px;
overflow: hidden;
box-shadow: 0 20px 60px rgba(0,0,0,0.4);
}
/* Header */
.header {
background: linear-gradient(135deg, #ff6b6b 0%, #ee5a24 50%, #ff9f43 100%);
padding: 40px 30px;
text-align: center;
position: relative;
overflow: hidden;
}
.header::before {
content: '';
position: absolute;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: radial-gradient(circle, rgba(255,255,255,0.1) 1px, transparent 1px);
background-size: 20px 20px;
opacity: 0.3;
}
.crab-emoji {
font-size: 56px;
margin-bottom: 12px;
display: block;
animation: float 3s ease-in-out infinite;
}
@keyframes float {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-8px); }
}
.header h1 {
font-size: 32px;
font-weight: 800;
color: #fff;
text-shadow: 2px 2px 4px rgba(0,0,0,0.2);
letter-spacing: -0.5px;
}
.header .tagline {
color: rgba(255,255,255,0.9);
font-size: 15px;
margin-top: 8px;
font-weight: 500;
}
.date-pill {
display: inline-block;
background: rgba(255,255,255,0.2);
backdrop-filter: blur(10px);
padding: 8px 20px;
border-radius: 30px;
margin-top: 20px;
font-size: 14px;
font-weight: 600;
color: #fff;
border: 1px solid rgba(255,255,255,0.3);
}
/* Stats Bar */
.stats-bar {
display: flex;
justify-content: center;
gap: 40px;
padding: 25px 30px;
background: #1a1a2e;
border-bottom: 1px solid #2a2a3e;
}
.stat {
text-align: center;
}
.stat-number {
font-size: 28px;
font-weight: 800;
background: linear-gradient(135deg, #ff6b6b, #ff9f43);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.stat-label {
font-size: 12px;
color: #888;
text-transform: uppercase;
letter-spacing: 1px;
margin-top: 4px;
}
/* Content */
.content {
padding: 35px 30px;
}
/* Section Headers */
.section {
margin-bottom: 35px;
}
.section-header {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 20px;
padding-bottom: 12px;
border-bottom: 2px solid #2a2a3e;
}
.section-icon {
width: 40px;
height: 40px;
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
font-size: 20px;
}
.reddit-icon { background: linear-gradient(135deg, #ff4500, #ff6347); }
.hackernews-icon { background: linear-gradient(135deg, #ff6600, #ff8533); }
.twitter-icon { background: linear-gradient(135deg, #1da1f2, #0d8bd9); }
.section-title {
font-size: 20px;
font-weight: 700;
color: #fff;
}
/* Cards */
.card {
background: linear-gradient(145deg, #1a1a2e 0%, #151525 100%);
border-radius: 12px;
padding: 20px;
margin-bottom: 16px;
border: 1px solid #2a2a3e;
transition: all 0.2s ease;
}
.card:hover {
border-color: #ff6b6b;
transform: translateX(4px);
}
.card-title {
font-size: 15px;
font-weight: 600;
color: #fff;
margin-bottom: 10px;
line-height: 1.5;
}
.card-title a {
color: #74b9ff;
text-decoration: none;
transition: color 0.2s;
}
.card-title a:hover {
color: #ff6b6b;
}
.card-meta {
display: flex;
align-items: center;
gap: 15px;
font-size: 13px;
color: #888;
flex-wrap: wrap;
}
.author {
color: #a29bfe;
font-weight: 500;
}
.badge {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 4px 10px;
border-radius: 20px;
font-size: 12px;
font-weight: 600;
}
.badge-upvotes {
background: rgba(255, 107, 107, 0.15);
color: #ff6b6b;
}
.badge-comments {
background: rgba(116, 185, 255, 0.15);
color: #74b9ff;
}
.card-excerpt {
font-size: 14px;
color: #aaa;
margin-top: 12px;
line-height: 1.6;
}
/* Coming Soon Banner */
.coming-soon {
background: linear-gradient(135deg, #2d3436 0%, #1a1a2e 100%);
border: 2px dashed #444;
border-radius: 12px;
padding: 30px;
text-align: center;
color: #888;
}
.coming-soon-icon {
font-size: 36px;
margin-bottom: 12px;
}
/* Footer */
.footer {
background: #0a0a12;
padding: 30px;
text-align: center;
border-top: 1px solid #2a2a3e;
}
.footer-avatar {
width: 60px;
height: 60px;
background: linear-gradient(135deg, #ff6b6b, #ff9f43);
border-radius: 50%;
margin: 0 auto 15px;
display: flex;
align-items: center;
justify-content: center;
font-size: 28px;
}
.footer-text {
font-size: 16px;
color: #fff;
font-weight: 600;
margin-bottom: 5px;
}
.footer-subtext {
font-size: 13px;
color: #888;
}
.footer-links {
display: flex;
justify-content: center;
gap: 20px;
margin-top: 20px;
}
.footer-links a {
color: #74b9ff;
text-decoration: none;
font-size: 13px;
transition: color 0.2s;
}
.footer-links a:hover {
color: #ff6b6b;
}
.timestamp {
font-size: 11px;
color: #555;
margin-top: 20px;
}
/* Mobile */
@media (max-width: 640px) {
body { padding: 10px; }
.header { padding: 30px 20px; }
.header h1 { font-size: 26px; }
.stats-bar { gap: 25px; padding: 20px; }
.content { padding: 25px 20px; }
.card { padding: 16px; }
}
</style>
</head>
<body>
<div class="container">
<!-- Header -->
<div class="header">
<span class="crab-emoji">🦀</span>
<h1>OpenClaw Daily</h1>
<p class="tagline">The best OpenClaw discussions, curated daily</p>
<div class="date-pill">Sunday, March 1, 2026</div>
</div>
<!-- Stats -->
<div class="stats-bar">
<div class="stat">
<div class="stat-number">24</div>
<div class="stat-label">Reddit</div>
</div>
<div class="stat">
<div class="stat-number">9</div>
<div class="stat-label">News</div>
</div>
<div class="stat">
<div class="stat-number">0</div>
<div class="stat-label">X/Twitter</div>
</div>
</div>
<!-- Content -->
<div class="content">
<!-- Reddit Section -->
<div class="section">
<div class="section-header">
<div class="section-icon reddit-icon">🔥</div>
<h2 class="section-title">Reddit Highlights</h2>
</div>
<div class="card">
<div class="card-title">
<a href="https://reddit.com/r/openclaw/comments/1rhxaj1/openclaw_usecases_to_make_life_easier_11k_stars/">
Openclaw Usecases to Make life easier. 11k+ Stars Github Repo
</a>
</div>
<div class="card-meta">
<span class="author">u/HuckleberryEntire699</span>
<span class="badge badge-upvotes">↑ 74</span>
<span class="badge badge-comments">💬 6</span>
</div>
</div>
<div class="card">
<div class="card-title">
<a href="https://reddit.com/r/openclaw/comments/1rhrtr2/to_the_many_people_here_wondering_about_local_models/">
To the many people here wondering about local models… just use an API
</a>
</div>
<div class="card-meta">
<span class="author">u/Valuable-Run2129</span>
<span class="badge badge-upvotes">↑ 64</span>
<span class="badge badge-comments">💬 51</span>
</div>
<div class="card-excerpt">I've read many posts in the past days of newbies asking about what computer they need to use Open Claw locally. Ironically some ask it as a solution...</div>
</div>
<div class="card">
<div class="card-title">
<a href="https://reddit.com/r/openclaw/comments/1rhwu6h/openclaw_is_very_buggy/">
Openclaw is very buggy
</a>
</div>
<div class="card-meta">
<span class="author">u/Ok-Profession-2143</span>
<span class="badge badge-upvotes">↑ 48</span>
<span class="badge badge-comments">💬 69</span>
</div>
<div class="card-excerpt">I don't understand why everyone is crazy about openclaw. Its super buggy. You cannot change models easily. When you update it gets stuck etc etc.</div>
</div>
<div class="card">
<div class="card-title">
<a href="https://reddit.com/r/openclaw/comments/1ri9nt0/me_every_time_i_touch_the_openclawjson/">
Me, every time I touch the openclaw.json
</a>
</div>
<div class="card-meta">
<span class="author">u/Patient_Lie_9310</span>
<span class="badge badge-upvotes">↑ 33</span>
<span class="badge badge-comments">💬 13</span>
</div>
<div class="card-excerpt">It's always followed by errors and hunting for the stuff I broke.</div>
</div>
<div class="card">
<div class="card-title">
<a href="https://reddit.com/r/openclaw/comments/1rhzht7/i_built_a_voice_assistant_with_openclaw_alexa/">
I built a voice assistant with OpenClaw + Alexa + Local LLM (Ollama) — here's how
</a>
</div>
<div class="card-meta">
<span class="author">u/cormazacl</span>
<span class="badge badge-upvotes">↑ 29</span>
<span class="badge badge-comments">💬 10</span>
</div>
<div class="card-excerpt">Hey everyone! I've been building a voice-first assistant using OpenClaw as the brain, and wanted to share what I've got working so far.</div>
</div>
<div class="card">
<div class="card-title">
<a href="https://reddit.com/r/openclaw/comments/1rhwhv6/does_openclaw_make_sense_without_claude_max/">
Does OpenClaw make sense without Claude Max?
</a>
</div>
<div class="card-meta">
<span class="author">u/btwiz</span>
<span class="badge badge-upvotes">↑ 17</span>
<span class="badge badge-comments">💬 26</span>
</div>
<div class="card-excerpt">I don't have any max accounts (no OAuth tokens), so I have to use API keys. Just setting up OpenClaw, I blew through $10 of OpenRouter credits...</div>
</div>
<div class="card">
<div class="card-title">
<a href="https://reddit.com/r/openclaw/comments/1ri3i9p/openclaw_gogcli_google_account_suspension/">
OpenClaw + GogCLI = Google Account Suspension
</a>
</div>
<div class="card-meta">
<span class="author">u/Admir-Rusidovic</span>
<span class="badge badge-upvotes">↑ 11</span>
<span class="badge badge-comments">💬 20</span>
</div>
<div class="card-excerpt">Over the last couple of days, I experimented with integrating Google Docs and Gmail into my OpenClaw instance. The goal was simple...</div>
</div>
<div class="card">
<div class="card-title">
<a href="https://reddit.com/r/openclaw/comments/1ri2zh4/my_ai_agent_has_made_the_same_lie_12x_in_25_days/">
My AI agent has made the same lie 12x in 25 days... all same root cause, rules don't fix it
</a>
</div>
<div class="card-meta">
<span class="author">u/fartpsychic</span>
<span class="badge badge-upvotes">↑ 5</span>
<span class="badge badge-comments">💬 23</span>
</div>
<div class="card-excerpt">I run a multi-agent setup on OpenClaw (Claude Opus). My orchestration agent, Bob, has a consistent failure mode: optimizing for appearing competent...</div>
</div>
</div>
<!-- Hacker News Section -->
<div class="section">
<div class="section-header">
<div class="section-icon hackernews-icon">🟧</div>
<h2 class="section-title">News & Hacker News</h2>
</div>
<div class="card">
<div class="card-title">
<a href="https://justaniceguy.ai/posts/001-building-jarvis">
Building Jarvis Parallel Tool-Calling Voice Agent Layer on Top of OpenClaw
</a>
</div>
<div class="card-meta">
<span class="badge badge-upvotes">↑ 3</span>
<span class="badge badge-comments">💬 1</span>
</div>
</div>
<div class="card">
<div class="card-title">
<a href="https://janhoon.com/blog/building-with-an-ai-that-remembers/">
Building with an AI that remembers A blog by my OpenClaw Assistant
</a>
</div>
<div class="card-meta">
<span class="badge badge-upvotes">↑ 2</span>
<span class="badge badge-comments">💬 1</span>
</div>
</div>
<div class="card">
<div class="card-title">
<a href="https://usplus.ai/">
Show HN: Usplus.ai Build an AI-Native Company with Agents in your Org Chart
</a>
</div>
<div class="card-meta">
<span class="badge badge-upvotes">↑ 2</span>
<span class="badge badge-comments">💬 1</span>
</div>
<div class="card-excerpt">Hey HN, I'm the founder of usplus.ai, and I've been building this for a while now in San Diego. The core idea: What if you...</div>
</div>
<div class="card">
<div class="card-title">
<a href="https://clawapis.com/">
X402 based pay-as-you-go Twitter API and helius/solscan API for your OpenClaw
</a>
</div>
<div class="card-meta">
<span class="badge badge-upvotes">↑ 1</span>
<span class="badge badge-comments">💬 1</span>
</div>
</div>
<div class="card">
<div class="card-title">
<a href="https://github.com/swarmclawai/swarmclaw">
Show HN: SwarmClaw Orchestration dashboard for OpenClaw and AI agents
</a>
</div>
<div class="card-meta">
<span class="badge badge-upvotes">↑ 2</span>
</div>
</div>
<div class="card">
<div class="card-title">
<a href="https://github.com/Enriquefft/openclaw-kapso-whatsapp">
Show HN: OpenClaw-kapso, Give OpenClaw a stable WhatsApp number
</a>
</div>
<div class="card-meta">
<span class="badge badge-upvotes">↑ 2</span>
</div>
<div class="card-excerpt">Built an OpenClaw plugin that gives your agent a WhatsApp number through the official Cloud API via Kapso.</div>
</div>
<div class="card">
<div class="card-title">
<a href="https://openclawdirectory.co.uk/">
Show HN: OpenClaw Directory Compare Deployers, Skills, and Tools for OpenClaw
</a>
</div>
<div class="card-meta">
<span class="badge badge-upvotes">↑ 1</span>
</div>
<div class="card-excerpt">Discover the essential OpenClaw tools, including deployers, skills, hosting, and plugins, along with direct links to test them out.</div>
</div>
<div class="card">
<div class="card-title">
<a href="https://openclaw.ai/blog/virustotal-partnership">
OpenClaw Partners with VirusTotal for Skill Security
</a>
</div>
<div class="card-meta">
<span class="badge badge-upvotes">↑ 1</span>
</div>
</div>
</div>
<!-- Twitter Section -->
<div class="section">
<div class="section-header">
<div class="section-icon twitter-icon">𝕏</div>
<h2 class="section-title">From X</h2>
</div>
<div class="coming-soon">
<div class="coming-soon-icon">🚧</div>
<p>X/Twitter integration coming soon</p>
</div>
</div>
</div>
<!-- Footer -->
<div class="footer">
<div class="footer-avatar">🦀</div>
<div class="footer-text">Curated daily for Anthony Martin</div>
<div class="footer-subtext">by Krilly the Crab</div>
<div class="footer-links">
<a href="https://github.com/openclaw/openclaw">GitHub</a>
<a href="https://reddit.com/r/openclaw">Reddit</a>
<a href="https://docs.openclaw.ai">Docs</a>
</div>
<div class="timestamp">2026-03-01 • Perth, Australia (AWST)</div>
</div>
</div>
</body>
</html>