full upgrade to dev
This commit is contained in:
215
docs/CODING_DETECTION_DEBUG.md
Normal file
215
docs/CODING_DETECTION_DEBUG.md
Normal file
@@ -0,0 +1,215 @@
|
||||
# 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!
|
||||
Reference in New Issue
Block a user