← back to Dear Bubbe Nextjs
scripts/view-social-logs.sh
99 lines
#!/bin/bash
# View social media post logs
LOG_FILE="/root/Projects/dear-bubbe-nextjs/logs/social-posts-detailed.log"
if [ ! -f "$LOG_FILE" ]; then
echo "❌ No log file found at: $LOG_FILE"
echo "Run a test post first: node social-autoposter.js --test"
exit 1
fi
echo "📝 Social Media Post Logs"
echo "========================="
echo ""
# Check for arguments
if [ "$1" == "--tail" ]; then
# Follow the log in real-time
echo "Following log file (Ctrl+C to exit)..."
tail -f "$LOG_FILE" | while read line; do
echo "$line" | jq '.' 2>/dev/null || echo "$line"
done
elif [ "$1" == "--last" ]; then
# Show last N entries (default 10)
COUNT=${2:-10}
echo "Last $COUNT log entries:"
echo ""
tail -n "$COUNT" "$LOG_FILE" | while read line; do
echo "$line" | jq '.' 2>/dev/null || echo "$line"
done
elif [ "$1" == "--success" ]; then
# Show only successful posts
echo "Successful posts:"
echo ""
grep '"status":"success"' "$LOG_FILE" | while read line; do
echo "$line" | jq '.' 2>/dev/null || echo "$line"
done
elif [ "$1" == "--failed" ]; then
# Show only failed posts
echo "Failed posts:"
echo ""
grep '"status":"failed"' "$LOG_FILE" | while read line; do
echo "$line" | jq '.' 2>/dev/null || echo "$line"
done
elif [ "$1" == "--summary" ]; then
# Show summary statistics
TOTAL=$(wc -l < "$LOG_FILE")
SUCCESS=$(grep -c '"status":"success"' "$LOG_FILE" 2>/dev/null || echo "0")
FAILED=$(grep -c '"status":"failed"' "$LOG_FILE" 2>/dev/null || echo "0")
TWITTER_SUCCESS=$(grep '"platform":"twitter"' "$LOG_FILE" | grep -c '"status":"success"' 2>/dev/null || echo "0")
TWITTER_FAILED=$(grep '"platform":"twitter"' "$LOG_FILE" | grep -c '"status":"failed"' 2>/dev/null || echo "0")
BLUESKY_SUCCESS=$(grep '"platform":"bluesky"' "$LOG_FILE" | grep -c '"status":"success"' 2>/dev/null || echo "0")
BLUESKY_FAILED=$(grep '"platform":"bluesky"' "$LOG_FILE" | grep -c '"status":"failed"' 2>/dev/null || echo "0")
echo "📊 Summary Statistics"
echo "-------------------"
echo "Total log entries: $TOTAL"
echo ""
echo "Overall:"
echo " ✅ Successful posts: $SUCCESS"
echo " ❌ Failed posts: $FAILED"
echo ""
echo "Twitter/X:"
echo " ✅ Successful: $TWITTER_SUCCESS"
echo " ❌ Failed: $TWITTER_FAILED"
echo ""
echo "Bluesky:"
echo " ✅ Successful: $BLUESKY_SUCCESS"
echo " ❌ Failed: $BLUESKY_FAILED"
echo ""
echo "Log file: $LOG_FILE"
echo "File size: $(du -h "$LOG_FILE" | cut -f1)"
elif [ "$1" == "--raw" ]; then
# Show raw log file
cat "$LOG_FILE"
else
# Default: show formatted recent entries
echo "Recent log entries (use --help for options):"
echo ""
tail -n 20 "$LOG_FILE" | while read line; do
echo "$line" | jq '.' 2>/dev/null || echo "$line"
echo "---"
done
if [ "$1" == "--help" ] || [ "$1" == "-h" ]; then
echo ""
echo "Usage: ./view-social-logs.sh [option]"
echo ""
echo "Options:"
echo " --tail Follow log file in real-time"
echo " --last N Show last N entries (default 10)"
echo " --success Show only successful posts"
echo " --failed Show only failed posts"
echo " --summary Show summary statistics"
echo " --raw Show raw log file (no formatting)"
echo " --help Show this help message"
fi
fi