Initial sandbox buildout - Structure: projects, docs, inbox, archive, templates, scripts, tools - Tools: search.py, inbox-processor.py, daily-digest.py - Shell aliases and bashrc integration - Templates for projects and notes - MEMORY.md, TASKS.md, STRUCTURE.md - tmux config
This commit is contained in:
64
tools/inbox-processor.py
Executable file
64
tools/inbox-processor.py
Executable file
@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Inbox processor - shows pending items and helps sort them.
|
||||
"""
|
||||
|
||||
import os
|
||||
from pathlib import Path
|
||||
from datetime import datetime
|
||||
|
||||
WORKSPACE = Path("/home/wdjones/.openclaw/workspace")
|
||||
INBOX = WORKSPACE / "inbox"
|
||||
|
||||
def list_inbox():
|
||||
"""List all items in inbox."""
|
||||
items = []
|
||||
|
||||
for fpath in INBOX.iterdir():
|
||||
if fpath.is_file() and not fpath.name.startswith('.'):
|
||||
stat = fpath.stat()
|
||||
items.append({
|
||||
'name': fpath.name,
|
||||
'path': fpath,
|
||||
'size': stat.st_size,
|
||||
'modified': datetime.fromtimestamp(stat.st_mtime)
|
||||
})
|
||||
|
||||
return sorted(items, key=lambda x: x['modified'], reverse=True)
|
||||
|
||||
|
||||
def show_inbox():
|
||||
"""Display inbox contents."""
|
||||
items = list_inbox()
|
||||
|
||||
if not items:
|
||||
print("📭 Inbox is empty")
|
||||
return
|
||||
|
||||
print(f"📬 Inbox ({len(items)} items)\n")
|
||||
|
||||
for item in items:
|
||||
age = datetime.now() - item['modified']
|
||||
if age.days > 0:
|
||||
age_str = f"{age.days}d ago"
|
||||
elif age.seconds > 3600:
|
||||
age_str = f"{age.seconds // 3600}h ago"
|
||||
else:
|
||||
age_str = f"{age.seconds // 60}m ago"
|
||||
|
||||
print(f" [{age_str}] {item['name']} ({item['size']} bytes)")
|
||||
|
||||
# Show quick-notes if exists
|
||||
quick_notes = INBOX / "quick-notes.md"
|
||||
if quick_notes.exists():
|
||||
print("\n--- Quick Notes ---")
|
||||
with open(quick_notes) as f:
|
||||
content = f.read().strip()
|
||||
if content:
|
||||
print(content)
|
||||
else:
|
||||
print("(empty)")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
show_inbox()
|
||||
Reference in New Issue
Block a user