Files
portfolio/docs/CODING_DETECTION_DEBUG.md
2026-01-08 04:24:22 +01:00

215 lines
4.8 KiB
Markdown

# Coding Detection Debug Guide
## Current Status
Your n8n webhook is returning:
```json
{
"coding": null
}
```
This means your n8n workflow isn't detecting coding activity.
## Quick Fix: Test Your n8n Workflow
### Step 1: Check What n8n Is Actually Receiving
Open your n8n workflow for `denshooter-71242/status` and check:
1. **Do you have a node that fetches coding data?**
- WakaTime API call?
- Discord API for Rich Presence?
- Custom webhook receiver?
2. **Is that node active and working?**
- Check execution history in n8n
- Look for errors
### Step 2: Add Temporary Mock Data (Testing)
To see how it looks while you set up real detection, add this to your n8n workflow:
**Add a Function Node** after your Discord/Music fetching, before the final response:
```javascript
// Get existing data
const existingData = $json;
// Add mock coding data for testing
const mockCoding = {
isActive: true,
project: "Portfolio Website",
file: "app/components/ActivityFeed.tsx",
language: "TypeScript",
stats: {
time: "2h 15m",
topLang: "TypeScript",
topProject: "Portfolio"
}
};
// Return combined data
return {
json: {
...existingData,
coding: mockCoding
}
};
```
**Save and test** - you should now see coding activity!
### Step 3: Real Coding Detection Options
#### Option A: WakaTime (Recommended - Automatic)
1. **Sign up**: https://wakatime.com/
2. **Install plugin** in VS Code/your IDE
3. **Get API key**: https://wakatime.com/settings/account
4. **Add HTTP Request node** in n8n:
```javascript
// n8n HTTP Request Node
URL: https://wakatime.com/api/v1/users/current/heartbeats
Method: GET
Authentication: Bearer Token
Token: YOUR_WAKATIME_API_KEY
// Then add Function Node to process:
const wakaData = $json.data;
const isActive = wakaData && wakaData.length > 0;
const latest = wakaData?.[0];
return {
json: {
coding: {
isActive: isActive,
project: latest?.project || null,
file: latest?.entity || null,
language: latest?.language || null,
stats: {
time: "calculating...",
topLang: latest?.language || "Unknown",
topProject: latest?.project || "Unknown"
}
}
}
};
```
#### Option B: Discord Rich Presence (If Using VS Code)
1. **Install extension**: "Discord Presence" in VS Code
2. **Enable broadcasting** in extension settings
3. **Add Discord API call** in n8n:
```javascript
// n8n HTTP Request Node
URL: https://discord.com/api/v10/users/@me
Method: GET
Authentication: Bearer Token
Token: YOUR_DISCORD_BOT_TOKEN
// Then process activities:
const activities = $json.activities || [];
const codingActivity = activities.find(a =>
a.name === 'Visual Studio Code' ||
a.application_id === 'vscode_app_id'
);
return {
json: {
coding: codingActivity ? {
isActive: true,
project: codingActivity.state || "Unknown Project",
file: codingActivity.details || "",
language: codingActivity.assets?.large_text || null
} : null
}
};
```
#### Option C: Simple Time-Based Detection
If you just want to show "coding during work hours":
```javascript
// n8n Function Node
const now = new Date();
const hour = now.getHours();
const isWorkHours = hour >= 9 && hour <= 22; // 9 AM - 10 PM
return {
json: {
coding: isWorkHours ? {
isActive: true,
project: "Active Development",
file: "Working on projects...",
language: "TypeScript",
stats: {
time: "Active",
topLang: "TypeScript",
topProject: "Portfolio"
}
} : null
}
};
```
## Test Your Changes
After updating your n8n workflow:
```bash
# Test the webhook
curl https://n8n.dk0.dev/webhook/denshooter-71242/status | jq .
# Should now show:
{
"coding": {
"isActive": true,
"project": "...",
"file": "...",
...
}
}
```
## Common Issues
### "Still shows null"
- Make sure n8n workflow is **Active** (toggle in top right)
- Check execution history for errors
- Test each node individually
### "Shows old data"
- Clear your browser cache
- Wait 30 seconds (cache revalidation time)
- Hard refresh: Cmd+Shift+R (Mac) or Ctrl+Shift+R (Windows)
### "WakaTime API returns empty"
- Make sure you've coded for at least 1 minute
- Check WakaTime dashboard to verify it's tracking
- Verify API key is correct
## What You're Doing RIGHT NOW
Based on the latest data:
-**Music**: Listening to "I'm Gonna Be (500 Miles)" by The Proclaimers
-**Coding**: Not detected (null)
-**Gaming**: Not playing
To make coding appear:
1. Use mock data (Option from Step 2) - instant
2. Set up WakaTime (Option A) - 5 minutes
3. Use Discord RPC (Option B) - 10 minutes
4. Use time-based (Option C) - instant but not accurate
## Need Help?
The activity feed will now show a warning when coding isn't detected with a helpful tip!
---
**Quick Start**: Use the mock data from Step 2 to see how it looks, then set up real tracking later!